2014-01-17 3 views
2

Hello -MS access combo box получить выбранное значение предмета

Я использую MS Access, и я использую форму для запуска запроса. Форма имеет два текстовых поля, поле со списком и кнопку.

Все три предоставляют критерии запроса, и кнопка запускает запрос при нажатии. В настоящее время текстовые поля работают, и они предоставляют критерии для запроса. Поле со списком привязано к данным из другой таблицы и в настоящее время не предоставляет критерии для запроса.

Что я хотел бы сделать, так это то, что когда я выбираю элемент в поле со списком, и я запускаю запрос с помощью кнопки, выбранным элементом является тот, который используется в качестве критериев в запросе.

Если для этого требуется код vba, я был бы очень признателен, если бы вы показали мне, как это делается.

Благодаря

+0

Удалось ли вам решить проблему? – Katana24

ответ

0

Доброе утро,

Да что потребуется некоторое VBA код для выполнения. Вы не заявили фактические данные, которые вошли в Textboxes, имена TextBox или что, но я создал основной макет того, как она будет идти:

Private Sub btnRunSQL_Click() 

On Error GoTo ErrHandler: 

'Retrieve data from the form elements 
Dim forename As String 
forename = Forms!frmTest!txtForename 

Dim surname As String 
surname = Forms!frmTest!txtSurname 

Dim occupation As String 
occupation = Forms!frmTest!cmbOccupation 

Dim strSQL As String 
strSQL = "SELECT * " & _ 
     "FROM Patient " & _ 
     "WHERE Job = [" & occupation & "] AND Forename = " & forename & " " & _ 
     "AND Surname = " & surname & "; " 

'Print our SQL to see what we are retrieving 
Debug.Print strSQL 

'Run the constructed SQL statement 
DoCmd.RunSQL strSQL 

ErrHandler: 

'If an error occurs 
If Err.Number <> 0 Then 
    MsgBox "Error Number: " + Err.Number + ": Description: " + Err.Description 
End If 

End Sub 

Выше мы можем видеть, что я явно ссылаясь к элементам формы по их именам, чтобы верхняя часть получала информацию внутри них и передавала каждую свою собственную переменную. (Примечание. Вероятно, вы захотите выполнить некоторую проверку, чтобы все эти поля были заполнены перед выполнением SQL.)

Затем я создаю SQL на основе переданных значений и распечатываю их в ближайшее окно, чтобы определить, он был построен правильно. Затем я выполнить оператор с помощью команды:

DoCmd.RunSQL strSQL 

Я также заверил, что любые ошибки, которые могут возникнуть обрабатываются и представляются обратно пользователю через обработчик ошибок, определенный на кнопке функции.

Последнее, что вы знаете, как добраться до окна VBA и как создать код специально для кнопки?

это сделать, если вы этого не сделаете:

  1. правой кнопкой мыши на кнопке в режиме просмотра формы дизайна.
  2. Выберите Build Event
  3. Выберите Code Builder и нажмите кнопку ОК

Теперь вы будете принимать в окно VBA (который также можно открыть, нажав Alt + F11)

Я надеюсь, что это помогает

+0

Спасибо @ Katana24 Я ушел на некоторое время, но это действительно работает. Это приятное простое решение, которое легко реализовать и действительно помогает – user1534409

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