CalippoMedlem sedan aug. 2002535 inlägg
Har två tabeller i en Access databas
TABELL: tblGroups
------------------
FÄLT: id
FÄLT: strGroup
TABELL: tblProducts
------------------
FÄLT: id
FÄLT: intGroup
FÄLT: strProduct
FÄLT: dtmDate
FÄLT: intPrice
Hur skapar man en array som sparar ner allt så att man sedan kan loopa ut det?
Ex:
Jag vill skriva ut id och namn från första posten ur tblGroups.
Och sedan loopa ut alla produkter med alla fält från tblProducts som hör till posten från tblGroups.
Och sedan hoppa ner till nästa rad i tblGroups och hålla på så till sista posten är nådd.
headbugMedlem sedan sep. 2006858 inlägg
Det är lite oklart vad som menas med 'allt' =) men för att få ut informationen i den ordningen du beskriver skulle jag göra två loopar för att skapa arrayen.
Börja med att skaffa ett RS, kallar den RS_grp, för tblGroups och stega dig igenom i en loop. I loopen skaffar du ett nytt RS_prod för tblProducts där du letar efter intGroup = " & RS_grp("id") & " osv
Sen kan du stega dig igenom denna subloop och fylla din array med info både ifrån rådande RS_grp och RS_prod precis på önskat sätt =)
/Jonas
CalippoMedlem sedan aug. 2002535 inlägg
Japp, så långt kan jag redan, men det där med flera dimensioner i en array kan jag inte...
Jag vill skapa en sådan här array:
MyData (0,0) = "Id:et på Grupp 1"
MyData (0,1) = "Namnet på Grupp 1"
MyData (0,2) = "Id:et på Produkt 1 som hör till Grupp 1"
MyData (0,3) = "Namnet på Produkt 1 som hör till Grupp 1"
MyData (1,0) = "Id:et på Grupp 2"
MyData (1,1) = "Namnet på Grupp 2"
MyData (1,2) = "Id:et på Produkt 2 som hör till Grupp 2"
MyData (1,3) = "Namnet på Produkt 2 som hör till Grupp 2"
TravoniMedlem sedan okt. 20041 538 inlägg
Det gör du med en (1) inner join.
TravoniMedlem sedan okt. 20041 538 inlägg
En sql-fråga och getRows()
SELECT tblProducts.*, tblGroups.*
FROM tblGroups INNER JOIN tblProducts ON tblGroups.id = tblProducts.intGroup
ORDER BY tblGroups.strGroup,tblProducts.strProduct
TravoniMedlem sedan okt. 20041 538 inlägg
Sedan så lägger du gruppid:t alternativt gruppnamnet i en variabel när du gör loopen. Är grupp id:t annat än det som ligger i variabeln skriv ut detta, annars inte.
Ungefär så här
Dim myvar : myvar = -1
For i = 1 to ubound(myarray)
if myvar <> myarray(0,i) then 'Kolla om gruppidt finns i variabel
Response.Write myarray(1,i) 'Det gör inte det, skriv ut gruppnamn
Else
Response.Write "" 'det gör det, gör ingenting
End if
myvar = myarray(0,i) 'Fyll variabeln med gruppidt
'Skriv ut resten av posterna
Next
TravoniMedlem sedan okt. 20041 538 inlägg
TroxyMedlem sedan mars 20041 508 inlägg