Я создаю свою первую базу данных Microsoft Access. Мне нужны поля со списком, которые позволяют выбирать из списка, а также добавлять значения в поле, из которого поле со списком вытягивает выборки. После долгих поисков я нашел этот пример кода VBA.
Private Sub cboMainCategory_NotInList(NewData As String, Response As Integer)
On Error GoTo Error_Handler
Dim intAnswer As Integer
intAnswer = MsgBox("""" & NewData & """ is not an approved category. " & vbcrlf _
& "Do you want to add it now?" _ vbYesNo + vbQuestion, "Invalid Category")
Select Case intAnswer
Case vbYes
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO tlkpCategoryNotInList (Category) "
& _ "Select """ & NewData & """;"
DoCmd.SetWarnings True
Response = acDataErrAdded
Case vbNo
MsgBox "Please select an item from the list.", _
vbExclamation + vbOKOnly, "Invalid Entry"
Response = acDataErrContinue
End Select
Exit_Procedure:
DoCmd.SetWarnings True
Exit Sub
Error_Handler:
MsgBox Err.Number & ", " & Error Description
Resume Exit_Procedure
Resume
End Sub
Если я использую неизмененный пример, он не выдаст ошибку, но и не позволит мне ввести новое значение.
Я пытался изменить код, чтобы он соответствовал моей базе данных, но этот блок просто выдает синтаксическую ошибку (я пытался устранить неполадки, но я новичок в VBA и не могу найти подходящий линтер).
Option Compare Database
Private Sub Combo26_NotInList(NewData As String, Response As Integer)
On Error GoTo Error_Handler
Dim intAnswer As Integer
intAnswer = MsgBox("""" & NewData & """ is not in the database yet " & vbcrlf _
& "Do you want to add it now?" _ vbYesNo + vbQuestion, "new chemical")
Select Case intAnswer
Case vbYes
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO chemical_IDNotInList (chemical) "
& _ "Select """ & NewData & """;"
DoCmd.SetWarnings True
Response = acDataErrAdded
Case vbNo
MsgBox "Please select an item from the list.", _
vbExclamation + vbOKOnly, "Invalid Entry"
Response = acDataErrContinue
End Select
Exit_Procedure:
DoCmd.SetWarnings True
Exit Sub
Error_Handler:
MsgBox Err.Number & ", " & Error Description
Resume Exit_Procedure
Resume
End Sub
Любая помощь будет принята с благодарностью, так как мне просто нужен функционирующий комбинированный список, который позволяет мне выбирать из существующих значений и добавлять новые для продвижения по проекту.