2013-07-24 4 views
0

Я пытаюсь создать свой комбинированный ящик в своей форме, чтобы я мог добавлять данные, если их нет в списке. Мой поле со списком называется 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 

ответ

0

Вы можете установить поле со списком, чтобы иметь 2 колонки

колонка 1 ID

Колум 2 Название

и установить ширину столбца в: 0" , 1" , чтобы скрыть идентификатор на комбинированном окне

Добавленное заявление должно быть

Вставить в tblDVDS (titlefield) значения

Я предполагаю, ID - это номер автозапуска , остальная часть кода выглядит правильно.

+0

Огромное спасибо, что идентификатор - это номер автонабора, какой код подходит для ширины столбца. Я еще не сделал этого – Rhonda

Смежные вопросы