‘壹’ EXCEL VBA里怎么用sql 的SELECT 语句
可以做到,但不是三言两语能说清楚的。至少VBA程序不会太短
如果用手工操作,不借助VBA,可以利用Excel的“数据-导入外部数据”菜单将SQL中的表先导入到Excel中,那么Excel数据与SQL数据的比较就变成了两个Excel表列的比较,很容易用数组公式或相关函数标识出重复的数据项的。
‘贰’ excel如何导入sql表
在SQL SERVER中右击数据库,选择菜单“任务”--“导入数据”即可。
在导入过程中,勾选将第一行做为列标题就可以,你还可以定义每一字段的字段类型。
‘叁’ excel vba ado的一条sql语句 有错误 请指正
excel的这种sql访问方式中,列的类型是根据该列第一行数据判断的,在这列第一行数据201前加单引号试试
‘肆’ Excel ADO sql 中怎么用判断语句语句
写法如下:
ado对象:
if ado.row.count = 1 then
具体的处理代码
end if
‘伍’ excel向sql导入
检查下路径..
1、将SQL SERVER中查询到的数据导成一个Excel文件
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp
saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp
"SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'
2、在SQL SERVER里往Excel插入数据:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)
T-SQL代码:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]
(bestand, prokt) valueS (20, 'Test')
SQLServer和Excel
1、向Excel查询
select * from OpenRowSet(’microsoft.jet.oledb.4.0’,’Excel 8.0;HDR=yes;database=c:\book1.xls;’,’select * from [Sheet1$]’) where c like ’%f%’
select * from
OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’
,’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls’,[sheet1$])
1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
2)[]和美圆$必须要,否则M$可不认这个账
2、修改Execl
update OpenRowSet(’microsoft.jet.oledb.4.0’,’Excel 8.0;hdr=yes;database=c:\book1.xls;’,’select * from [Sheet1$]’)
set a=’erquan’ where c like ’%f%’
3、导入导出
insert into OpenRowSet(’microsoft.jet.oledb.4.0’,’Excel 8.0;hdr=yes;database=c:\book1.xls;’,’select * from [Sheet2$]’)(id,name)
select id,name from serv_user
或BCP
master..xp_cmdshell’bcp "serv-htjs.dbo.serv_user" out "c:\book2.xls" -c -q -S"." -U"sa" -P"sa"’
从Excel向SQLServer导入:
select * into serv_user_bak
from OpenRowSet(’microsoft.jet.oledb.4.0’,’Excel 8.0;HDR=yes;database=c:\book1.xls;’,’select * from [Sheet1$]’)
如果表serv_user_bak不存在,则创建
有关BCP和分布式查询的详细解答,就查SQLServer自带的帮助吧
SQLServer和txt文件、HTML文件、VFP文件的数据交换都显得非常容易了。。。。
如果你是用.NET进行数据的导入,那么也可以用SqlBulkCopy 类. SqlBulkCopy 类允许编写提供类似功能的托管代码解决方案。还有其他将数据加载到 SQL Server 表的方法(例如 INSERT 语句),但相比之下 SqlBulkCopy 提供明显的性能优势。
使用 SqlBulkCopy 类只能向 SQL Server 表写入数据。但是,数据源不限于 SQL Server;可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader 实例读取数据。
‘陆’ Excel2003中,如何将将两张工作表中的相同名称对比在一起
按我之前给你的表格,库存数已经自动统计出来了,“品规”在J列,“库存数”在K列
可在另一工作表的任一列(假设在A1吧)输入
=INDEX(Sheet1!J:J,SMALL(IF(Sheet1!J$4:J$100<>"",ROW($4:$100),4^8),ROW(1:1)))&""
数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,再向下填充
再在B1输入
=VLOOKUP(A1,Sheet1!J:K,2,0)回车并向下填充。
用=SUMIF(Sheet1!J:J,A1,Sheet1!K:K)也行(反正只有一个数据,不用汇总)
你的品名自己输入也行,就不要上面的第一道数组公式;第二道公式可加入判断函数IF等:
=IF(ISERROR(VLOOKUP(A1,Sheet1!J:K,2,0)),"",VLOOKUP(A1,Sheet1!J:K,2,0))
当输入库存表没有的品规,库存列显示空值。
‘柒’ 将excel表导入到SQL数据库
选中sql server2005中的数据库,点击鼠标右键,选择任务,然后选择导入数据,然后点击下一步,然后在数据源中选择microsoft excel,然后选择你要导入的excel的路径,excel版本请选择最高,在这里需要说的是,如果你的excel文件是2007的或者2010的,请你使用office将其存为2003的excel文件,也就是说,需要将xlsx文件存储为xls,然后点击下一步,然后选择你要导进的地址,也就是IP,如果是导入到本机就填 . 号,然后选择你要导进的数据库就好了,一步一步来,有提示的
希望我的回答对你会有帮助,如果以上回答没有解决你的问题,请追问详述,当然也可以直接 HI 我,我网络随时在线,解决问题后望即时采纳,谢谢!
‘捌’ excel导入sql的问题
9月20日 12:47
******* 导出到excel
EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'
/*********** 导入Excel
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
---------------------------------------------------------------
EXCEL TO SQL SERVER
先用ODBC建立一个数据源,数据源指向sql server的表,然后用TTABLE控件联上数据库,
再建立一个OleObject,然后用Append,Post把数据导入到EXCEL表。
实例:
var
MSExcel:Variant;//定义一个全程变量
MSExcel := CreateOleObject('Excel.Application');
MSExcel.WorkBooks.Open(Edit1.Text);//创建一个OleObject
Table.Active:=true;
Table.Append;
Table.FieldByName('字段名').Value:=MSExcel.Cells[rows_i,1].Value;
Table.Post;//实现导入
如果有不明白给我mail: [email protected]
---------------------------------------------------------------
不行的话
你可以用server里的execl的空件
excelwork.open();
---------------------------------------------------------------
那dbexpress可以连接excel吗?
ado怎么去连接excel?谢谢
----------------------
不能,
要连接excel(把它当成数据库连接)只能用ado来做.
其连接字符串的一个示例:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
注意
Properties=""Excel 8.0;HDR=Yes;IMEX=1""是一个参数,而不是多个
‘玖’ VBA ADO SQL 导出到EXCEL后。内容是插入,能不能改正覆盖
临时开一个空白工作表,保存内容后在Copy过来,例如:
setwb=Workbooks.Add
wb.sheets(1).Range("A1").CopyFromRecordsetrs
wb.sheets(1).UsedRange.CopyWorksheets(3).Range("A17")
wb.CloseSaveChange:=False