我是VBA的新手。我使用ms-access作为数据库。我在excel中有一个原始数据,我想每天将数据插入ms-access。 在每个excel中,我有超过100或200行。我的数据库和excel列标题相同。 现在我按时插入一行。插入所有数据需要很长时间。而不是我想在一个插入语句中插入所有行。
目前我是以下方法:
for i = 1 to 100
name = wb.sheets(1).celss(i,1)
job = wb.sheets(1).celss(i,2)
testt = wb.sheets(1).celss(i,3)
ssql="insert into (name, job, testt) values('"& name &"','"& job &"','"& testt &"')"
next i
上述方法需要很长时间才能插入所有数据。任何人都可以帮助我使用一个插入语句来推送所有数据。
提前致谢。
答案 0 :(得分:0)
如果工作表的第一行是标题,则可以直接从访问中查询电子表格。选择值是列标题名称。 Sheet1
是您在Excel中显示的工作表名称,并且您的访问查询中需要$。
Dim dbLocal as DAO.Database
Set dbLocal = CurrentDB()
Dim sql as String
sql = "INSERT INTO Table1 (name, job, testt) SELECT name, job, testt" & _
"FROM [Sheet1$] IN '" & FileName & "'[Excel 8.0;];"
dbLocal.Execute sql, dbFailOnError
dbLocal.Close
Set dbLocal = Nothing