/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
vb-opslag i accessdatabase
Fra : Helge Duif


Dato : 25-05-05 18:37

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...)



mvh. Helge



 
 
Carsten Pedersen (25-05-2005)
Kommentar
Fra : Carsten Pedersen


Dato : 25-05-05 19:04


"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



Helge Duif (27-05-2005)
Kommentar
Fra : Helge Duif


Dato : 27-05-05 09:25

Hej Carsten, tak for svaret, det var jo lige det jeg skulle bruge, havde
lige glemt at der var noger der hed AS, og at man ikke behøver at bruge *
hver gang man laver et opslag (men det er dejligt nemt)

mvh. Helge



Niels Henriksen (31-05-2005)
Kommentar
Fra : Niels Henriksen


Dato : 31-05-05 07:37

"Helge Duif" <helgeGULBILduif@wanadoo.dk> wrote in message
news:4296d924$0$79464$14726298@news.sunsite.dk...
> Hej Carsten, tak for svaret, det var jo lige det jeg skulle bruge, havde
> lige glemt at der var noger der hed AS, og at man ikke behøver at bruge *
> hver gang man laver et opslag (men det er dejligt nemt)
>
Du kan også hente ID fra tabellen på denne måde rst2("klientSag.id ") (altså
med tabel[dot]felt)

--
Niels Henriksen
www.netopcom.dk
Webhosting: 100 MB for 8 kr/mdr incl. moms



Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste