11. april 2005 - 13:51Der er
18 kommentarer og 1 løsning
liste i access dynamiske
Hej til alle. Jeg har en Form som indholder en masse knapper, efter at have trykket på en af knapperne kommer jeg til en form: Form_G som indholder en liste. denne liste læser fra en sql som er sat op i egenskaber for listen.
men det er sådan at jeg gerne vil have at det her sql skal være forskellige alt efter hvilke knap jeg trykker på !
Forøvrigt er svaret fra thomasjepsen det korrekte, da mit bud forudsætter at du hele tiden er på samme form, detter jo efter nærlæsning af spørgsmålet ikke tilfældet.
Form 1 har en knap som hedder "ny" Form 1 har også en knap som hedder "se"
begge disse knapper referere til en form som hedder bil . denne har en masse knapper alt efter hvilke knap vi trykker på har fået styr på hvilke sql der skal bruges .
men i tildfælde at man i første form trykker på "ny" istedet for "se" skal den sætte forms![underform_bil]![ID] = forms![underform_bil]![ID] + 1 dvs en ny ID fordi vi oprette en ny. det med autonr kan jeg alligevel ikke bruge
form 1: Form 1 har en knap som hedder "ny" Form 1 har også en knap som hedder "se"
begge disse knapper referere til en form som hedder bil .
form 2:
denne har en masse knapper alt efter hvilke knap vi trykker på har vi fået styr på hvilke sql der skal bruges .
men i tildfælde at man i første form trykker på "ny" istedet for "se" (i form 1)
form 3:
skal den sætte i form3: forms![underform_bil]![ID] = forms![underform_bil]![ID] + 1 dvs en ny ID fordi vi oprette en ny. det med autonr kan jeg alligevel ikke bruge
hmm, jeg tror måske, at det er bedre at bruge Openargs. openargs er en parameter, som kan "bæres" med fra formular til formular:
docmd.OpenForm "Form2",,,,,,"Værdi"
På Form2 kan du så referere til denne værdi med udtrykket: Me.Openargs
Dvs når du åbner form3, kan du gøre det således:
docmd.OpenForm "Form3",,,,,,Me.Openargs
Derved VED du hvilken værdi (knap) som blev overført fra første formular.
Mht listboksen, så ville jeg nok også lave det om (hvis du ikke har brugt for meget tid på det), således at du på listboksens formular lagde denne kode på Form_Load (ved indlæsning):
Select case Me.Openargs Case "værdi1" Me!DinListboks.rowsource = "Select...." Case "værdi2" Me!DinListboks.rowsource = "Select...." Case "værdi3" Me!DinListboks.rowsource = "Select...." '... case else '... end select
Og på hver knap lægger du så bare denne ene sætning:
jeg har tilpasset min ting så den ligner det der. når man går fra form 2 til form3, så sender jeg faktisk værdien for casen med og sql virker.(docmd.OpenForm "Form2",,,,,,"Værdi")
og når jeg går fra 1eren til 2eren (i tilfælde det er knappen "ny" så sender jeg værdien "ny" med.
men den her ny hvordan skal jeg sende den med til 3 eren når jeg i forvejen sender et andet værdi med (case værdi) ?
tja, det er lidt svært for mig at gennemskue din opsætning. Derfor forsøgte jeg bare at vejlede generelt.
Men hvis du skal overføre mere end én værdi mellem formularene kunne du evt erklære en public variabel (i et modul) som så blev sat på den ene formular og derefter kunne aflæses igen på den anden.
Når det drejer sig om oprettelse af poster, så kunne du måske blot spørge på om posten er en ny post. dette gøres med:
hvis vi står i 2 to eren har vi Me.OpenArgs = "ny" men da vi fra 2 eren sender en anden værdi kan vi ikke rigtigt sende denne værdi med til form3 og problemmet ligger afsendelsen af den
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.