Синтаксическая ошибка при копировании данных из пользовательской формы Excel в таблицу Access - PullRequest
1 голос
/ 03 июня 2019

При попытке скопировать данные из пользовательской формы Excel в таблицу Access через SQL я обнаружил ошибку в поле типа Да / Нет в базе данных. Как правильно отформатировать информацию, чтобы она обновляла базу данных?

Я рассмотрел некоторые другие примеры копирования данных в поля «Да / Нет» в 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

При нажатии кнопки «Отправить» на пользовательской форме это должно добавить вновь созданного пользователя в таблицу базы данных. Если я удаляю поле User (и связанное с ним true / false), это работает. Но моими пользователями могут быть пользователи, администраторы или менеджеры

В настоящее время я получаю сообщение об ошибке

Ошибка времени выполнения '-2147217900 (80040e14)': синтаксическая ошибка в инструкции INSERT INTO

1 Ответ

2 голосов
/ 03 июня 2019

Имя столбца User является зарезервированным ключевым словом .Вы можете добавить квадратные скобки вокруг ключевого слова, чтобы решить проблему:

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

, или вы можете переименовать имя столбца в незарезервированное ключевое слово, чтобы устранить эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...