"Helge Duif" <helgeGULBILduif@wanadoo.dk> skrev i en meddelelse
news:4294b79f$0$79456$14726298@news.sunsite.dk...
> Hej, er der nogen her der kan hjælpe mig med et problem
>
> Jeg har lavet et efterhånden stort program i VB6. Som database bruger jeg
> Access.
>
> Jeg har en del tabeller, f.eks. aftale, AftPr, klientSag, pr osv...
>
> For at dykke ned i database og hente oplysninger, har jeg lavet følgende
> forespørgsel til databasen:
>
> rst2.Open "SELECT * FROM ((aftale INNER JOIN AftPr ON AftPr.aftID =
> aftale.klientID) INNER JOIN klientSag ON AftPr.aftID = klientSag.id) INNER
> JOIN pr ON pr.cpr = aftale.pr WHERE klientSag.cpr = '" & sCPR & "' AND
> AftPr.prCpr = aftale.pr ORDER BY dato desc", conn
>
> List6.Clear
>
> Do While rst2.EOF = False
>
>
>
> List6.AddItem rst2("dato") & " " & Format(rst2("startTid"), "hh:mm") & " "
> & rst2("navn") & " " & rst2("ID")
>
> End If
>
> rst2.MoveNext
>
> Loop
>
> rst2.Close
>
>
>
> ID forekommer "desværre" i flere af de JOIN'ede tabeller og jeg troede
> derfor bare at jeg kunne skrive: ... & rst2("aftale.ID") ..., men det kan
> VB bestemt ikke lide, den kalder mig grimme ting....
>
> Hvis jeg nøjes med at skrive ... & rst2("ID") ..., tager den den forkerte
> ID.
>
> Hvordan fortæller jeg Access at jeg skal bruge ID fra en bestemt
> tabel...???
>
> Jeg er nået så langt i programmet, at det vil blive noget uoverskueligt at
> skulle omdøbe nogle af ID'erne (men jeg skal nok huske det til en anden
> gang...)
Så grelt skulle det hller ikke gerne blive. En omskrivning af din
SQL-sætning burde kunne løse problemet, så du ikke bruger stjernen i din
SELECT-klausul, for den tager rub og stub i de omhandlede tabeller, med
mindre du kun bruger den i forbindelse med den ene.
I stedet angiver du nøje hvilke felter i hvilke tabeller, du vil have med,
og er der flere af felterne fra forskellige tabeller, som hedder det samme,
bruger du AS til at omdøbe midlertidigt inde forespørgslen, f.eks.:
SELECT aftale.*, klientSag.id AS klientSagID, ...
Nu henviser rst2("ID") til feltet ID i tabellen aftale, som vi jo henter alt
fra, mens du bruger rst2("klientSagID"), når du skal bruge ID i klientSag
tabellen.
--
Mvh
C@rsten