я следующая функция используется для проверки моего текстового поля, и если она содержит несколько слов, он будет отображаться эквивалентными словами из справочной таблицы с именем «joinlookupall»функции для поиска текстового поля в доступе 2007
Function speclook(ByVal Text)
If IsNull(Text) Then
speclook = Null
Exit Function
End If
Dim Data As LookupData
Static joinlookupall As VBA.Collection
If joinlookupall Is Nothing Then
Set joinlookupall = New VBA.Collection
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("joinlookupall", dbOpenForwardOnly)
While Not rs.EOF
Set Data = New LookupData
If IsNull(rs(1)) Then
'do nothing
Else
Data.Key = "*" + rs(1) + "*"
End If
If IsNull(rs(2)) Then
'do nothing
Else
Data.value = rs(2)
End If
joinlookupall.Add Data
rs.MoveNext
Wend
End If
Dim S As String
For Each Data In joinlookupall
If Text Like Data.Key Then
If Len(S) = 0 Then
S = Data.value
Else
S = S + "," + Data.value
End If
End If
Next
If Len(S) = 0 Then speclook = Null Else speclook = S
End Function
мой текст - это объявление о работе, которое содержит некоторые позиции, необходимые для работы, что-то вроде «компания ищет инженера-электрика ......», функция проверяет объявление о работе, чтобы узнать, что является необходимой карьерой для показать подходящий отдел из справочной таблицы
words (rs(1)) | department (rs(2))
-------------------------------------------------
electrical engineer | electric-dep
electrical engineering | electric-dep
mechanical engineers | mechanic-dep
, так и в предыдущем примере функция будет отображаться «электрический-DEP»
моя проблема с этой функцией является то, что она всегда проверять мой текст только с одним шаблоном, который
Data.Key = "*" + rs(1) + "*"
я хочу использовать многие шаблоны, чтобы проверить мой текст с ним что-то вроде:
Data.Key = rs(1) + "*"
Data.Key = "*" + rs(1)
Data.Key = "*" + chr(32) + rs(1) + chr(32) + "*"
так, если любой из этих шаблонов существует функция будет работать правильно, потому что теперь он не работает со всеми условиями, а иногда существуют слова, но не могу видеть его потому что он использует только один шаблон или форму
Я попытался использовать переменные для (Data.Key), но это не сработало, я хочу знать правильный способ заставить эти шаблоны работать вместе, если функция найдет что-то из этого, она будет работать и показывать до правильного значения
по пути, чтобы сделать эту работу функции вы должны создать модуль класса с именем «LookupData» и поместите следующий код в нем
Public Key As String
Public value As String