2012-03-06 3 views
0

У меня есть база данных в Access 2007, и в настоящее время я использую следующий код для окна текстового поиска. Моя проблема в том, что он найдет только запись, если в поле поиска будет введено все имя. В случае имени компании я хотел бы, чтобы пользователь мог ввести первое слово в бизнесе и получить запись в форме. В настоящее время, если я набираю имя, он говорит, что запись не может быть найдена. Я должен ввести все название компании. Может кто-нибудь помочь мне настроить этот код на то, что мне нужно?Как создать текстовое окно поиска, которое ищет любую часть критериев в Access 2007?

Private Sub txtsrch_AfterUpdate()

If (txtsrch & vbNullString) = vbNullString Then Exit Sub 
    Dim rs As DAO.Recordset 
Set rs = Me.RecordsetClone 
rs.FindFirst "[lastname]=""" & txtsrch & """" 
If rs.NoMatch Then 
    MsgBox "Sorry, no such record '" & txtsrch & "' was found.", _ 
      vbOKOnly + vbInformation 
Else 
    Me.Recordset.Bookmark = rs.Bookmark 
End If 
rs.Close 
txtsrch = Null 

End Sub

Спасибо.

ответ

0

Вы можете:

rs.FindFirst "[lastname] Like '*" & Replace(txtsrch,"'","''") & "*'" 

Вы можете изменить, где вы поставите символ (* для DAO) для начала с txtsrch, заканчивается txtsrch, или, как показано, имеет txtsrch в названии.

+0

Спасибо Remou. Зачем мне заменять там, если я не собираюсь ничего менять. я немного смущен. Он работает отлично, хотя. –

+0

Вы избегаете появления апострофа в строке, поэтому вы не можете найти «like» * D'Alembert * '', что вызовет ошибку. – Fionnuala