Avatar billede jobless Nybegynder
22. august 2002 - 10:20 Der er 25 kommentarer og
2 løsninger

Forespørgsel (igen)

Hej.

Jeg har en tabel med ordrer, hvor mit produktID refererer til tabellen Produkter-> ProduktID.

Jeg vil gerne lave en forespørgsel som summerer ordrerne op efter feltet OrdreNummer, og i et felt viser alle produkter (poster) som tilhører dette ordreunmmer.
Altså, hvis man forestiller sig 4 poster i tabellen ordrer, med hhv. produkt 'Skrue', 'Søm', 'Hammer', 'Sav', vil jeg gerne have 1 post i min forespørgsel som i et felt angiver: 'Skrue, Søm, Hammer, Sav'.

Lader dette sig gøre?

ps.: Jeg skal bruge det som en underforespørgsel, så jeg kan ikke lave det i vba.
22. august 2002 - 10:27 #1
Hmm, det bliver nok lidt svært at sammensætte flere poster i et tekstfelt uden at bruge VBA.

Kunne du ikke bruge en krydstabullering, således at tabellen ville se således ud:
Ordrenr | Skrue | Søm | Hammer | Sav | Skruetrækker
1001      | 1    | 2    | 0      | 1      | 0
1002      | 2    | 1    | 1      | 0      | 1
Avatar billede proaccess Nybegynder
22. august 2002 - 10:28 #2
Avatar billede jobless Nybegynder
22. august 2002 - 10:35 #3
Ja, det er jo en mulighed at lave det i vba, men kan jeg så derefter lægge den streng ind i et felt i en fortløbende formular?
22. august 2002 - 10:41 #4
Du kan sagtens lave en ny kolonne i forespørgslen, som henviser til din funktion:

Værktøjer: strListOfValues([OrdreNummer])

Og derved kan det bruges i en formular
Avatar billede proaccess Nybegynder
22. august 2002 - 10:41 #5
KontrolElementKilde =strListOfValues("SELECT P.Produkt FROM Ordrer AS O INNER JOIN Produkter AS P ON O.ProduktID=P.ProduktID WHERE O.Ordre=1234")
Avatar billede jobless Nybegynder
22. august 2002 - 10:45 #6
Bare lige et lille tillægsspørgsmål: kan jeg bruge dette som ControlTip Text ?
22. august 2002 - 10:48 #7
Så skal du lægge en kode på OnCurrent (på formen) som tildeler værdien for hver post:

Me![DitKontrolObjekt].Controltiptext = strListOfValues(Me![OrdreNummer])
Avatar billede jobless Nybegynder
22. august 2002 - 10:49 #8
prøver....
Avatar billede proaccess Nybegynder
22. august 2002 - 10:54 #9
Ja, hvis du laver en funktion, som skifter ved hvert record-skift...

Private Sub Form_Current()
  Me.Tekst0.ControlTipText = strListOfValues("SELECT P.Produkt FROM Ordrer AS O INNER JOIN Produkter AS P ON O.ProduktID=P.ProduktID WHERE O.Ordre=1234")
End Sub


>Thomas: Det er altså IKKE nok bare at give ordrenummer til funktionen...
22. august 2002 - 10:56 #10
Proaccess-> sorry, jeg har ikke læst din funktion (jeg tog bare navnet). Jeg snakker mere generelt. du kan jo sagtens lave koden, så du kun behøver at give Ordrenummer, ikke sandt?
Avatar billede proaccess Nybegynder
22. august 2002 - 10:59 #11
>Thomas: Selvfølgelig!

Public Function strListVærktøj(lngOrdre As Long) As String
  strListVærktøj=strListOfValues("SELECT P.Produkt FROM Ordrer AS O INNER JOIN Produkter AS P ON O.ProduktID=P.ProduktID WHERE O.Ordre=" & lngOrdre)
End Function
Avatar billede jobless Nybegynder
22. august 2002 - 11:08 #12
Jeg ved ikke lige hvad der går galt, men alle posterne i´min fortløbende formular, får teskten fra første post ?!?. Måske bliver mit id ikke opdateret ved hver post ??
Avatar billede jobless Nybegynder
22. august 2002 - 11:10 #13
jeps, det er der det går galt. Når jeg kalder funktionen fra OnCurrent bruges samme ID ved alle poster. Jeg bruger me.autoinc til at referere til værdien som skal bruges i 'Where'-delen?!?
Avatar billede proaccess Nybegynder
22. august 2002 - 11:25 #14
Kan du ikke lige skrive dit grundlag til formularen...  (SQL)

Så laver vi et nyt til dig !!
Avatar billede jobless Nybegynder
22. august 2002 - 11:28 #15
Min SQL er:
"SELECT P.Produkt FROM Ordrer AS O INNER JOIN Produkter AS P ON O.ProduktID=P.ProduktID WHERE O.Ordre=" & me.AutoInc

Mit problem er ikke sql'en, men at me.AutoInc ikke skifter igennem formularen, men at den forbliver værdien fra første post.
Avatar billede proaccess Nybegynder
22. august 2002 - 11:30 #16
Jeg mente til FORMULAREN...

Hvis vi forestiller os at den er:

  SELECT * FROM Ordrer;

så kan den blive lavet om til:

  SELECT *. strListVærktøj(O.AutoInc) FROM Ordrer;

(når du altså har oprettet de 2 funktioner)
Avatar billede proaccess Nybegynder
22. august 2002 - 11:31 #17
Skulle have været:

SELECT *, strListVærktøj(O.AutoInc) AS Værktøj FROM Ordrer;
Avatar billede jobless Nybegynder
22. august 2002 - 11:32 #18
Ok, lige nu tester jeg ControlTipText, fordi jeg helst vil have det til at virke sådan. Hvis dette lykkes har jeg ikke brug for den anden metode.
Avatar billede proaccess Nybegynder
22. august 2002 - 11:32 #19
Alle gode gange 3...

  SELECT O.*, strListVærktøj(O.AutoInc) AS Værktøj FROM Ordrer AS O;
Avatar billede proaccess Nybegynder
22. august 2002 - 11:34 #20
ControlTipText er ENS for alle forekomster af formularen... (HINT: det er formularens design, som ændres)

ERGO kan det kun lade sig gøre at bruge CntrolTipText-metoden på enkelt-formularer...
Avatar billede jobless Nybegynder
22. august 2002 - 11:39 #21
ok, blindspor....
Jeg forsøger det andet
Avatar billede proaccess Nybegynder
25. august 2002 - 12:07 #22
>jobless: Kom du videre???
Avatar billede jobless Nybegynder
26. august 2002 - 10:29 #23
Jeps, hvordan fordeler vi point'ene?
Avatar billede proaccess Nybegynder
26. august 2002 - 10:33 #24
Det er jo lidt op til dig selv...  men jeg vil selvfølgelig helst have så mange, som muligt...  ;0)
Avatar billede jobless Nybegynder
26. august 2002 - 10:40 #25
Jeg vover pelsen ;=)
Avatar billede proaccess Nybegynder
26. august 2002 - 10:49 #26
Ellers må Thomas jo også bare brokke sig, hvis han er utilfreds...

Tak for points!
Avatar billede jobless Nybegynder
26. august 2002 - 11:00 #27
Ok, vi ser.....
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