VBA Excel SQL插入查询在插入的所有数据中添加撇号

VBA Excel SQL插入查询在插入的所有数据中添加撇号,sql,excel,vba,Sql,Excel,Vba,我试图使用INSERT语句将数据从userform插入excel电子表格,但它会在每个插入值中添加撇号,甚至是日期和数字 如何执行insert语句,使其不会为任何值插入任何撇号 我当前使用的代码: Sub Insert_data() Dim con As Object Dim vSQL1 As String Dim dbpath As String dbpath = myworkbookpath Set con = CreateObject("ADODB.Connection") con.C

我试图使用INSERT语句将数据从userform插入excel电子表格,但它会在每个插入值中添加撇号,甚至是日期和数字

如何执行insert语句,使其不会为任何值插入任何撇号

我当前使用的代码:

Sub Insert_data()
Dim con As Object
Dim vSQL1 As String
Dim dbpath As String

dbpath = myworkbookpath

Set con = CreateObject("ADODB.Connection")
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbpath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=0"";"
con.Open

'CancelledFeeEntryForm.LogDate.Value = Date
'CancelledFeeEntryForm.RecordAppNum.Value = 123456789

vSQL1 = "INSERT INTO [Sheet1$] ([Employee],[Date Of Call],[Application Number]) " & _
"VALUES('" & CancelledFeeEntryForm.Employee.Value & "'," & _
"#" & CancelledFeeEntryForm.LogDate.Value & "#," & _
CancelledFeeEntryForm.RecordAppNum.Value & ");"

con.Execute (vSQL1)
con.Close

End Sub

您应该调试并查看vSQL1到底包含了什么

从外观上看,您的SQL语句将是这样的:

... VALUES ('SomeStringValue',#SomeDateValue,123')
。。。又名,数值的末尾有一个撇号。。。但不是一开始


老实说,我很高兴ExcelVBA能像这样处理它。因为另一种选择是为SQL注入攻击打开一个安全漏洞,所以我在大约5秒钟的时间内就开始大骂你不应该这样做SQL语句,直到我注意到VBA保护你免受严重的安全错误。

找到了一个解决办法,尽管这很烦人,但现在必须这样做

与excel在许多情况下一样,我必须在工作簿的第2行输入虚拟数据,我正在以我想要的格式插入数据。然后,当使用SQL插入代码时,它将匹配现有数据


如果有人知道如何通过代码来实现这一点,请随意参与。谢谢

对不起,这是完整代码的节略版本。我编辑了我的文章,没有额外的撇号。@W-hit-Huh。好吧,这完全否定了我的答案。我现在能想到的唯一一件事是,从“SQL”到excel的桥梁正试图从事物的SQL端找出数据类型,并且它提出了“general/string”作为答案。如果将SQL语句更改为convertint、myNumVal之类的语句,并查看强制数据类型上下文是否更好,会发生什么情况?不知道-我可能不得不启动VBA来看看我是否能重现问题并解决它,仅仅是出于好奇。我尝试了转换,但没有运气。很可能是因为问题出在excel,而不是sql语法。