乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 用VBA 实现 从EXCEL 读取数据 然后插入SQL 数据...-读取excel sql数据库,将excel导入sql

用VBA 实现 从EXCEL 读取数据 然后插入SQL 数据...-读取excel sql数据库,将excel导入sql

作者:乔山办公网日期:

返回目录:excel表格制作


导入数据不一定要用OPENSET函数,可以用更简单的方法,步骤如下:

1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。

2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。

3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源 Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。

4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。

5、然后来到图示界面,直接默认选项即可,点击下一步。

6、图示界面,可以自定义目标数据库(e79fa5e98193e4b893e5b19e362表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。

7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。

8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。

扩展资料:

导入数据也可使用OPENROWSET函数,但使用该函数之前必须先启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的,系统管理员可以通过使用sp_configure 启用 'Ad Hoc Distributed Queries'。

但有一个问题一定要特别注意,由于 'Ad Hoc Distributed Queries'这个服务存在着较大的安全隐患,所以切记使用完毕之后一定要关闭。

所以,如果是导入数据建议不要使用OPENROWSET函数,弊大于利。



'sql完整例子
Sub testSql()
'定义连接对象
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset

'定义连接字符串
Dim conStr As String
Dim sqlstr As String
'连接字符串-以下是连接MSSQL数据库
conStr = "Provider=sqloledb; " _
& "Server=192.168.1.121; " _
& "Database=DATABASENAME;Uid=admin;Pwd=admin;"
cnn.Open conStr
sqlstr = "SELECT * from tablename"
rs.Open sqlstr, cnn
Range("a2").CopyFromRecordset rs
rs.Close
cnn.Close
End Sub
Excel程序自带的外部数据连接功能,可以连接SQL服务器。具体步骤为:
1、选择【数据】选项卡,在【获取外部数据】分组,找到【自其他来源】。
2、单击【自其他来源】按钮,打开【选择来源】下拉菜单。
3、选择【来自SQL Server】打开【数据连接向导】对话框。
4、填写服务器名称、登录的用户名及密码等信息,即可成功连接。

Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=MSDASQL.1;Persist Security " & _
"Info=False;Extended Properties=""DBQ=" & _
file & ";DefaultDir=" & path & _
";Driver={Microsoft Excel Driver (*.xls)};" & _
"DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;"& _
"MaxScanRows=8;PageTimeout=5;ReadOnly=0;" & _
"SafeTransactions=0;" & _
Threads=3;UID=admin;UserCommitSync=Yes;"""

其中FILE是EXCEL文件的路径;
PATH是EXCEL文件所在目录的路径;
EXCEL中的每一个SHEET可以作为一个表名,名称为该SHEET的名称
例如:需导入EXCEL中的SHEET1,那么执行

SET RS=cn.execute("SELECT*FROM [SHEET1$]")

便可得到该SHEET内容的e79fa5e98193e78988e69d83330记录集

接下来,你可以自己完成将RS中数据逐行写入SQL SERVER的部分。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网