введите описание изображения здесь
Мне нужна ваша помощь в создании формы для нескольких полей поиска в MS Access. Моя форма содержит 10 полей, в которые пользователи могут вводить данные для получения результатов поиска в разделенной форме. Предполагаемый пользователь может ввести параметры поиска в одно или несколько полей для получения результатов (например, поставщик, состояние, номер лицензии, параметр даты для даты истечения срока действия лицензии, дата добавления и т. Д.). У меня сейчас проблемы с VB и я попал в кирпичную стену.
Если ни одно из полей поиска не используется, я хочу, чтобы все результаты отображались.
Если в каком-либо из полей поиска есть критерии поиска, я хочу, чтобы результаты отображали любой из критериев в полях поиска (например, поиск поставщика «Amazon» и поиск по штату «FL». Я хочу, чтобы результаты вернуть все записи в таблице для Amazon и записи с FL в качестве состояния, а не записи Amazon и FL, а любые записи в таблице, которые имеют Amazon или FL).
Ниже приведена кодировка VB, которую я имею:
Sub Search()
Dim tempCriteriaForReport As TempVar
Dim strSearch, strCriteria, strLicenseType, SearchDateRange As String
Dim strVendor, strState, strDrugManufacturer, strDeviceManufacturer, strFederalDrugIdentifier, strCommentsFKA, strLicenseNumber, strExpirationDate, strDateAdded As String
Dim task As String
Dim varItem As Variant
'''=========== code for VENDOR
If Not IsNull(Me.txtVENDOR) Then
strVendor = "([Vendor] like ""*" & Me.txtVENDOR & "*"")"
strCriteria = strCriteria & " And (" & strVendor & ")"
End If
'''=========== code for STATE
If Not IsNull(Me.txtSTATE) Then
strState = "([State] like ""*" & Me.txtSTATE & "*"")"
strCriteria = strCriteria & " And (" & strState & ")"
End If
'''=========== code for DRUG MANFACTURER
If Not IsNull(Me.txtDRUGMANUFACTURER) Then
strDrugManufacturer = "([Is Vendor a Drug Manufacturer] like ""*" & Me.txtDRUGMANUFACTURER & "*"")"
strCriteria = strCriteria & " And (" & strDrugManufacturer & ")"
End If
'''=========== code for DEVICE MANFACTURER
If Not IsNull(Me.txtDEVICEMANUFACTURER) Then
strDeviceManufacturer = "([Is Vendor a Device Manufacturer] like ""*" & Me.txtDEVICEMANUFACTURER & "*"")"
strCriteria = strCriteria & " And (" & strDeviceManufacturer & ")"
End If
'''=========== code for FEDERAL DRUG IDENTIFIER
If Not IsNull(Me.txtFEDERALDRUGIDENTIFIER) Then
strFederalDrugIdentifier = "([Federal Drug Facility Establishment Identifier] like ""*" & Me.txtFEDERALDRUGIDENTIFIER & "*"")"
strCriteria = strCriteria & " And (" & strFederalDrugIdentifier & ")"
End If
'''=========== code for LICENSE NUMBER
If Not IsNull(Me.txtLICENSENUMBER) Then
strLicenseNumber = "([License Number] like ""*" & Me.txtLICENSENUMBER & "*"")"
strCriteria = strCriteria & " And (" & strLicenseNumber & ")"
End If
'''=========== code for LICENSE TYPE
If Not IsNull(Me.txtLICENSETYPE) Then
strLicenseNumber = "([License Type] like ""*" & Me.txtLICENSETYPE & "*"")"
strCriteria = strCriteria & " And (" & strLicenseType & ")"
End If
'''=========== code for LICENSE EXPIRATION DATE range
If Not IsNull(Me.txtEXPIRATIONDATEFROM) And Not IsNull(Me.txtEXPIRATIONDATETO) Then
SearchDateRange = "([Expiration Date] >= #" & Me.txtEXPIRATIONDATEFROM & "# and [Expiration Date] <= #" & Me.txtEXPIRATIONDATETO & "#)"
strCriteria = strCriteria & " And (" & SearchDateRange & ")"
End If
'''=========== code for DATE ADDED range
If Not IsNull(Me.txtDATEADDEDFROM) And Not IsNull(Me.txtDATEADDEDTO) Then
SearchDateRange = "([Date Added] >= #" & Me.txtDATEADDEDFROM & "# and [Date Added] <= #" & Me.txtDATEADDEDTO & "#)"
strCriteria = strCriteria & " And (" & SearchDateRange & ")"
End If
End Sub