Я пытаюсь создать свой комбинированный ящик в своей форме, чтобы я мог добавлять данные, если их нет в списке. Мой поле со списком называется cmbTitle, а имя таблицы, которое я вытаскиваю из информации поля со списком, - tblDVD. В моем поле со списком не перечислены заголовки, хотя он перечисляет идентификационные номера, которые мне не нужны, и код, который у меня есть, не позволяет мне добавлять его в поле со списком или обновлять таблицу. Я не уверен, что я делаю неправильно. Прошу прощения, я нахожусь в Ambuer в VBA, и кто-то может мне помочь. Ниже мой код для моей формы с поля со списком:Кодирование доступа и VBA
Private Sub cmbTitle_Change()
On Error GoTo myError
Dim rst As DAO.Recordset
Set rst = Me.RecordsetClone
rst.FindFirst "ID = " & Me!cmbTitle
Me.Bookmark = rst.Bookmark
Me!cmbTitle = Null
leave:
If Not rst Is Nothing Then Set rst = Nothing
Exit Sub
myError:
MsgBox "Record Not Found"
Resume leave
End Sub
Private Sub cmbTitle_NotInList(NewData As String, Response As Integer)
Dim db As Database
Dim LSQL As String
Dim LResponse As Integer
Dim ctl As Control
On Error GoTo Err_Execute
'Category combo box control
Set ctl = Me!Task
LResponse = MsgBox(NewData & " is a new item. Do you wish to add it to the combo box?", vbYesNo, "Add Item")
'User responded "Yes" to adding the new item to the combo box
If LResponse = vbYes Then
Set db = CurrentDb()
'Insert new item into underlying table
LSQL = "insert into tblDVDs (tblDVDs) values ('" & NewData & "')"
db.Execute LSQL, dbFailOnError
Set db = Nothing
'Set Response argument to indicate that data is being added.
Response = acDataErrAdded
Else
'Set Response argument to suppress error message and undo changes
Response = acDataErrContinue
ctl.Undo
End If
On Error GoTo 0
Exit Sub
`Err_Execute: ctl.Undo MsgBox«Ошибка действия»
End Sub
End Sub
Огромное спасибо, что идентификатор - это номер автонабора, какой код подходит для ширины столбца. Я еще не сделал этого – Rhonda