11. august 2005 - 10:16Der er
13 kommentarer og 1 løsning
Åbne formular med unik postID fra en formular med samme postID
Hej, En søgning på eksperten gav mig ikke svar på følgende. Nogen der kan hjælpe?
Jeg har en formular med et felt med ID (og andet). På denne formular ønsker jeg at åbne en anden formular (baseret på en forespørgsel) som som har samme ID. ID fremgår af qry til den nye formular.
Hej ThomasJepsen, Det var jo genialt. Blot er der opstået et tillægsproblem nu. Den angive postID kan referere til flere tabeller i forespørgslen. Jeg har også prøvet med tabel!postID og lige meget hjælper det. Forespørgslen henter informationer fra 15 tabeller som alle sammenligner med postID. Har du et forslag til løsning af dette?
Underligt nok virker det fint hvis jeg i kriteriet i forespørgslen skriver like [indtast PostID] i tabel.postID feltet. Jeg ville blot gerne ungå at indtaste et postID nummer som allerede er på den form jeg står på.
Hej, "Den angive postID kan referere til flere tabeller i forespørgslen" betyder det at du har flere tabeller hvor feltnavnet PostID indgår, har du mere end et PostID felt på formen, hvis dette er tilfæledet kan du ændre navnet (Name)på det aktuelle PostIDfelt på formen, og bruge det i i den kode som Thomas forslår
Jeg har kun en tabel med postnavnet PostID. Jeg skrev den direkte fejlmeddelses fra access og nu du spørger, så må den være forkert. Det skyldes at forespørgslen er baseret på 15 forespørgsler og en tabel. Så der burde måske stå "...referere til flere forespørgsler eller tabeller.."
I alle de 15 forespørgsler hentes PostID når et andet kriterium er opfyldt.
Okay,for at koden fra Thomas skal virke skal PostID feltet være på begge forms, for at kritereie kan opfyldes, hvis det er tilfældet burde koden virke, nednestående et eks. på hvordan jeg selv benytter noget af det samme:
På en fortløbende form med et x antal felter, et af disse felter er PostID
I bunden af formen er der et knap, på denne knap skriver jeg under hændelse ved klik:
Dim vPostID As string vPostID = Me!PostID Docmd.OpenForm "Navnpåform",,,"PostID = " & vPostID
Koden er magen til den Thomas skriver, jeg erklærer blot en variable "vPostID" Ingår feltet PostID på begge forms burdet det altså virke :o)
Hej AAndersen, Tak for din tid. Jeg er sikker på at koden virker generelt. Mit problem er blot, at forespørgslen som den nyåbnede formular baseres på - er lavet ved at hente data fra en masse andre forespørgsler som alle har denne postID tilfælles. I SQL sætningens FROM section er der derfor en hel del postID'er. Hver qry sender en postID tilbage hvis post_CAS_NR findes i en given tabel.
Som fx FROM (((((((((((((((PostTabel LEFT JOIN [Forespørgsel_1] ON PostTabel.PostID = [Forespørgsel_1].PostID) LEFT JOIN [Forespørgsel_2] ON PostTabel.PostID = [Forespørgsel_2].PostID) LEFT JOIN Forespørgsel_X ON PostTabel.PostID = Forespørgsel_X.PostID) LEFT JOIN )osv) osv)...
Og så bliver Access forvirret. Det mærklige er at det virker fint hvis jeg laver en like [indtast PostID] i forespørgslen som den nyåbnede formular er baseret på.
Hmm, svært at sige hvad der skal gøres her, jeg er desværre ikke så skrap i SQL syntaxer, men er er den nye forms postkilde baseret på en gemt forspørgsel hvor postid indgår som et selected felt fra en anden forspørgsel skulle det virke.
Prøv evt at chekke feltet PostID,s egenskaber, du skal sikere at navnet på feltet PostID på begge forms er navngivet PostID, du finder egenskaben ved at markere feltet i designvisning, og derefter klikke på Egenskaber, aktiver fanebladet andre, er på vej hjemover nu, men er online senere i aften.
Virker den her ikke? docmd.Openform "Din formular",,,"PostTabel.PostID = " & Me!PostID Du siger også, at Like virker. Er PostID en tekst? I så fald: docmd.Openform "Din formular",,,"PostTabel.PostID = '" & Me!PostID & "'"
AAndersen: Tak for hjælpen. Det hjalp. Post ide var posttabel.postID i den ene og kun postID i det andet. Jeg lavede så en ny kolonne i den underliggende forespørgsel med en ny variabel: ID: posttabel.postID
Jeg fortsatte så med: Navnpåform",,,"[ID] = " & vPostID
Mange tak! Velfortjente 30 point til dig. Lav lige en "svar" så jeg kan give dig point.
FDATA: Nej det er ikke det der er problemet - men tak.
Hej, glad for at du fik det til at virke, thomasjepsen giver det korrekte svar 11/08-2005 10:32:02, så point skal gå til ham, mine indlæg var blot ledende kommentarer :o)
Nu er jeg bare nysgerrig ;o) Hvis ID = posttabel.postID og vPostID = Me!PostID er din løsning da nøjagtig det samme som docmd.Openform "Din formular",,,"PostTabel.PostID = " & Me!PostID som jeg foreslog (og som Thomas foreslog - bortset fra "PostTabel.", som var uklart på det tidspunkt). Virker det virkelig ikke?
Hej Fdata, Ja, det virker mærkeligt at man skal snyde Access på den måde. Men det virkede altså ikke uden denne afledningsmanøvre. Der var flere referencer til PostID og det måtte man ikke. At sætte PostID=ID i forespørgslen gjorde udfaldet. VH Johannes
Besynderligt!?! "PostTabel.PostID" udpeger jo entydigt hvilken PostID, det drejer sig om. Vi lægger den i bunken sammen med alle de andre mysterier ;o)
Synes godt om
Ny brugerNybegynder
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.