Операторы VBA Multiple Insert, но только частичные добавления

У меня возникла проблема, когда у меня есть код VBA, созданный для добавления нескольких записей в мои таблицы. код компилируется без проблем и не вызывает никаких ошибок при запуске, однако, когда я возвращаюсь и смотрю на записи в моих таблицах, только около половины необходимых записей были созданы

вот код

Private Sub btnAddEnt_Click()
Dim strEnt As String
Dim strRev As String
Dim strDir As String
Dim strInd As String
Dim strDep As String
Dim strARev As String
Dim strADir As String
Dim strAInd As String
Dim strADep As String
strEnt = "INSERT INTO EntList (EntityID, BusinessUnit, EntityName, Location, Client,Dept) " & _ "VALUES ('" & Me.EntityID & "', '" & Me.BusinessUnit & "', '" & Me.EntityName & "', '" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "');"
strRev = "INSERT INTO ForcastTrans (Location, Client, Department, Account, EntityID, Description, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '4151 SET UP', '" & Me.EntityID & "', 'Default', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strDir = "INSERT INTO ForcastTrans (Location, Client, Department, Account, EntityID, Description, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '5855 OTHER', '" & Me.EntityID & "', 'Default', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strInd = "INSERT INTO ForcastTrans (Location, Client, Department, Account, EntityID, Description, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '6055 SALARIES/WAGES - OTHER', '" & Me.EntityID & "', 'Default', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strDep = "INSERT INTO ForcastTrans (Location, Client, Department, Account, EntityID, Description, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '6950 DEPRECIATION', '" & Me.EntityID & "', 'Default', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strARev = "INSERT INTO ActualTrans (Location, Client, Department, Account, EntityID, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '4151 SET UP', '" & Me.EntityID & "', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strADir = "INSERT INTO ActualTrans (Location, Client, Department, Account, EntityID, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '5855 OTHER', '" & Me.EntityID & "', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strAInd = "INSERT INTO ActualTrans (Location, Client, Department, Account, EntityID, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '6055 SALARIES/WAGES - OTHER', '" & Me.EntityID & "', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
strADep = "INSERT INTO ActualTrans (Location, Client, Department, Account, EntityID, Month1, Month2, Month3, Month4, Month5, Month6, Month7, Month8, Month9, Month10, Month11, Month12) " & _ "VALUES ('" & Me.Location & "', '" & Me.Client & "', '" & Me.Dept & "', '6950 DEPRECIATION', '" & Me.EntityID & "', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);"
Debug.Print strEnt
Debug.Print strRev
Debug.Print strDir
Debug.Print strInd
Debug.Print strDep
Debug.Print strARev
Debug.Print strADir
Debug.Print strAInd
Debug.Print strADep
CurrentDb.Execute strEnt
CurrentDb.Execute strRev
CurrentDb.Execute strDir
CurrentDb.Execute strInd
CurrentDb.Execute strDep
CurrentDb.Execute strARev
CurrentDb.Execute strADir
CurrentDb.Execute strAInd
CurrentDb.Execute strADep
DoCmd.Close

Как вы можете видеть, я вставил строки Debug.Print, пытаясь понять, что происходит, но все строки sql хороши. Однако, когда этот раздел кода закончен, выполнение записей для (strInd, strDep, strAInd и strADep) не существует в моих таблицах.

Есть ли какой-то шаг, который я потерял или должен включить, чтобы стабилизировать его, чтобы все записи создавались по назначению?

1 ответ

Вам нужно добавить код вокруг выполнения, чтобы увидеть, что такое ошибка, скорее всего, что-то из SQL

On Error GoTo Err_Execute
Currentdb.Execute strInd
On Error GoTo 0
' etc ...
Exit Sub
Err_Execute: ' Notify user of any errors that result from ' executing the query. If DBEngine.Errors.Count > 0 Then For Each errLoop In DBEngine.Errors MsgBox "Error number: " & errLoop.Number & vbCr & _ errLoop.Description Next errLoop End If Resume Next
End Sub

Мой VBA очень ржавый, но это должно заставить вас начать, чтобы вы могли видеть, что такое ошибка... Быстро догадавшись, я бы проверил длину поля описания в таблице ForecastTran. Единственное, что я вижу, это то, что эти ценности выглядят немного длиннее других, чем работали.

licensed under cc by-sa 3.0 with attribution.