【问题标题】:Syntax error when copying data from Excel userform to Access table将数据从 Excel 用户窗体复制到 Access 表时出现语法错误
【发布时间】:2019-06-03 09:47:28
【问题描述】:

当尝试通过 SQL 将 Excel 用户表单中的数据复制到 Access 表中时,我在数据库中是/否类型的字段上遇到错误。如何正确格式化信息以便更新数据库?

我查看了一些将数据复制到 Access 中是/否字段的其他示例,并尝试了多种不同格式的代码,包括双引号、单引号和如下所示

Dim oConn As ADODB.Connection
Dim oCm As ADODB.Command
Dim iRecAffected As Integer

If Me.TBField.Visible = False Then
'Update office users

Init1 = Left(Me.TxtName1, 1) & Mid$(Me.TxtName1, InStr(Me.TxtName1, " ") + 1, 1)
    Select Case Me.LblFraOffice.Caption
        Case Is = "Add User"
            Set oConn = New ADODB.Connection
            oConn.Open sConn
            Set oCm = New ADODB.Command
            oCm.ActiveConnection = oConn
            If RbUser.Value = True Then
            oCm.CommandText = "INSERT Into Users (Name, Username, Initials, Process, FLM, FLM_ID, User, JobRole) " & _
            "VALUES ('" & TxtName1.Value & "','" & TxtUname1.Value & "','" & Init1 & "','" & TxtProcess1.Value & "','" & TxtFLM.Value & "','" & TxtFLMID.Value & "', True ,'" & TxtPosition1.Value & "')"
            ElseIf RbAdmin.Value = True Then
            oCm.CommandText = "INSERT Into Users (Name, Username, Initials, Process, FLM, FLM_ID, JobRole, User) " & _
            "VALUES ('" & TxtName1.Value & "','" & TxtUname1.Value & "','" & Init1 & "','" & TxtProcess1.Value & "','" & TxtFLM.Value & "','" & TxtFLMID.Value & "', True ,'" & TxtPosition1.Value & "')"
            ElseIf RbManager.Value = True Then
            oCm.CommandText = "INSERT Into Users (Name, Username, Initials, Process, FLM, FLM_ID, JobRole, User) " & _
            "VALUES ('" & TxtName1.Value & "','" & TxtUname1.Value & "','" & Init1 & "','" & TxtProcess1.Value & "','" & TxtFLM.Value & "','" & TxtFLMID.Value & "', True ,'" & TxtPosition1.Value & "')"
            End If

            'MsgBox oCm.CommandText
            oCm.Execute iRecAffected
            oConn.Close

当在用户表单上按下提交时,这应该将一个新创建的用户添加到数据库表中。如果我删除用户字段(以及相关的真/假),它就可以工作。但我的用户可以是用户、管理员或经理

目前我收到一条错误消息

运行时错误“-2147217900 (80040e14)”:INSERT INTO 语句中的语法错误

【问题讨论】:

    标签: sql excel vba ms-access


    【解决方案1】:

    列名Userreserved keyword。您能否在关键字周围添加方括号来解决此问题:

    INSERT Into Users (Name, Username, Initials, Process, FLM, FLM_ID, [User], JobRole)
    

    或者您可以将列名重命名为非保留关键字以解决此错误。

    【讨论】:

      猜你喜欢
      • 2017-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      相关资源
      最近更新 更多