У меня возникли трудности с созданием правильного оператора SELECT в Access 2010 VBA. Я пытаюсь вытащить 3 поля из таблицы с помощью ADODB.Recordset. Я делал это много раз до этого без проблем, но на этот раз я пытаюсь выполнить его на основе введенного пользователем числа, которое является частью одного из значений поля. Таким образом, если полное поле может быть T6825LZ, пользователь должен иметь возможность ввести 6825, а инструкция SELECT найти правильную запись.Access 2010 SELECT string
Мой код до сих пор является:
Dim rsTID As New ADODB.Recordset
Dim searchTID As String
Dim selectString As String
searchTID = "T" & TID
selectString = "SELECT * FROM Agents WHERE TID LIKE " & searchTID & ""
rsTID.Open selectString, CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic
If Not rsTID.EOF Then
TID = rsTID.Fields("TID")
LastName = rsTID.Fields("LastName")
FirstName = rsTID.Fields("FirstName")
End If
В приведенном выше коде, «TID» в строке searchTID = "T" & TID
относится к TextBox на форме доступа, где пользователь вводит 4-значный номер. TID
в selectString
относится к полю в таблице Agents
. Немного смущает, я знаю, но это то, что я дал, чтобы работать с :)
Что в конечном счете, происходит то, что я получаю сообщение об ошибке на rsTID.Open
линии заявив Нет значение, заданное для одного или более требуемыми параметрами. Это не имеет никакого смысла, поскольку согласно MSDN все параметры оператора ADODB.RecordSet.Open
являются необязательными, и даже если они не были, все они присутствуют.
Может кто-нибудь, пожалуйста, помогите определить проблему здесь, это становится довольно неприятным. :)
Заранее спасибо ...
'" SELECT * FROM агентов WHERE TID LIKE '* "& searchTID &" *' "' –
@TimWilliams. , , Вы должны сделать это в ответ, чтобы он мог принять его. –