webForumDet fria alternativet
Logga in / Bli medlem

Sök anställd

Databaser & SQL

5 svar · 293 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Trådstart#1
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.

Medlem sedan dec. 19996 522 inlägg
#2

Bygg ihop hela namnet i din fråga med
Select bla,bla,bla, firstname+' '+surname as UsrName Where UsrName LIKE '" & strString "'

Medlem sedan dec. 200012 464 inlägg
#3
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.

Medlem sedan dec. 20003 887 inlägg
#4

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 ;))

Medlem sedan apr. 20012 427 inlägg
#5

Tack för hjälpen allihop! Jag kör på LarsGs kod eftersom den aldrig svikit mig tidigare. :)

Medlem sedan dec. 20003 887 inlägg
#6

Din attan ;)

268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)