SkarreMedlem sedan apr. 20012 427 inlägg SELECT * FROM personnel WHERE firstname LIKE '" & strString & "' OR lastname LIKE '" & strString "'"
Ovanstående fungerar utmärkt om man söker på antingen för- eller efternamn, men inte om man t.ex. skriver "Andreas Skarin" eller "Skarin Andreas". Jag tänkte först dela upp strängen och göra en sökning för varje delsträng, men tänkte att man kanske kan fixa detta i SQL-frågan. Jag kör ASP och MS Access.
erkaMedlem sedan dec. 19996 522 inlägg Bygg ihop hela namnet i din fråga med
Select bla,bla,bla, firstname+' '+surname as UsrName Where UsrName LIKE '" & strString "'
LarsGMedlem sedan dec. 200012 464 inlägg q = "SELECT * " & _
"FROM personnel " &_
" WHERE firstname = '" & strString & "'" & _
" OR lastname = '" & strString & "'" & _
" OR firstname & ' ' & lastname = '" & strString & "'" &_
" OR lastname & ' ' & firstname = '" & strString & "'"
Alternativt så kan du ha separata fält för för- och efternamn så vet du vad som är vad.
Engine^Medlem sedan dec. 20003 887 inlägg Antingen så eller så får du testa att göra en Split på söksträngen på mellanslag. Något i stil med:
Dim astrNames() As String
Dim strWhere As String
strWhere = vbNullString
astrNames = Split(strSearch, " ")
For i = 0 To Ubound(astrNames) - 1
strWhere = strWhere & "firstname LIKE '" & astrNames(i) & "' OR lastname LIKE '" & _
astrNames(i) & "' "
If i < Ubound(astrNames) - 1 Then
strWhere = strWhere & "OR "
End If
Next i
strSQL = "SELECT * FROM personnel WHERE " & strWhere & ";"
/r. eller så gör du som LarsG föreslår :) (Hålla på å skriva vettiga svar samtidigt som jag skriver annan typ av svar... sicken en ;))
SkarreMedlem sedan apr. 20012 427 inlägg Tack för hjälpen allihop! Jag kör på LarsGs kod eftersom den aldrig svikit mig tidigare. :)