Avatar billede gummimand Nybegynder
18. juni 2008 - 07:28 Der er 21 kommentarer og
2 løsninger

Variable - hvordan overføres de

Vi bruger access som klient op imod en ms sql database.

Jeg skal lave et kviksøgefelt(formen KvikSøg), hvor man skal kunne søge på fornavn og/eller efternavn eller medarbejdernummer.

KvikSøg kalder formen Medarbejdere, der bliver fyldt op med data fra ms sql databasen.

Mit problem er hvordan overfører jeg de tre variabler der indeholder Fornavn, Efternavn og nummer, først fra KvikSøg til Medarbejdere, siden til databasen?

Jeg plejer at bruge php og mysql, men nu skal det altså være accsess og mssql.

Jo - det er det første jeg laver i Access/VB ...
Avatar billede Slettet bruger
18. juni 2008 - 08:20 #1
Din postkilde til medarbejderformen, skal være en forespørgsel... I denne laver du kriterier, f.eks. under fornavn:

forms!kviksøg!fornavn

og så fremdeles!~)
Avatar billede terry Ekspert
18. juni 2008 - 09:39 #2
Take a look at Thomas's examples
http://www.makeiteasy.dk/Home.asp?ContentID=30&MenuItemID=42

There is one "Filter og søgefunktion" which you should be able to use.
Avatar billede Slettet bruger
18. juni 2008 - 10:12 #3
ja, det er et godt redskab, du skal lige sætte det op korrekt, såeh... På med vanten?~)

Men jeg kom lige til at se noget... du vil ikke altid udfylde alle 3 søgefelter, men hvis du ikke gør det, så vil du ikke få noget resultat (i forbindelse med mit tidligere svar).

Derfor skal dine kriterier se ud som følger:

like "*" & forms!kviksøg!fornavn & "*"

så virker det faktisk også som fritekst søgninger, hvilket ofte er en fordel!~)
Avatar billede Slettet bruger
18. juni 2008 - 10:15 #4
noget andet er at du burde have det i samme formular, både søgefelter og resultater. Så ligger du bare flg. kode på EfterOpdaterings hændelsen på dine søgefelter:

me.requery

Så vil søgesættet opdateres hvergang du ændrer i et søgefelt!~)

Det vil blive mere dynamisk og så begynder det at minde om en simpel udgave af den "Filter og søgefunktion", som terry nævner...
Avatar billede gummimand Nybegynder
18. juni 2008 - 11:45 #5
-> spq

forms!kviksøg!fornavn formattet virke fint, men jeg får en fejl når der ikke er skrvet noget i tekstfeltet.

Jeg vil helst skulle søge i databasen med noget der ligner:
SELECT * FROM medarbejderdate WHERE fornavne = @fornavne OR efternavn = @efternavn OR nummer = @MedarbejderNummer

Men måske bliver jeg nød til at splitte søgningen op i to, da det ikke er logisk at søge på et nummer og et fornavn, idet nummeret burde være unikt.
Avatar billede Slettet bruger
18. juni 2008 - 12:30 #6
Har du prøve med

like "*" & forms!kviksøg!fornavn & "*"

nu er det selvfølgelig ms sql, så måske er det mere henad:

like '%' & forms!kviksøg!fornavn & '%'
Avatar billede Slettet bruger
18. juni 2008 - 12:31 #7
Det gode med de sidste kriterier er netop, at de kan være tomme, for så vil der bare blive søgt på 2 jokere, dvs. alt!~)
Avatar billede gummimand Nybegynder
18. juni 2008 - 14:37 #8
Jeg er altså glad for i gider hjælpe mig, men nu siger chefen, at der skal filtreres på klientniveau!!?

Jeg henter altså Medarbejder formen med alle medarbejdere i således:
DoCmd.OpenForm "Medarbejder", , , , , , "Alle"

Bagefter viser jeg kun dem jeg vil bruge sådan:
DoCmd.OpenForm "Medarbejder", , ,"Efternavn = 'Hansen'" , , , "Alle"

Ovenstående virker, men kan kun finde Hansen'er

Så to ting:

1) Hvordan undgår jeg at Formen Medarbedere først klimtvis vises med alle medarbejdere i?

2) Gør funktionen lidt mere brugbar, så man kan søge på alle efternavne;
Efternavn = KvikMenuKvikSøgEfternavnTekst.value
DoCmd.OpenForm "Medarbejder", , ,"Efternavn = Efternavn" , , , "Alle"
- virker nemlig ikke (som jeg ville have forventet)!!?
Avatar billede mugs Novice
18. juni 2008 - 15:09 #9
Se terry's svar. Det er en fremragende funktion Thomas Jepsen har konstrueret.
Avatar billede terry Ekspert
18. juni 2008 - 15:59 #10
if you want I can send a simple example which dynamically changes the forms filter property depending on what is selected from combo boxes/text fields used for entering search critera
Avatar billede mugs Novice
18. juni 2008 - 16:16 #11
Du kan overføre et søgekriterie fra den aktuelle post i en formular, og finde den samme post i en anden formular således:

DoCmd.OpenForm "Form2"
Forms!Form2!Efternavn.SetFocus
DoCmd.FindRecord Me!Efternavn
Avatar billede gummimand Nybegynder
19. juni 2008 - 17:22 #12
Jeg vil lige samle op på mine spørgsmål og svar:
Sp1) Overførsel af variableværdier fra form til form
Svar1)forms!kviksøg!fornavn

Sp2)Hvordan gøres denne dynamisk:DoCmd.OpenForm "Medarbejder", , ,"Efternavn = 'Hansen'" , , , "Alle"

Svar2) DoCmd.OpenForm "Medarbejder", , , "Efternavn LIKE '" & Efternavn & "'", , , "Alle"
Hvor Efternavn = KvikMenuEfternavnTekst.value

Sp3) Hvordan gøres en form synlig / usynlig.
Svar3) mangler
Avatar billede mugs Novice
19. juni 2008 - 17:46 #13
"Sp3) Hvordan gøres en form synlig / usynlig."

Hvad mener du? Kan du ikke bare lukke den?
Avatar billede gummimand Nybegynder
19. juni 2008 - 17:53 #14
Nej - jeg gør først det at jeg henter formen fyldt med alle medarbejder, og først derefter kan jeg filtrer dem fra jeg ikke ønsker at se:

DoCmd.OpenForm "Medarbejder", , , , , , "Alle"
DoCmd.OpenForm "Medarbejder", , , "Efternavn LIKE '" & Efternavn & "'", , , "Alle"

Men den der bruger databasen for først et glimt af formen med alle medarbejdere i, inden der bliver filtreret. Det ville jeg gerne undgå, men kan ikke lige se hvordan.
Avatar billede mugs Novice
19. juni 2008 - 18:00 #15
Det tror jeg ikke du kan undgå.
Du har jo 2 kommandoer:

Først udføres den ene og du ser alle medarbejdere.
Derefter filtrerer du og ser resultatet.

Men med min kose 18/6 16:16:22 bør du kun se de poster der matcher kriteriet.
Avatar billede terry Ekspert
19. juni 2008 - 18:23 #16
18/06-2008 15:59:14
just place an email address
Avatar billede gummimand Nybegynder
19. juni 2008 - 18:26 #17
Jeg kan ikke få dette til at virke:

DoCmd.OpenForm "Medarbejder"Forms!Medarbejder!Efternavn.SetFocus DoCmd.FindRecord Me!Efternavn

Får syntax error.
Avatar billede gummimand Nybegynder
19. juni 2008 - 18:40 #18
-> terry

no1214518@hotmail.com
Avatar billede mugs Novice
19. juni 2008 - 18:50 #19
DoCmd.OpenForm "Medarbejder"
Forms!Medarbejder!Efternavn.SetFocus
DoCmd.FindRecord Me!Efternavn
Avatar billede gummimand Nybegynder
19. juni 2008 - 20:21 #20
-> mugs

Jeg får nu fejlen: Run-time error '438'
Object doesn't support this property or method
Avatar billede mugs Novice
19. juni 2008 - 20:30 #21
Hmm - Jeg ved ikke hvad der kan væe galt. Koden er afprøvet i en tstdb og fungerer upåklageligt. Har du kontrolleret for stavefejl?
Avatar billede gummimand Nybegynder
19. juni 2008 - 20:54 #22
->

Nej jeg giver op - ingen stavefejl - ingen forklaring.

Chefen har sagt jeg bare skal slamkode, så må han også finde sig i lidt skønhedsfejl. Det er trods alt nu muligt at søge, som det var ønsket.

Tak for jeres hjælp.
Avatar billede terry Ekspert
19. juni 2008 - 21:01 #23
selv tak, example sent
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