MS Access: ошибка в vba моей формы

#ms-access #vba

#ms-access #vba

Вопрос:

У меня есть простая форма MS Access, в которой есть 3 объекта: текстовое поле, поле со списком и кнопка. Предполагаемое использование формы заключается в следующем: пользователь вводит имя в текстовое поле, выбирает элемент из списка, затем нажимает кнопку, чтобы добавить данные в таблицу.

Однако, когда я нажимаю на кнопку, я продолжаю получать сообщение об ошибке: «Вы не можете ссылаться на свойство или метод для элемента управления, если элемент управления не имеет фокуса».

Ниже приведен мой код. Спасибо!

 Private Sub addRecord_button_Click()
    Dim CustomerName As String
    Dim CustomerType As String

    On Error GoTo Errhandler

    CustomerName = "[name not selected]"
    CustomerType = "[type not selected]"

    CustomerName = Customer_TextBox.Text

    Select Case Type_ListBox.ListIndex
        Case 0
            CustomerType = "Type 1"
        Case 1
            CustomerType = "Type 2"
        Case 2
            CustomerType = "Type 3"
    End Select

    'MsgBox ("Name: " amp; CustomerName amp; " and Type: " amp; CustomerType)

    DoCmd.RunSQL "INSERT INTO Customer VALUES (CustomerName, CustomerType);"

Errhandler:
    MsgBox ("The following error has occured: " amp; Err amp; " - " amp; Error(Err))
End Sub
  

Ответ №1:

.Text Свойство можно использовать только тогда, когда текстовое поле имеет фокус. Попробуйте .Value вместо этого использовать свойство.

Попробуйте заменить строку ниже

 CustomerName = Customer_TextBox.Text
  

с

 CustomerName = Customer_TextBox.Value
  

Комментарии:

1. Или полностью исключите свойство, т. Е. Me!Customer_Textbox (Также действительно следует указывать родительскую форму, т. Е. Me!, поскольку это отличает ее от ссылки на переменную).