Avatar billede yuksel Nybegynder
11. april 2005 - 13:51 Der 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å !


er der nogen der har nogle ideer.  ?
11. april 2005 - 13:53 #1
På knapperne kan du lave den sådan:

Docmd.Openform "Form_G"
Forms!Form_G!DinListe.Rowsource = "Select felt1, felt2 From Dintabel Where Felt3 = 'bla bla bla'"
Avatar billede -anders- Juniormester
11. april 2005 - 13:54 #2
På knappen ved klik kan man skrive:
Me!NavnPåDinliste.RowSource = "Her er så din SQL-streng"
Avatar billede -anders- Juniormester
11. april 2005 - 13:55 #3
Hæ, nu skete det igen, næste gang må jeg hellere lave en update før et indlæg :o)
Avatar billede -anders- Juniormester
11. april 2005 - 14:01 #4
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.
11. april 2005 - 14:23 #5
Anders, du må bare se at blive Pro-medlem. Så kan du bl.a. se om der er nye indlæg inden du trykker "Send". :)
Avatar billede yuksel Nybegynder
11. april 2005 - 14:31 #6
hvad nu hvis jeg har 3 forme 

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
Avatar billede yuksel Nybegynder
11. april 2005 - 14:33 #7
nærmere oprisning


hvad nu hvis jeg har 3 forme 

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
Avatar billede yuksel Nybegynder
11. april 2005 - 14:33 #8
dvs vi skal vide på 3 form hvad vi trykkede på 1 form og der skal ske noget mht det
11. april 2005 - 14:40 #9
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:

docmd.OpenForm "Form2",,,,,,"Værdi"
Avatar billede yuksel Nybegynder
11. april 2005 - 14:49 #10
Jeg prøver det lige af
Avatar billede yuksel Nybegynder
11. april 2005 - 15:03 #11
hmmm. det hele virker, men det er sidste .

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)  ?
11. april 2005 - 15:24 #12
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:

If Me.Newrecord then ....

eller

If Forms!Form2.Newrecord then ....

Kan du følge mig?
Avatar billede yuksel Nybegynder
11. april 2005 - 15:34 #13
kan man ikke sende mere end en med her
docmd.OpenForm "Form2",,,,,,"Værdi,Værdi2
11. april 2005 - 15:36 #14
Nej kun én streng.

Du kan selvfølgelig sammensætte en strang at 2 værdier adskilt med et eller andet tegn. Men det vil være besværligt i forhold til de andre metoder.
Avatar billede yuksel Nybegynder
11. april 2005 - 15:42 #15
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
Avatar billede yuksel Nybegynder
11. april 2005 - 15:45 #16
nå men, jeg tror bare jeg vil slåse med det så skal den nok give op ;)
Avatar billede yuksel Nybegynder
11. april 2005 - 15:45 #17
men du skal have tussind tak for hjælpen
11. april 2005 - 15:47 #18
ok, og selv tak....du vender bare tilbage, hvis den stadig driller :o)
Avatar billede yuksel Nybegynder
11. april 2005 - 16:06 #19
ok super :)
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