Доброе утро,
Я помогаю разработать интерфейс через форму в MS Access. У нас есть список с различными пользовательскими значениями, и пользователь должен иметь возможность выбрать несколько значений в ListBox, а затем нажать кнопку, чтобы выполнить запрос, возвращая только те строки, имя машины которых является тем, что было выбрано.
ОБНОВЛЕНИЕ - благодаря отличным отзывам на этом форуме основная проблема была решена. Моя вторичная проблема теперь не может выполнить запрос. При попытке я получаю сообщение об ошибке, что запрос не может быть выполнен.
Мой код (как процедура события) для кнопки:
Option Explicit
Private Sub btnSearchCars_Click()
MsgBox "Starting Sub"
Call QueryCars.myQuery
MsgBox "Ending Sub"
End Sub
Тогда мой модуль QueryCars выглядит так:
Sub myQuery()
Dim strWhere As String
Dim strSQL As String
Dim varItem As Variant
For Each varItem in Forms!FormSelect!listCarID.SelectedItems
strWhere = strWhere & "'" & Forms!FormSelect!listCarID.ItemData(varItem) & "',"
Next
strWhere = Left (strWhere, Len (strWhere) -1)
strSQL = "SELECT tblBig.* FROM tblCars INNER JOIN tblBig ON tblCars.Car_ID = tblBig.Car_ID WHERE tblCars.Car_ID IN (" & strWhere & ");"
DoCmd.RunSQL strSQL
End Sub
Моя ошибка - это сообщение об ошибке «RunSQL требует аргумент оператора SQL» в строке.
DoCmd.RunSQL strSQL
Я был бы очень признателен, если бы кто-нибудь мог помочь. Все, что я пытаюсь сделать, это взять значения из списка, который выбирает пользователь, и использовать их в качестве критериев WHERE в моем запросе. Я искал различные форумы SO и Access все утро и не нашел ничего, что могло бы помочь.
Спасибо. Пожалуйста, дай мне знать, если возникнут какие-либо вопросы.
myForm
неверно. Оно должно бытьAs Access.Form
. ИспользуяOption Explicit
в верхней части каждого модуля, вы сможете выбрать эти ошибки во время компиляции. - person Kostas K.   schedule 26.06.2018For Each varItem In FormName!listCarID.ItemsSelected
- person Kostas K.   schedule 26.06.2018