Avatar billede dane022 Seniormester
20. februar 2005 - 21:25 Der er 7 kommentarer og
1 løsning

Hjælp til kombinationssøgning

I min formular, kunne jeg godt tænke mig at lave en kombinationssøgning på felterne cpr nummer og fornavn.
Koden ser indtil videre sådan ud og fungerer også fint, hvis både cpr nummer og fornavn udfyldes i søgeformularen.

DoCmd.OpenForm "log", acWindowNormal, , "[tbllog]![cpr nummer]= '" & Me!Cpr & "' And [tbllog]![fornavn]= '" & Me!fornavn & "'"
DoCmd.Close acForm, "log søgning"

Men jeg ønsker at det skal være sådan at jeg kan efterlade en af felterne blanke, så der kun søges på det ene udfyldte søgekriterie. Det må gerne være sådan at felterne er med fritekst, dvs. jokertegn både før og efter det indsatte søgekriterie.
Avatar billede mugs Novice
20. februar 2005 - 21:27 #1
Har du set nærmere på thomasjepsen's meget funktionelle eksempel på hjemmesiden makeiteasy?
20. februar 2005 - 21:28 #2
Avatar billede mugs Novice
20. februar 2005 - 21:28 #3
Avatar billede mugs Novice
20. februar 2005 - 21:29 #4
Nåh ja - Mester er på nettet ;o)
20. februar 2005 - 21:35 #5
I dette tilfælde kan du dog nøjes med denne kode:

    Dim SQLStr As String
   
    If Me!Cpr <> "" Then
        SQLStr = SQLStr & "[cpr nummer] = '" & Me!CPR & "' And "
    End If
    If Me!Fornavn <> "" Then
        SQLStr = SQLStr & "[Fornavn] = '" & Me!Fornavn & "' And "
    End If
    If len(SQLStr) = 0 Then
        DoCmd.OpenForm "log"
    else
        SQLStr = Left(SQLStr, Len(SQLStr) - 5)
        DoCmd.OpenForm "log",,,SQLStr
    End If
Avatar billede dane022 Seniormester
20. februar 2005 - 22:02 #6
Jeg har set databasen på siden du nævner mugs, og jeg benytter også løsningen i en anden database og det fungerer rigtig godt. Den er dog ikke så god i den her situation.
Det sidste eksempel virker, men dog ikke så der kan søges på fritekst. Det skal være med jokertegn i koden, både foran og bagved teksten
20. februar 2005 - 22:08 #7
Dim SQLStr As String
   
    If Me!Cpr <> "" Then
        SQLStr = SQLStr & "[cpr nummer] Like '*" & Me!CPR & "*' And "
    End If
    If Me!Fornavn <> "" Then
        SQLStr = SQLStr & "[Fornavn] Like '*" & Me!Fornavn & "*' And "
    End If
    If len(SQLStr) = 0 Then
        DoCmd.OpenForm "log"
    else
        SQLStr = Left(SQLStr, Len(SQLStr) - 5)
        DoCmd.OpenForm "log",,,SQLStr
    End If
20. februar 2005 - 22:09 #8
Men rent faktisk, så kunne det også løses med denne, når du alligevel vil have jokertegn på begge felter;

DoCmd.OpenForm "log", acWindowNormal, , "[tbllog]![cpr nummer]Like '*" & Me!Cpr & "*' And [tbllog]![fornavn]Like '*" & Me!fornavn & "*'"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester