Avatar billede bruger_pil Nybegynder
26. september 2005 - 14:30 Der er 35 kommentarer og
2 løsninger

form + subform returnere ikke forventet resultat

Hej eksperter,

Jeg har koblet en række "personer" til et "Firma" i et adressekartotek. Eksempel:

På en fortløbende formular har jeg alle mine firmaer, når jeg dobbeltklikker på et firma skal den åbne en ny formular med en underformular der viser de personer der koblet til firmaet, dertil bruger jeg følgende kode:
    stDocName = "formular"
    stLinkCriteria = "[ID]=" & Me![ID]
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Det virker kun hvis der er koblet personer til firmaet, hvis der ikke er koblet personer til firmaet vises ingenting. HVORFOR F.... sker det :-)

Er der mon nogle kloge hoveder der kan klare den.

På forhånd tak
Pildal
Avatar billede -anders- Juniormester
26. september 2005 - 14:40 #1
Hej, det må være et eller andet med dit ID felt i den form du åbner via din firmaform. Hvis du har to tabeller en med firmaoplysninger, og en med personoplysninger, og der er relationer mellem disse vil jeg forslår at du benytter main og subform via dynamisk kæde (underordnet og overordnet felter)
Avatar billede bruger_pil Nybegynder
26. september 2005 - 14:52 #2
Jeg tjekker op på ID problematikken :-)´

Jeg vil være helt sikker på at jeg har forklaret mig ordentligt:
Jeg har en tabel der hedder "firma" der har relateret poster i tabellen der hedder "personer" og det virker fint hvis bare tabellen "personer" indeholder data.
Avatar billede bruger_pil Nybegynder
26. september 2005 - 14:54 #3
Åbner jeg formularen uden filter virker det også fint, så ser jeg også firmaer uden personer knyttet til.
Avatar billede -anders- Juniormester
26. september 2005 - 14:59 #4
Okay det lyder fornuftigt nok, men det er et eller andet med den subform der viser personer for det firma du har valgt ifht. ID nøglen
Avatar billede -anders- Juniormester
26. september 2005 - 15:02 #5
Hvis der ikke er data i persontabellen hvad skal ID så "sammelignes med", jeg er ikke så skrap lige her, men jeg tror det er det du skal kikke på, når jeg nævner det med struktur på subforms her 26/09-2005 14:40:55, er det fordi at det primært er sådan Access håndtere det
Avatar billede bruger_pil Nybegynder
26. september 2005 - 15:12 #6
ID referer til firma som altid findes.
Avatar billede -anders- Juniormester
26. september 2005 - 15:12 #7
Sorry, det var vist noget værre vrøvl jeg der fik postet 26/09-2005 15:02:38, ID er jo FirmaID
Avatar billede -anders- Juniormester
26. september 2005 - 15:15 #8
Hvordan viser du relaterede personer i din subform, for det valgte firma
Avatar billede bruger_pil Nybegynder
26. september 2005 - 15:18 #9
som "fortløbende formularer" hvis det er det du mener
Avatar billede -anders- Juniormester
26. september 2005 - 15:20 #10
Den er jeg med på, men hvordan er det sat sammen ifht. koblingen mellem firma og personer, der må være et eller andet unikt der, når du skriver "Vises ingenting", mener du så på mainformen eller i subformen
Avatar billede -anders- Juniormester
26. september 2005 - 15:21 #11
Hvis du har mulighed for det må du gerne maile db så kan jeg kikke på den (.ZIP), du fidner min mailadresse ved at klikke på mit brugernavn
Avatar billede bruger_pil Nybegynder
26. september 2005 - 15:28 #12
firma.id er relateret til person.subid, giver det mening?
Den er desværre meget stor :-(
Avatar billede -anders- Juniormester
26. september 2005 - 15:33 #13
Hmm, kan ikke lige gennemskue det, hvis du åbner en form via firmaformen (med ID som det unikke)vises data for det valgte firma i diverse tekstbokse på mainformen feks. øverst, så burde subformen vise de relaterede personer (hvis der er nogen)som svare til det firma du har valgt. Prøv at kikke på egenskaben Overordnet og underordnet feltet du finder egensken ved at åbne mainform i design, og højreklikke på subformen, det må være der den ligge begravet
Avatar billede -anders- Juniormester
26. september 2005 - 15:35 #14
Du skal klikke på fanebladet Data for at se egenskaben underordnet og overordnet felter
Avatar billede bruger_pil Nybegynder
26. september 2005 - 15:37 #15
Her står der person.id er underordnet og at firma.id er overordnet.
Avatar billede -anders- Juniormester
26. september 2005 - 15:44 #16
Okay, hvad sker der hvis du bytter om på det, og forresten den tabel eller forspørgsel der er postkilde til mainformen, er både person.id og firma.id medtaget der, jeg mener at person.id skal være i postkilden for at det virker, men behøver ikke være på main eller subform, prøv at kikke på det
Avatar billede -anders- Juniormester
26. september 2005 - 15:48 #17
Du skriver:
"Det virker kun hvis der er koblet personer til firmaet, hvis der ikke er koblet personer til firmaet vises ingenting."

Hvad er det helt præcist der "ikke vises"
Avatar billede bruger_pil Nybegynder
26. september 2005 - 15:54 #18
sorry, så vises firmaet ikke. formularen er helt tom!
Avatar billede -anders- Juniormester
26. september 2005 - 16:03 #19
Okay, prøv at fjerne din subform fra mainformen, arbejd evt. på en kopi af databasen, opret nu en ny subform og medtag mindst feltet person.id, sørg for at både person.id og firma.id er i den forespørgsel der bruges som postkilde til mainformen, indsæt nu din nye subform på mainformen, ved at benytte guiden der starter automatisk op, prøv så at vælge under og overordnet felter i de forslag guiden stiller. Check evt ,om der er noget kode på mainform der spørger på om subform indeholder data eller ej
Avatar billede -anders- Juniormester
26. september 2005 - 16:04 #20
Jeg er på vej hjemover, men vender tilbage senere hvis ikke andre har fundet en løsning til dig, jeg er nogenlunde sikker på at der er rimeligt "banalt", men det  er det med at se skoven for bare træer :o)
Avatar billede -anders- Juniormester
26. september 2005 - 16:09 #21
Lige et sidste chek, er mainformen "beskyttet" på nogen måde feks. mod indtastning af nye poster, eller skrivebeskyttet på anden måde
Avatar billede bruger_pil Nybegynder
26. september 2005 - 16:13 #22
den er beskyttet mod dataindtastning
Avatar billede terry Ekspert
26. september 2005 - 16:16 #23
without looking through all of the comments, if your sub form which should display persons uses a query as the row source and this query has an INNER join. Then Only rows where there are records on bothsides of the join will be displayed.

If you want to show all records, also thouse without person, then you need to alter the query to an OUTER JOIN.
Avatar billede terry Ekspert
26. september 2005 - 16:17 #24
try by looking at each query in the query builder and see if you get the correct result here. If you dont then you have eliminated any problems with the forms.
Avatar billede bruger_pil Nybegynder
26. september 2005 - 16:29 #25
inner outer, i never quite got the difference ;-)
When i try change it to OUTER JOIN i get a syntax error

this result in syntax error:
SELECT TBL_Adressekartotek.*, tblLokalAdresseCheck.*
FROM (TBL_Adressekartotek LEFT JOIN tblLokalAdresseCheck ON TBL_Adressekartotek.ID = tblLokalAdresseCheck.FirmaID) OUTER JOIN TBL_Adresse_SUB ON TBL_Adressekartotek.ID = TBL_Adresse_SUB.AdresseID;
Avatar billede bruger_pil Nybegynder
26. september 2005 - 16:30 #26
It the OUTER JOIN was previously a INNER JOIN
Avatar billede -anders- Juniormester
26. september 2005 - 16:46 #27
Okay, det er det der er problemet, prøv at fjerne denne beskyttelse, og se om det ikke hjælper
Avatar billede -anders- Juniormester
26. september 2005 - 16:47 #28
>>terry, længe siden :o)
Avatar billede terry Ekspert
26. september 2005 - 16:49 #29
:o)
an OUTER JOIN can be a right or left OUTER join.
The best way to do this is in the Access query builder window. Right click on the thin line joing the two tables and then select the button which gives you waht you want. This will make the JOIN to a left or right.
Avatar billede terry Ekspert
26. september 2005 - 16:51 #30
Hi Anders :o)
Avatar billede -anders- Juniormester
26. september 2005 - 16:55 #31
Jeg tror faktisk at subformen og mainform "hænger rigtigt sammen", problemet er at mainformen er beskyttet mod indtastning af nye poster, men ikke nødvendigvis beskyttet mod redigering af poster der allerede er oprettet, når en form er beskyttet mod indtasting af poster (AllowAdditions False), tror jeg at mainformen opføre sig som pildal beskriver når der ikke er nogle data i subformen som relatere til det valgte firma.
Avatar billede claesdamlund Nybegynder
26. september 2005 - 17:48 #32
Som terry skriver kan du kun får vist firmaer med tilknyttede personer i en Inner Join uanset hvad form properties er sat til. Så muligvis er det nok at ændre din sætning til:

SELECT TBL_Adressekartotek.*, tblLokalAdresseCheck.*
FROM (TBL_Adressekartotek LEFT JOIN tblLokalAdresseCheck ON TBL_Adressekartotek.ID = tblLokalAdresseCheck.FirmaID) LEFT OUTER JOIN TBL_Adresse_SUB ON TBL_Adressekartotek.ID = TBL_Adresse_SUB.AdresseID

Forudsat TBL_Adresse_SUB er din "persontabel".
Avatar billede bruger_pil Nybegynder
26. september 2005 - 22:10 #33
Der har lige været et par timer med børn og mad.
Jeg har ved jeres super hjælp fundet fejlen. Forespørgelsen finder også ID fra tabellen der indeholder "personer". Da jeg fjernede den fra forespørgelsen spillede det hele. Så den første kommentar fra aandersen + lidt Terry på forespørgelsen. Er det rimeligt at dele point?
Avatar billede -anders- Juniormester
26. september 2005 - 22:16 #34
Hej pildal, jeg er glad for at høre at det spiller nu, ja del du bare point mellem os, når de andre har lagt et svar
Avatar billede bruger_pil Nybegynder
27. september 2005 - 08:53 #35
Terry> For at dele point skal jeg have et svar fra dig Terry.
Endnu en gang mange tak for kompetent hjælp
Avatar billede terry Ekspert
27. september 2005 - 19:39 #36
:o)
Avatar billede -anders- Juniormester
28. september 2005 - 19:22 #37
Tak for point, og forsat god arbejdslyst med projektet :o)
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