Private Sub Command6_Click()
Dim strSQL As String
Dim strOrder As String
Dim strWhere As String
Dim strWhereOne As String
Dim strWhereTwo As String
Dim strWhereText As String
Dim strWhereTextTwo As String
Dim dbNm As Database
Dim qryDef As QueryDef
Dim strSQLChoice As String
Set dbNm = CurrentDb()
strOrder = "ORDER BY DetailsOfRequest.Titleofchapterjournalarticle;"
strWhere = "WHERE"
strWhereText = "WHERE"
strWhereTextTwo = " AND"
' Pick the strSQL based on if the TxtComboSearch box is null
' and then if it isn't null, then based on the selection made in
' the fraSearchOpt frame (All Words, Any Word, Exact Phrase)
If IsNull(TxtComboSearch) Then
strSQLChoice = "One"
strSQL = "SELECT DetailsOfRequest.Titleofchapterjournalarticle, DetailsOfRequest.TitleText, DetailsOfRequest.ID, DetailsOfRequest.LRAccessCode, DetailsOfRequest.ISBN_ISSN" & " FROM DetailsOfRequest"
Else
strSQLChoice = "Two"
Select Case fraSearchOpt
Case 1 'All Words
strSQL = "SELECT DetailsOfRequest.Titleofchapterjournalarticle, DetailsOfRequest.TitleText, DetailsOfRequest.ID, DetailsOfRequest.LRAccessCode, DetailsOfRequest.ISBN_ISSN, IIf(IsNull([LRAccessCode]),False,AllWordsExist([LRAccessCode],[Forms]![frmFirstSearch]![txtComboSearch])) AS Expr1, IIf(IsNull([ISBN_ISSN]),False,AllWordsExist([ISBN_ISSN],[Forms]![frmFirstSearch]![txtComboSearch])) AS Expr2" & " FROM DetailsOfRequest"
strWhereOne = " (((IIf(IsNull([LRAccessCode]),False,AllWordsExist([LRAccessCode],[Forms]![frmFirstSearch]![txtComboSearch])))=True))"
strWhereTwo = " OR (((IIf(IsNull([ISBN_ISSN]),False,AllWordsExist([ISBN_ISSN],[Forms]![frmFirstSearch]![txtComboSearch])))=True))"
Case 2 'Any Word
strSQL = "SELECT DetailsOfRequest.Titleofchapterjournalarticle, DetailsOfRequest.TitleText, DetailsOfRequest.ID, DetailsOfRequest.LRAccessCode, DetailsOfRequest.ISBN_ISSN, IIf(IsNull([LRAccessCode]),False,AnyWordExists([LRAccessCode],[Forms]![frmFirstSearch]![txtComboSearch])) AS Expr1, IIf(IsNull([ISBN_ISSN]),False,AnyWordExists([ISBN_ISSN],[Forms]![frmFirstSearch]![txtComboSearch])) AS Expr2" & " FROM DetailsOfRequest"
strWhereOne = " (((IIf(IsNull([LRAccessCode]),False,AnyWordExists([LRAccessCode],[Forms]![frmFirstSearch]![txtComboSearch])))=True))"
strWhereTwo = " OR (((IIf(IsNull([ISBN_ISSN]),False,AnyWordExists([ISBN_ISSN],[Forms]![frmFirstSearch]![txtComboSearch])))=True))"
Case 3 'Exact Phrase
strSQL = "SELECT DetailsOfRequest.Titleofchapterjournalarticle, DetailsOfRequest.TitleText, DetailsOfRequest.ID, DetailsOfRequest.LRAccessCode, DetailsOfRequest.ISBN_ISSN, IIf(IsNull([LRAccessCode]),False,ExactPhraseExists([LRAccessCode],[Forms]![frmFirstSearch]![txtComboSearch])) AS Expr1, IIf(IsNull([ISBN_ISSN]),False,ExactPhraseExists([ISBN_ISSN],[Forms]![frmFirstSearch]![txtComboSearch])) AS Expr2" & " FROM DetailsOfRequest"
strWhereOne = " (((IIf(IsNull([LRAccessCode]),False,ExactPhraseExists([LRAccessCode],[Forms]![frmFirstSearch]![txtComboSearch])))=True))"
strWhereTwo = " OR (((IIf(IsNull([ISBN_ISSN]),False,ExactPhraseExists([ISBN_ISSN],[Forms]![frmFirstSearch]![txtComboSearch])))=True))"
End Select
End If
If Not IsNull(Me.txtboxField1) Then
strWhereText = strWhereText & " (DetailsOfRequest.TitleText) like '*" & Me.txtboxField1 & "*' AND"
strWhereTextTwo = strWhereTextTwo & " (DetailsOfRequest.TitleText) like '*" & Me.txtboxField1 & "*' AND"
End If
If Not IsNull(Me.txtboxField2) Then
strWhereText = strWhereText & " (DetailsOfRequest.Titleofchapterjournalarticle) like '*" & Me.txtboxField2 & "*' AND"
strWhereTextTwo = strWhereTextTwo & " (DetailsOfRequest.Titleofchapterjournalarticle) like '*" & Me.txtboxField2 & "*' AND"
End If
'Remove last AND from the SQL statement
strWhereText = Mid(strWhereText, 1, Len(strWhereText) - 5)
strWhereTextTwo = Mid(strWhereTextTwo, 1, Len(strWhereTextTwo) - 5)
'Put Search String Together
If strSQLChoice = "One" Then
Set qryDef = dbNm.QueryDefs("sqrySearch")
qryDef.SQL = strSQL & " " & strWhereText & " " & strOrder
ElseIf strSQLChoice = "Two" Then
Set qryDef = dbNm.QueryDefs("sqrySearch")
qryDef.SQL = strSQL & " " & strWhere & strWhereOne & strWhereTextTwo & strWhereTwo & strWhereTextTwo & " " & strOrder
Else
MsgBox "There is an error"
End If
DoCmd.OpenForm "sqrysearch", acViewNormal
End Sub