Hej! Du kan få med de tomma fälten genom att göra så här Det vill inte. Gör likadant med jag får det inte o fungera Lägg bar till det vilkor du använder i din SQL fråga: funkar bra när jag inte skriver in något i fälten. Då visar den alla . även dom som saknar födelseår. vilket då? Kopiera sqlsatsen. Kan du göra enkelt med denna koden.SQL sats
Satsen nedan fungerar perfekt... nästan
Den söker fram rätt poster , men den kräver att det finns någonting inskrivet i alla fält.
Alltså om post 25 i databasen saknar mobilnummer så visar den inte .
den verkar skilja på tom och ""
Hjälp någon!
Private Function advsok()
Dim fornamnb As String
Dim efternamnb As String
Dim fodelsearb As String
Dim yrkeb As String
Dim gatuadressb As String
Dim postnrb As String
Dim postortb As String
Dim hemtelefonb As String
Dim mobiltelefonb As String
Dim ovrigtelefonb As String
Dim korkortb As String
Dim biltillgangb As String
Dim arbetssituationb As String
Dim utbildningarb As String
Dim epostb As String
Dim nationalitetb As String
Dim periodkodb As String
Dim lonb As String
Dim avtaladlonb As String
Dim ansokningsbrevb As String
Dim arbetstidonskadb As String
Dim anstallningsnummerb As String
Dim ledigfranb As String
Dim zonb As String
'sätt var
fornamnb = "%" + fornamna + "%"
efternamnb = "%" + efternamna + "%"
fodelsearb = "%" + fodelseara + "%"
yrkeb = "%" + yrkea + "%"
gatuadressb = "%" + gatuadressa + "%"
postnrb = "%" + postnra + "%"
postortb = "%" + postorta + "%"
hemtelefonb = "%" + hemtelefona + "%"
mobiltelefonb = "%" + mobiltelefona + "%"
ovrigtelefonb = "%" + ovrigtelefona + "%"
korkortb = "%" + korkorta + "%"
biltillgangb = "%" + biltillganga + "%"
arbetssituationb = "%" + arbetssituationa + "%"
utbildningarb = "%" + utbildningara + "%"
epostb = "%" + eposta + "%"
nationalitetb = "%" + nationaliteta + "%"
lonb = "%" + lona + "%"
avtaladlonb = "%" + avtaladlona + "%"
ansokningsbrevb = "%" + ansokningsbreva + "%"
arbetstidonskadb = "%" + arbetstidonskada + "%"
anstallningsnummerb = "%" + anstallningsnra + "%"
ledigfranb = "%" + ledigfrana + "%"
zonb = "%" + zona.Text + "%"
'sökkrit
RDCPER1.SQL = "select personalid, fornamn, efternamn, fodelsear, yrke, hemtelefon, mobiltelefon, ovrigtelefon, gatuadress, postnr, postort, korkort, biltillgang, arbetssituation, utbildningar, epost, narmasteanhorig, skattekort, nationalitet, trygdeetatstart, trygdeetatslut, skattestart, skatteslut, periodkod, lon, avtaladlon, referenser, diet, avtaladdiet, resa, avtaladresa, bildlank, semesterkommentar, ansokningsbrev, arbetstidonskad, anstallningsnummer, ledigfran, zon, svp, nop, rf, inlagd, via from personal WHERE fornamn LIKE '" & fornamnb & _
"'AND efternamn LIKE '" & efternamnb & "' AND efternamn LIKE '" & efternamnb & "' AND fodelsear LIKE '" & _
fodelsearb & "' AND yrke LIKE '" & yrkeb & "' AND gatuadress LIKE '" & _
gatuadressb & "' AND postnr LIKE '" & postnrb & "' AND postort LIKE '" & _
postortb & "' AND hemtelefon LIKE '" & hemtelefonb & _
"' AND mobiltelefon LIKE '" & mobiltelefonb & _
"' AND ovrigtelefon LIKE '" & ovrigtelefonb & _
"' AND korkort LIKE '" & korkortb & "' AND biltillgang LIKE '" & _
biltillgangb & "' AND arbetssituation LIKE '" & arbetssituationb & _
"' AND utbildningar LIKE '" & utbildningarb & "' AND epost LIKE '" & _
epostb & "' AND nationalitet LIKE '" & nationalitetb & _
"' AND lon LIKE '" & _
lonb & "' AND avtaladlon LIKE '" & avtaladlonb & _
"' AND ansokningsbrev LIKE '" & ansokningsbrevb & _
"' AND zon LIKE '" & zonb & _
"' AND arbetstidonskad LIKE '" & arbetstidonskadb & _
"' AND anstallningsnummer LIKE '" & anstallningsnummerb & _
"' "
'AND ledigfran <= '" & ledigfranb & "'"
RDCPER1.Refresh
pergrid.Refresh
End FunctionSv: SQL sats
<code>'AND (efternamn LIKE '" & efternamnb & "' OR IsNull(efternamnb))
</code>
för varje fält där det kan finnas null-värden. Inte alla SQL-dialekter har IsNull-funktionen, men då har de någon annan syntax som gör samma sak.
/JanneSv: SQL sats
Någon som har något annat förslag.
Det jag vill göra är om jag tex har 3 fält
och 5 poster i databasen
1 Erik Johansson 34
2 Joah Svensson
3 Johanna Ek 31
4 Lövqvist 21
5 Johan Nilsson 22
och i förnamnsfältet skriver
"Jo" då vill jag att griden ska visa
post 2,3 och 5 eftersom de innehåller "jo" i förnamnsfältet.
Det gör den idag men den vägrafr visa i detta läge post 2 eftersom den posten inte har någon ålder inskriven
snälla hjälp nånSv: SQL sats
<code>fodelsear</code>
som Stratocaster föreslog om
<code>efternamn</code>Sv: SQL sats
någon som kan lägga in förnamn , fördelseår och efternamn i en sats??
tack på förhandSv: SQL sats
<code>
Sub AppendFilter(ByVal FieldName As String, ByVal Text As String, Where As String)
Dim strTemp As String
strTemp = Trim(Text)
If Len(Text) Then
If Len(Where) Then
Where = Where & " AND [" & FieldName & "] Like ""%" & Text & "%"""
Else
Where = "[" & FieldName & "] Like ""%" & Text & "%"""
End If
End If
End Sub
Private Function advsok()
Dim strSQL As String
Dim strWhere As String
strSQL = "SELECT personalid, fornamn, efternamn, fodelsear, yrke, hemtelefon, mobiltelefon, ovrigtelefon, gatuadress, postnr, postort, korkort, biltillgang, arbetssituation, utbildningar, epost, narmasteanhorig, skattekort, nationalitet, trygdeetatstart, trygdeetatslut, skattestart, skatteslut, periodkod, lon, avtaladlon, referenser, diet, avtaladdiet, resa, avtaladresa, bildlank, semesterkommentar, ansokningsbrev, arbetstidonskad, anstallningsnummer, ledigfran, zon, svp, nop, rf, inlagd, via" & vbCrLf & _
"FROM personal" & vbCrLf
Skapar filet
AppendFilter "fornamn", fornamna, strWhere
AppendFilter "efternamn", efternamna, strWhere
AppendFilter "fodelsear", fodelseara, strWhere
'Osv...
AppendFilter "ledigfran", ledigfrana, strWhere
If Len(strWhere) Then
strSQL = strSQL & "WHERE " & strWhere & vbCrLf
End If
'sökkrit
RDCPER1.SQL = strSQL
RDCPER1.Refresh
pergrid.Refresh
End Function
</code>
Du får på så sätt en effektivare fråga. Sv: SQL sats
men den får felet , To few parametrers , Exepted 1. När jag skriver in något i ett av fälten.
någon som vet vad det kan vara för felSv: SQL sats
jag har sökläst igenom allt..
hittar inga sånna fel... någon som ser något annat?Sv: SQL sats
<code>
Clipboard.Clear
Clipboard.SetText
</code>
Klistra in den i access. Access ger dig namnet på parametern/fältet när du kör frågan.