Я новичок в базе данных VBA в Access, следующий код пытается объединить два столбца в таблице_2, но одно из имен столбцов должно быть определено значением поля из Table_1, я попытался запустить код, но он возвращает «Ошибка обновления: Слишком мало параметров. Ожидаемый 1.» Я не уверен, где проблема.Acess VBA - Обновить переменную колонку (Слишком мало ошибок параметров)
Цените, если кто-то может помочь. Большое спасибо.
Function test()
On Error Resume Next
Dim strSQL As String
Dim As String
Dim txtValue As String
txtValue = Table_1![Field_A]
Set ws = DBEngine.Workspaces(0)
Set db = ws.Databases(0)
On Error GoTo Proc_Err
ws.BeginTrans
strSQL = "UPDATE Table_2 INNER JOIN Table_1 ON Table_2.id = Table_1.id SET Table_2.Field_Y = Table_2!txtValue & Table_2![Field_Z]"
db.Execute strSQL, dbFailOnError
ws.CommitTrans
Proc_Exit:
Set ws = Nothing
Set db = Nothing
Exit Function
Proc_Err:
ws.Rollback
MsgBox "Error updating: " & Err.Description
Resume Proc_Exit
End Function
UPDATE: следующие коды с реальными именами полей:
Function CombineVariableFields()
On Error Resume Next
Dim ws As Workspace
Dim strSQL As String
Dim fieldname As String
fieldname = Table_1![SelectCombineField]
Set ws = DBEngine.Workspaces(0)
Set db = ws.Databases(0)
On Error GoTo Proc_Err
ws.BeginTrans
strSQL = "UPDATE Table_2 INNER JOIN Table_1 ON Table_2.BookType = Table_1.BookType SET Table_2.CombinedField = [Table_2]!fieldname & [Table_2]![BookName]"
Debug.Print strSQL
db.Execute strSQL, dbFailOnError
ws.CommitTrans
Proc_Exit:
Set ws = Nothing
Exit Function
Proc_Err:
ws.Rollback
MsgBox "Error updating: " & Err.Description
Resume Proc_Exit
End Function
Ниже приведены скриншоты двух таблиц
Вы уверены, что не пытаетесь сделать что-то подобное? "UPDATE Table_2 INNER JOIN Table_1 ON Table_2.id = Table_1.id SET Table_2.Field_Y =" & txtValue & "Table_2.Field_Z" –
@HansUp Да, таблица_2 содержит поле с именем txtValue – Will
@ davy-c, например, в таблице_2 библиотека хочет объединить [издатель] и [название книги], если тип книги является учебным пособием колледжа, и объединить [authur] и [название книги], если тип книги является новым. Какое поле используется для объединения с столбцом [book name], зависит от входного значения пользователя (txtValue) в таблице_1 для каждого типа книги. – Will