2016-03-10 3 views
1

Мне нужна помощь в VBA с MS-Access. Я не очень кодер, но смог скомпилировать базу данных членства в доступе. В любом случае возникла проблема с моим поиском участников: любое имя участника содержит «» в поле последнего и первого имени, например «O'Conner», «O'Neil» и т. Д., Не может быть найдено поиск, в то время как все остальные имена прекрасны. Может ли кто-нибудь указать мне в правильном направлении? Вот код:MS-Access VBA Имя Поиск

Dim stDocName As String 
stDocName = "MemberView" 

Dim swhere As String 

'Search by name 
If Not IsNull(txtFullName) Then 
Dim sFullName As String 
Dim sLastName As String 
Dim sFirstName As String 
Dim icount As String 

sFullName = txtFullName 
sLastName = Left(sFullName, InStr(1, sFullName, ",") - 1) 
sFirstName = LTrim(Mid(sFullName, InStr(1, sFullName, ",") + 1)) 

swhere = "[Last Name]='" & sLastName & "' and [First Name]='" & sFirstName & "'" 

icount = DCount("[Last Name] and [First Name]", "Members", swhere) 

If icount > 1 Then 
MsgBox " " & icount & " found" 
Else 

End If 

Else 

End If 

Надеюсь, это что-то простое или просто некоторые переменные, которые я установил неправильно.

Большое спасибо!

+0

Да, у членов есть поле [фамилия] и [имя]. –

+1

Попробуйте заменить одиночный ['' '] двойным [' "" '] и проверьте, что происходит. 'swhere =" [Фамилия] = "" "& sLastName &" "" и [Имя] = "" "& sFirstName &" "" "' –

+0

Maciej Los: Да, это сработало !!! Вау ... Это было так просто ..?! Спасибо миллион ... –

ответ

1

Это очень хорошо известная проблема. Посмотрите здесь: http://allenbrowne.com/casu-17.html

Попробуйте заменить одиночный ['] на двойной [""] и проверьте, что произойдет.

swhere = "[Last Name]=""" & sLastName & """ and [First Name]=""" & sFirstName & """" 
Смежные вопросы