nakozMedlem sedan dec. 1999570 inlägg
usch, jag har varit ifrån kodningen för länge nu..
jag använder access och vill koppla samman två tabeller enligt denna mall, typ:
tblMat
=====
mID [räknare]
mNamn [text]
mIngredienser [text - ex: 2,4,9,25,68]
tblIngr
=====
iID
iNamn
det funkar såsom så, att varje maträtt innehåller X antal ingredienser, som jag vill lägga i en array (tror jag?) och
sedan hämta alla ur andra tabellen. varje ingrediens kan
naturligtvis ingå i flera maträtter.
jag har sökt på arrays, joins, splits och getrows, men har
tappat all kunskap känns det som? :/
tacksam för snabb hjälp... (@nders? :))
@ndersMedlem sedan juni 200026 914 inlägg
Jag är inte här. ;)
Du borde inte lagra flera värden i ett och samma fält (ingrediensfältet). Men eftersom det ändå ser ut så, så...
strSQL = "SELECT * FROM tblMat WHERE mNamn = 'PassarTillPilsner'"
set objRS = objConn.Execute (strSQL)
If not obJRS.EOF then
' hämta ingredienser
strSQL = "SELECT * FROM tblIngr WHERE iID IN (" & objRS("mIngredienser")"
set objIngr = objConn.Execute(strSQL)
While not objIngr.EOF
' skriv ut ingredienserna
Wend
End if
Något sånt iaf...
J.N.Medlem sedan apr. 20031 660 inlägg
HEJ!
Som jag förstår detta gör du det svårt för dig, du ska inte lagra värdena i fältet mIngredienser som du gör, då får du endast problem.
Det går att göra som du gör, men det krångligare frågor och övrig hantering.
Bryt ut dessa i en mellantabell, som innehåller
mID
mIngredienser
Där kopplar du alltså ihop recept med ingrediens.
Denna kommer att innehålla fem rader om du har fem ingredienser; det blir alltså en del rader, men det är helt okej.
För att hitta alla recept med ingrediens 4 gör du en fråga med JOIN mellan tblMat och tblIngredienser där mIngredienser=4.
nakozMedlem sedan dec. 1999570 inlägg
tackar för hjälpen.. nu funkar det kanonbra...
@nders, du borde veta bättre... hjälp mig inte göra dålig
kod, utan berätta hur jag ska vägledas till bra kod istället ;)
@ndersMedlem sedan juni 200026 914 inlägg
Japp, jag vet bättre. Det borde du också. ;)