标准表达式中的数据类型不匹配

时间:2013-08-19 13:34:35

标签: vba

标准表达式中的数据类型不匹配,我认为下面的代码是正确的,但现在我得到了这个错误,不知道我添加的是不正确的。

以下代码将发布到数据库

函数Main()只连接到DB

Private Sub adddata()
    Main
    Dim strSQL As String

    Data1 = Sheets("Sticker").Range("B6").Value
    Data2 = Sheets("Sticker").Range("D4").Value
    Data3 = Sheets("Sticker").Range("A2").Value
    Data4 = Sheets("Sticker").Range("C8").Value
    Data5 = Sheets("Sticker").Range("B14").Value
    Data6 = Sheets("Sticker").Range("D12").Value
    Data7 = Sheets("Sticker").Range("A10").Value
    Data8 = Sheets("Sticker").Range("C16").Value
    strSQL = "INSERT INTO STICKER (CertNo, IssueDate, Serial, RecalDue,CertNo_Vic, IssueDate_Vic, Serial_Vic, RecalDue_Vic)" & _
            "VALUES('" & _
            Data1 & "','" & _
            Data2 & "','" & _
            Data3 & "','" & _
            Data4 & "','" & _
            Data5 & "','" & _
            Data6 & "','" & _
            Data7 & "','" & _
            Data8 & "')"

    adoConnection.Execute strSQL, , adCmdText + adExecuteNoRecords
    MsgBox "Added info to the db   ", vbExclamation, "Connection.Execute"
End Sub

1 个答案:

答案 0 :(得分:1)

您要连接哪个数据库?假设它是Access,日期文字必须用#字符包围,而不是单引号,例如#7/12/2013#

但更好的解决方案是使用参数化查询 - 这样您就不必担心正确的引号并简单地按原样传递值。额外奖励:这将有助于避免可能的SQL注入。