MS Access VBA пропустить вставку в одну из таблиц - PullRequest
0 голосов
/ 28 июня 2018

Я писал код VBA для кнопки в форме. Целью этого должно быть: добавить данные в таблицу квартир и таблицу владельцев. Однако он пропускает таблицу квартир и просто добавляет данные в таблицу владельцев. Я также не получаю никаких сообщений об ошибках, все выглядит, что оно прошло, но таблица с квартирами все еще пуста. Вот мой код.

Private Sub cmdAdd_Click()
    'add to apartment
    CurrentDb.Execute " INSERT INTO Apartment(Apartment, Account_ID, Total_area, Heated_area, People) " & _
           " VALUES ( " & Me.txtApt & ",'" & Me.txtAcc & "','" & _
           Me.txtTotal_area & "','" & Me.txtHeated_area & "','" & Me.txtPeople & "')"
    'add to owner
    CurrentDb.Execute " INSERT INTO Owner (Account, FName, LName, MName) " & _
           " VALUES ( " & Me.txtAcc & ",'" & Me.txtFName & "','" & _
           Me.txtLName & "','" & Me.txtMName & "')"
    'clear
    cmdClear_Click

    'subform requery
    frmAptSub.Form.Requery
End Sub    

1 Ответ

0 голосов
/ 28 июня 2018

Это может помочь вам оценить оператор SQL, который вы выполняете, чтобы вы могли точно видеть, что происходит: -

Private Sub cmdAdd_Click()
dim sSQL as string
sSQL = " INSERT INTO Apartment(Apartment, Account_ID, Total_area, Heated_area, People) " & _
       " VALUES ( " & Me.txtApt & ",'" & Me.txtAcc & "','" & _
       Me.txtTotal_area & "','" & Me.txtHeated_area & "','" & Me.txtPeople & "')"
'add to apartment
debug.print sSQL
CurrentDb.Execute sSQL, dbFailOnError
'add to owner
sSQL = " INSERT INTO Owner (Account, FName, LName, MName) " & _
       " VALUES ( " & Me.txtAcc & ",'" & Me.txtFName & "','" & _
       Me.txtLName & "','" & Me.txtMName & "')"
debug.print sSQL
CurrentDb.Execute sSQL, dbFailOnError '... etc

Обратите внимание также на использование dbFailOnError, поэтому, если что-то препятствует вставке в таблицу квартир (ограничение, нарушение ключа и т. Д.), Тогда возникнет ошибка, чтобы вы могли проверить детали.

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