如何在sql2005表中直接填写数据? 在数据库中能不能像用excel那样直接填表保存进数据库,而不是用SQL语句
在SQL2005的对象管理器中鼠标右键选择你所要写数据的表,在弹出的快捷菜单中选择“打开表”就可以直接写数据了。如果你要用命令写数据,那就在菜单中“新建查询”,
use 数据库名称
go
insert into [tablename](column_name,...)values(对应值.....)
RITEEXCEL是需要你再PRIVATE里定义的一个函数,BDE或者ADO都无所谓,你只要把你的表对应好就可以了。
procedure Tqueryform.Button5Click(Sender: TObject);
var
sname:string; //这里是用来取你界面上输入的EXCEL表名
begin
sname:=edit1.Text;
if sname<>'' then //用户输入了表名
// title:='所需数据';
writeexcel(sname)
else
writeexcel('查询结果'); //否则存为查询结果.exl
end;
procedure Tqueryform.writeexcel(sname:string);
var
j,row: integer;
filename: string;
begin
filename := concat((extractfilepath(application.exename)+'excel\'), sName, '.xls');
//保存在程序所在文件夹下的一个叫做excel的文件夹下面
//初始化
try
excelapplication1:=Texcelapplication.Create(application);
ExcelWorksheet1 := TExcelWorksheet.Create(Application);
ExcelWorkbook1 := TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
except
Application.Messagebox('Excel 没有安装!', 'Hello', MB_ICONERROR + mb_Ok);
Abort;
end;
//数据的导出
try
begin
ExcelApplication1.Workbooks.Add(EmptyParam, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
//给表格的每个单元附值
excelworksheet1.Cells.Item[1,1]:='工号'; //这个根据你的数据表对应的变量名
excelworksheet1.Cells.Item[1,2]:='日期';
excelworksheet1.Cells.Item[1,3]:='表型';
excelworksheet1.Cells.Item[1,4]:='地址';
excelworksheet1.Cells.Item[1,5]:='原因';
row:=2;
maindm.ADOQuery2.First;
while not maindm.ADOQuery2.Eof do
begin
for j:=1 to 5 do
begin
excelworksheet1.Cells.Item[row,j]:=maindm.ADOQuery2.Fields[j-1].AsString;
end; //end ...for
maindm.ADOQuery2.Next;
row:=row+1; //得到查询后的行数
end;
ExcelWorksheet1.SaveAs(filename);
Application.Messagebox(pchar('数据成功导出' + filename), 'Hello',mb_Ok);
end //end try...finally
//结束释放空间
finally
ExcelApplication1.Disconnect; //断开连接
ExcelApplication1.Quit; //退出EXCEL
ExcelApplication1.Free;//释放空间
ExcelWorksheet1.Free; //释放空间
ExcelWorkbook1.Free; //释放空间
end;
end;
INSERT INTO 表格名1 (列名11,列名12, ...) SELECT 列名21, 列名22, ... FROM 表格名2
以上的语法是最基本的语法。在Select后,还可能含有 WHERE、 GROUP BY、 及 HAVING 等子句,以及表格连接及别名等等。与Select Into对比,Select Into中目标表名应该在数据库中是不存在的,而 Insert Into Select正好相反,其目标表名在数据库中一定要存在的。
下面的这个例子,是把出仓表中的所有的钢笔数据,添加到上一篇文章http://www.excelba.com/Art/Html/310.html 生成的临时表的数据库中,如果你没有看到上一篇文章,请运行上一篇文章的程序生成临时表后,再运行下面这段程序。
Sub 进销存表数据库中出仓表里检索的数据添加到已有的表()
'*******************************************
'时间:2008-10-21
'作者:bengdeng
'功能:在程序文件同一目录下进销存表数据库中出仓表里检索的数据生成新表
'注意:要在工具/引用中引用microsoft activex date objects x.x
' 其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim OldTableName As String
Dim NewTableName As String
Dim sSql As String
Dim tStr As String
WN = "进销存表.mdb"
OldTableName = "出仓表"
NewTableName = "临时表"
tStr = "钢笔"
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & WN
conn.Open
If conn.State = adStateOpen Then
sSql = "Insert Into " & NewTableName & " Select * From " & OldTableName & " Where 物品名称='" & tStr & "'"
conn.Execute sSql
MsgBox "成功把“" & OldTableName & "”中的所有的“" & tStr & "”记录汇总到“" & NewTableName & "”中!", , "http://excelba.com"
conn.Close
End If
Set conn = Nothing
End Sub
因为上一篇文章生成的临时表与出仓表的结构是完全相同的,因此正如上面的例子,我们不需要列出NewTableName中列明细资料,而OldTableName的列的资料,我们也可以用*来表示!
那么,如果列名不一样,能不能导入呢?当列的数据类型一致时,还是可以导入的,下面的这段操作Excel文件的程序,功能是把进仓表的毛笔数据,导入到临时表中,其中进仓表的进仓日期对应着临时表的出仓日期,进仓数量对应着出仓数量,代码如下:
Sub 进销存表文件中进仓表里检索的数据添加到已有的表()
'*******************************************
'时间:2008-10-21
'作者:bengdeng
'功能:在程序文件同一目录下进销存表文件中进仓表里检索的数据生成新表
'注意:要在工具/引用中引用microsoft activex date objects x.x
' 其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim OldTableName As String
Dim NewTableName As String
Dim sSql As String
Dim tStr As String
WN = "进销存表.xls"
OldTableName = "进仓表"
NewTableName = "临时表"
tStr = "毛笔"
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & WN
conn.Open
If conn.State = adStateOpen Then
sSql = "Insert Into [" & NewTableName & "$] (出仓日期,物品名称,出仓数量) " & _
"Select 进仓日期 As 出仓日期,物品名称,进仓数量 As 出仓数量 From [" & _
OldTableName & "$] Where 物品名称='" & tStr & "'"
conn.Execute sSql
MsgBox "成功把“" & OldTableName & "”中的所有的“" & tStr & "”记录汇总到“" & NewTableName & "”中!", , "http://excelba.com"
conn.Close
End If
Set conn = Nothing
End Sub
Insert Into Select就介绍完了,现在可以动手复制一下上面的代码,运行一下看一下效果吧*^_^*。
如果你不是从第一篇 SQL语言教程 看起,你需要到http://www.excelba.com/Soft/Html/119.html 下载文件,压缩文件包含三个文件,数据库文件——进销存表.mdb与Excel文件——进销存表.xls就是保存数据的文件,而主文件.xls就是主程序文件,以后大家的代码可以添加在这个文件的新模块里,然后再运行程序代码。
转载请注明:本文来自:Excel吧 (www.excelba.com) 详细出处参考:http://www.excelba.com/Art/Html/311.html
直接填表保存是 你填完后 右击全选那个单元格(你这张表编号左边那个)-执行! 就保存好了。
insert批量添加是 insert into Table_1 values(111,222,333,444);
括号里按照你列的顺序依次填写,注意数据类型和约束等。
输入完成以后离开输入那行 鼠标移动到其他行 刷新或者按F5 或者按!号执行都可以 insert批量添加?貌似没有加过 因为值都不一样啊 怎么批量嘛 可以写一条SQL 复制粘贴嘛
下个SQL2005可视化界面 可以直接添加删除修改就更excel一样
这是下载地址http://www.microsoft.com/downloads/zh-cn/details.aspx?displaylang=zh-cn&FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796
在SQL server 2005 中为什么分为这两种字符?
Unicode的设置是为了存储任何由Unicode 标准定义的字符。具体说明 (源自网络)Char:定长字符型,比如设定了长度为8,即使你存储的字符只有两位,系统也会自动补充6位空格,保持整个字符长度为8。主要用于码表级字段,比如人员编号,肯定是固定长度的,才会使用这个字段类型,优点是查询速度快。nChar:定长字符...
在sql server2005中向表中插入数据,不如说像学生表中插入数据,会提示...
表名错误,或者数据库选择错误,该库中没有这个表。
【SQL】表中的空字符串与NULL中的区别何在
第1种情况的含义可被解释为“电话号码未知”,而第2种情况的含义可被解释为“该人员没有电话,因此没有电话号码”。为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。 在SQL中,NULL值与任何其它值的比较(即使是NULL)永远不会为“真”。包含NULL的表达式总是会导出NULL值...
sql统计问题(很常用的)急用高手解答...可分数追加
select 货名表.货号,货名表.货名,货名表.单位,货名表.规格,上期表.数量,上期表.金额,进货表.进货数,进货表.进货金,进货表.单号,出货表.出货数,出货表.出货金,出货表.单号,(计算公式1) as 结存数量,(计算公式2) as 结存金额 金from 货名表 left outer join 上期表 on 货名表.货号 = ...
SQL 如何在一个不能唯一标示的列中插入行数据
SQL插入语句用insert into,但是不能指定行,只能在末尾插入,update只是更新记录 你既然ID不唯一,你设置ID的意义何在是我不明白的
FROM keyword not found where expected 是什么错误?由什么引起_百度知 ...
FROM keyword not found where expected不知问题何在 在pl\/sql中学习oracle。编了一个函数gettablecount,内容如下所示:create or replace function gettablecount(table_name varchar2) return number as begin declare record_count number;query_sql varchar2(200);begin query_sql:='select count(1) ...
SQL的update语句中,可以让要update的表里的数据与另外的一个表里的...
b的哪一行进行计算?依据何在?有了关系,比如id,就可以如下:update aset a.a *= b.bfrom ajoin b on a.id=b.id 如果原表实在没有关联,你只想让行与行关联,那就要人为制造关联,比如分别给a、b用row_number加上行号,形成派生表aa和bb,然后对aa进行update,一样可以更新到a。
sql语句的问题,请求帮助!!
(select BUS_NUMBER from t_bus where bus_station='q')) b where a.BUS_STATION=b.BUS_STATION;解释一下,(select * from t_bus where BUS_NUMBER in (select BUS_NUMBER from t_bus where bus_station='a')) a是查询所有经过a站点的车次 (select * from t_bus where BUS_NUMBER ...
计算机4级都考什么?
2005年全国计算机等级考试四级考试大纲 基本要求 1.具有计算机及其应用的基础知识。 2.熟悉计算机操作系统,软件工程和数据库的原理及其应用。 3.熟悉计算机体系结构、系统组成和性能评价的基础和应用知识。 4.具有计算机网络和通信的基础知识。 5.具有计算机应用项目开发的分析设计和组织实施的基本能力。 6.具有...
计算机行业有哪些职位
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言\/C++\/JAVA等)、数据库技术(SQL\/ORACLE\/DB2等)、.NET平台技术、C#、C\/S B\/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUCTS等前沿技术。除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局...
闻果康斯: 在SQL2005的对象管理器中鼠标右键选择你所要写数据的表,在弹出的快捷菜单中选择“打开表”就可以直接写数据了.如果你要用命令写数据,那就在菜单中“新建查询”,use 数据库名称goins...
蒸湘区13976438136: 怎么在SQL serves 2005 的数据库中的表中插入数据 - ?
闻果康斯: 你是要用SQL语句插入数据吗?如果是的话你就用这个试下 create table MyDB (ID int primary key identity(1,1),Name nvarchar(50) not null,Salary int not null,Age int not null )insert into MyDB(Name,salary,age) values('小明',5000,20) insert...
蒸湘区13976438136: 我安装了SQL SERVER 2005数据库,建好了数据库,建好了表,但是怎么在表里面插入数据呢 - ?
闻果康斯: 安装Microsoft SQL Server Management Studio Express 就能像SQL SERVER 2000的企业管理器一样图形操作插入数据,删除数据.如果你sql命令比较熟,也可以在命令行里运行插入数据.
蒸湘区13976438136: 如何在已经建立好的SQL数据表中添加数据 - ?
闻果康斯: 1、双击打开MySQL软件,在左侧中找到【表】并且右击选择【新建表】 2、选择新建表之后,在界面右侧可以添加数据,点击【添加栏目】就可以在下方再添加一行数据 3、点击【另存为】,会弹出一个【表名】窗口,输入表名,比如Class,点击【确定】按钮 4、在表的下方就会出现一个名为Class的表
蒸湘区13976438136: SQL Server 2005中怎么用sql语句往表中插入数据? - ?
闻果康斯: 首先要把图片转化为16进制代码. 再把这段代码插入到表里面就行了
蒸湘区13976438136: 在SQL Server 2005中怎样向创建好的数据表中录入数据?
闻果康斯: insert into 表明(字段名) values(对应的字段值)
蒸湘区13976438136: sql server 2005怎样向表中输入内容 - ?
闻果康斯: 楼主的问题在目前是常见的,微软这次开发的win7可是不支持很多软件,这是出于软件的开发难度,成本,等多方面的考虑,所以以前能在xp上运行的软件在win7上不时的出现这样那样的问题,楼主的只是其中之一而已,而且很多SQL是在win7上装不上的.楼主可以采用在查询分析器上已输入代码的方式输入吧!这样的问题是目前解决不了的,只有等到开发SQL 的公司,推出与win7 配套的软件才行.望采纳!
蒸湘区13976438136: SQL2005 表里添加数据0~1000 - ?
闻果康斯: 请问一下是不是这样的 TYPE1 0 1 2 3 4 …… TYPE2 0 1 2 3 4 …… 如果是这样就是直接写 use 数据库名 go declare @i int select @i=1 while @ibegin insert tfee(type1,type2) values(@i,@i) select @i=@i+1 end go 另外也可以这样 在创建表的时候设type1,type2列的属性为 标识:是 标识种子:1 标识递增量:1
蒸湘区13976438136: SQL中,怎么用SQL语句向已经建立的表中写数据啊? - ?
闻果康斯: 表名SA,字段:学号,姓名,年龄,出生日期 INSERT INTO SA (学号,姓名,年龄,出生日期) VALUES ('20081003','张三',28,'1988-11-23') 如整行插入,可以:INSERT INTO SA VALUES ('20081003','张三',28,'1988-11-23')
蒸湘区13976438136: 在sql server 2000 建立的表中怎样填写表中的数据 - ?
闻果康斯: 有两种方法:方法一:在企业管理器中,选择要添加数据的表,右击该表,在弹出的下拉菜单中选择 打开表---返回所有行,即可在弹出的对话框中的填写数据.方法二:打开查询分析器 输入 use 数据库名 执行 再输入 insert into 表名[(列名1,列名2,……)] values(数据1.,数据2,……)