Avatar billede dkkarpen Nybegynder
26. marts 2001 - 09:35 Der er 8 kommentarer og
1 løsning

Query hjælp

Halløj

Jeg har en tabel der har følgende udseende:

id  ord
1  sygdom
1  boreplatform
1  graviditet
2  offentlig
2  Privat
2  medvirken

Hvordan skal en query se ud hvis jeg ønsker følgende udseende?

id  ord
1    sygdom - boreplatform - graviditet
2    offentlig - Privat - medvirken

Avatar billede proaccess Nybegynder
26. marts 2001 - 09:46 #1
Du er nødt til at oprette en funktion, til at \"vende\" din tabel.

Public Function strListOfValues(strSQL As String) As String
  Dim RA As Recordset
  Set RA = CurrentDb.OpenRecordset(strSQL)
  While Not RA.EOF
    strListOfValues = strListOfValues & \" - \" & RA.Fields(0).Value
    RA.MoveNext
  Wend
  Set RA = Nothing
  strListOfValues = Mid(strListOfValues, 3)
End Function

Derefter kalder du den ved følgende forespørgsel:

SELECT DISTINCT id, strListOfValues(\"SELECT ord FROM DinTabel WHERE id=\" & [id] & \" ORDER BY ord;\") AS ord FROM [DinTabel];

HDH
ProAccess
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 09:54 #2
Jeg får fejl i denne linie:

Set RA = CurrentDb.OpenRecordset(strSQL)
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 09:57 #3
Ok det var en slåfejl - nu kører det. Men min pc gik ned...
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 10:04 #4
Access går fuldstændig død efter en forespørgsel...
Avatar billede proaccess Nybegynder
26. marts 2001 - 10:34 #5
Det kan være at det bare er fordi det giver en TUNG forespørgsel... (der genforespørges for hver record)

Hvor stort (antal records) er din tabel, prøv eventuelt at afgrænse forespørgslen ved at skrive:

SELECT DISTINCT id, strListOfValues(\"SELECT ord FROM DinTabel WHERE id=\" & [id] & \" ORDER BY ord;\") AS ord FROM [DinTabel] HAVING id<3;

ProAccess

Avatar billede proaccess Nybegynder
26. marts 2001 - 10:34 #6
UNDSKYLD \"WHERE\" ISTEDET FOR \"HAVING\" !!!
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 10:35 #7
Der er ca. 3000 records. Jeg prøver
Avatar billede dkkarpen Nybegynder
26. marts 2001 - 11:46 #8
Ok - selvom det faktisk talt er ubrugligt løste du opgaven.
Avatar billede proaccess Nybegynder
26. marts 2001 - 11:50 #9
Det er den ENESTE måde, du kan løse din opgave...

Det bunder i at du har så forskellige værdier i din tabel. Ellers kunne det \"bare\" løses ved en krydstabuleringsforespørgsel !!!  -  Her vil du dog få MANGE tomme celler.

Du må meget undskylde, men som man råber i skoven, og så videre...

ProAccess
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