【发布时间】:2017-08-02 03:31:28
【问题描述】:
我正在尝试使用 adodb 将数据从一个 excel 文件插入到另一个文件中,并遇到了插入方法的问题。它给了我如下错误消息:
INSERT INTO 语句中的语法错误
我尝试了不同的日期格式,带引号和不带引号,我还尝试了不同的记录集方法,但这个 sql 语句仍然存在同样的问题。 有人可以帮我找出问题所在吗?
Public Sub InsertIntoTable()
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:\Users\User1\Documents\Excel files\tracker.xls; Extended Properties=""Excel 8.0;HDR=Yes"""
mySQL = "INSERT INTO ResourceTasks (Name, Task, Date, Load) VALUES ('Name11', 'task2'," & CDate("24 / 5 / 2017") & ", 0.50)"
Debug.Print mySQL
objConnection.Execute mySQL
End Sub
我使用此代码从 ResourceTasks 获取 Name 并将其加载到母版页中;使用非常相似的功能,我可以检索任务、加载和日期,唯一的区别是屏幕上的格式
我与下一个参数建立了联系:adOpenStatic、adLockReadOnly
Public Sub SearchNames()
Dim oResources As ADODB.Recordset
Dim oDal As New clsDAL
Worksheets("Master").Activate
Set oResources = oDal.GetReadonlyRS("SELECT DISTINCT [Name] FROM [ResourceTasks$]") 'where Date >= **Drop date from selection here** and Date < **Drop date from selection here** 'where Active like TRUE ")
oResources.MoveFirst
'get all record from record set one by one to 2nd table
Do Until oResources.EOF
RowNumber = 30 + oResources.AbsolutePosition
Range("A" & RowNumber).Value = oResources.Fields("Name").Value
oResources.MoveNext
Loop
'! get all record from record set one by one to 2nd table
'Close connection and file
oResources.Close
Set oResources = Nothing
oDal.closeFile
Set oDal = Nothing
'! close connection and file
End Sub
谢谢
【问题讨论】:
-
作为建议,您应该使用
Option Explicit强制自己声明所有变量。