乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 怎样将<em>EXCEL</em>数据表导入到SQL中-excel vba sql数据库,vba

怎样将<em>EXCEL</em>数据表导入到SQL中-excel vba sql数据库,vba

作者:乔山办公网日期:

返回目录:excel表格制作


Sub test()
     
    Dim cn As ADODB.Connection
    Dim strSQL As String
    Dim lngRecsAff As Long
    Dim Headers As Boolean
    Dim strConn As String
    Dim path As String
    
    On Error GoTo test_Error
    
    Headers = True
    path = "c:\20131212.xls"
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & path & ";" & _
              "Extended Properties=""Excel 8.0; IMEX=1;HDR=YES"""
                  
    Debug.Print strConn
    Set cn = New ADODB.Connection
    cn.Open strConn
     
     'Import by using Jet Provider.
    strSQL = "Insert INTO [odbc;Driver={SQL Server};" & _
             "Server=192.168.6.111;Database=answer;" & _
             "UID=sa;PWD=password].test1 " & _
             "Select * FROM [Sheet1$]"
    Debug.Print strSQL
    cn.Execute strSQL, lngRecsAff
    Debug.Print "Records affected: " & lngRecsAff
     
    cn.Close
    Set cn = Nothing
     
    On Error GoTo 0
    Exit Sub
     
test_Error:
     
    MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure test of VBA Document ThisWorkbook"
     
End Sub


在Excel中录入好数据以后,可能会有导入数据库的需求,这个时候就需要利用一些技巧导入。

如何将excel表导入数据库的方法:

1、对于把大量数据存放到数据库中e68a847a686964616f332,最好是用图形化数据库管理工具,可是如果没有了工具,只能执行命令的话这会是很费时间的事。那只能对数据进行组合,把数据组成insert语句然后在命令行中批量直行即可。

2、对下面数据进行组合,这用到excel中的一个功能。

在excel中有个fx的输入框,在这里把组好的字符串填上去就好了。

注:字符串1 & A2 &字符串2 & ...

A2可以直接输入,也可以用鼠标点对应的单元格。

3、每个字符串之间用 & 符号进行连接。下面是第一条连接字符串

="insert into tavern values('"&A2&"','"&B2&"','"&C2&"','"&D2&"');"

写好后按回车键Enter就能组合出对应的字符串了。

insert into tavern values('jw_agi','曙光','0','1');

4、组好第一行的字符串后,把鼠标放到单元格右下方,出现加粗的十字,单击按下(别松开),一直往下拉,直到最后一行再放开就行了。

5、这样就把insert语句都整理好了,接下来就是把这些语句批量执行就可以了。


Dim conn As New ADODB.Connection
connStr = "Driver={SQL Server};DataBase=test;Server=(local);UID=sa;PWD=123"
conn.Open connStr '连接数据
Dim rs As New Recordset
sql = "select * from a" '查看表a
rs.Open sql, conn, 3, 3
if Not rs.EOF then
   For iCols = 0 To rs.fields.Count - 1
       Sheets(1).Cells(1, iCols + 1).Value = rs.fields(iCols).Name
   Next iCols
   Sheets(1).Cells(2, 1).CopyFromRecordset rs
endif


sub test()
Set cnn = CreateObject("ADODB.Connection")  

Set rs = CreateObject("Adodb.Recordset")strCn= "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password"
    cnn.Open strCn   
    SQL = ""
     cnn.Open strCn '与数据库建立连接,如果成功,返回连接对象zdcn
    rs.Open SQL , cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中    
    cnn.Close
    Set cnn = Nothing

end sub

请参考

连接数据库后,通过写SQL语句实现增删改查

相关阅读

关键词不能为空
极力推荐

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