Я застрял в этой инструкции SQL в своем кодировании VBA. Я пытаюсь выполнить запрос на обновление с помощью DLookUp, но я, возможно, неправильно написал код. В основном я хочу, чтобы WorkerID
и Workername
пришли из DLookUp из идентификатора пользователя, используемого для получения данных здесь GetNextAssignee("program", "Language", "username")
. Я получаю сообщение об ошибке необходимого объекта здесь:Объект Обязательная ошибка MS Access SQL
"UPDATE CFRRR,attendance SET assignedto = " & GetNextAssignee("program", "Language", "username") & ", assignedby = " & Forms!Supervisor!NavigationSubform!assignedby.Value & ", Dateassigned = #" & Now & "#, actiondate = #" & Now & "#, Workername = " & DLookup(attendance.username, "attendance", "username = UserID") & ", WorkerID = " & DLookup(attendance.userID, "attendance", "WorkerID = UserID") & " WHERE CFRRRID = " & rs!CFRRRID
Вот полный код для контекста:
Set db = CurrentDb
strSQL = "SELECT CFRRRID, [program], [language] FROM CFRRR WHERE assignedto Is Null"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If Not rs.BOF And Not rs.EOF Then
While Not rs.EOF
strSQL = "UPDATE CFRRR,attendance SET assignedto = " & GetNextAssignee("program", "Language", "username") & ", assignedby = " & Forms!Supervisor!NavigationSubform!assignedby.Value & ", Dateassigned = #" & Now & "#, actiondate = #" & Now & "#, Workername = " & _
DLookup(attendance.username, "attendance", "username = UserID") & ", WorkerID = " & DLookup(attendance.userID, "attendance", "WorkerID = UserID") & " WHERE CFRRRID = " & rs!CFRRRID
Debug.Print strSQL
db.Execute strSQL, dbFailOnError
rs.MoveNext
Wend
End If
Спасибо!
Каковы типы данных 'assignto',' assignby', 'Workername',' username', 'WorkerID'. Можете ли вы отредактировать сообщение, чтобы включить метод «GetNextAssignee» – PaulFrancis