各位朋友: 我需要将 Test.xls数据表中 range("A1:D100")的数据一次性插入到数据表中,以下语句该怎么修改:
我知道通过查询语句一次性插入多条记录,但是在Excel记录集如何描述该条语句,希望通过定义一个动态二维数组也没实施成功,烦请知情朋友指点一下,谢谢.Execute "Insert Into TestTable Select ...."通过循环这种方法太笨了,而且行数列数都是不固定的
For i = 1 To 100
.Execute "Insert Into TestTable Value("& objsheets(cells(i,1),objsheets(cells(i,2)....)
Next
我知道通过查询语句一次性插入多条记录,但是在Excel记录集如何描述该条语句,希望通过定义一个动态二维数组也没实施成功,烦请知情朋友指点一下,谢谢.Execute "Insert Into TestTable Select ...."通过循环这种方法太笨了,而且行数列数都是不固定的
For i = 1 To 100
.Execute "Insert Into TestTable Value("& objsheets(cells(i,1),objsheets(cells(i,2)....)
Next
Test.xls Excel电子表
TestTable Access数据表
这种方式只能插入一次
不能后续插入
也就是说这样插入的表名testtable必须是目前的database中不存在的
你可以把excel的内容读到recordset中
然后循环着读recordset就快很多,也方便一些
Public Function GetExcelRs(ByVal strName As String) As ADODB.Recordset
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
Dim conn As String
Rs.CursorLocation = adUseClient
Rs.CursorType = adOpenDynamic
Rs.LockType = adLockBatchOptimistic
conn = "data provider=msdasql.1;driver=microsoft excel driver (*.xls);dbq=" & strName
Rs.Open "SELECT * FROM [sheet1$]", conn
Set GetExcelRs = Rs
Set Rs = Nothing
End Function
用这个代码取
然后用哪一列,哪一行开始
都可以用recordset来决定
然后决定取哪一列
datou985朋友: 请问一下,Access数据库支持插入记录集吗? 如下调试时出现类型不符,我将上面GetExcelRs函数进行了修改,文件名和路径名和活动工作表名称 动态获取 .Execute "Insert Into TestTabl & GetExcelRst