hmm, du kan väl göra nått åt de här hållet:
sql="SELECT tabellett.tillverkarid,tabellett.namn,tabelltva.tillverkarid,tabelltva.godisnamn FROM tabellett,tabelltva"
ja sen kan du ju göra uraval som du vill., funkar det där tror du?
23 svar · 746 visningar · startad av trexter.com
Säg att jag ska göra ett register över mitt godis (eller inte).
Först tabell ett:
1 - Fazer
2 - Marabou
3 - Ahlgrens
Tabell två:
1 - 1 - Nisses saltisar
2 - 1 - Sega kolor
3 - 1 - Guffegott
4 - 2 - Med luftbubblor
5 - 2 - Utan luftbubblor
6 - 3 - Sega bilar
Här hör alltså olika produkter till olika fabrikat. Så har jag gjort förrut för att loopa ut innehållet i dessa två tabellerna:
' SELECT som hämtar alla fabrikat
' Loopar igenom alla posterna
' I loopen sriver jag ut fabrikatet
' Sedan kör jag en ny SELECT som hämtar alla sorters godis
' från tabell två som har samma "kopplings-id" som det i det
' aktuella "recordet".
' ... skriver alltså ut fabrikat överst och under olika sorter.
' Slut på loop
Är detta ett bra sätt? Kan man fixa med på något annat sätt utan att använda två SELECTS och RecordSets?
:)
hmm, du kan väl göra nått åt de här hållet:
sql="SELECT tabellett.tillverkarid,tabellett.namn,tabelltva.tillverkarid,tabelltva.godisnamn FROM tabellett,tabelltva"
ja sen kan du ju göra uraval som du vill., funkar det där tror du?
Använd en JOIN:
Tabell ett = tManu:
* ID
* Name
Tabell två = tProd:
* ID
* ManuID
* Name
SELECT *, tm.Name as ManuName FROM tManu tm
INNER JOIN tProd tp ON tm.ID = tp.ManuID
do until rs.eof
if rs("ManuName") <> strBef then
response.write rs("ManuName")
end if
response.write("name") & "<br>"
strBef = rs("ManuName")
rs.movenext
loop
fast det Override skrev ser ju stabilare ut :)
strBef är en variabel som innehåller den föregående radens värde av kolumnen Manu i tabellen tManu.
Alltså, om strBef inte är likamed rs("manu") så skall rs("manu") skrivas ut, så att de sorteras efter tillverkare (manu).
Så Bef står för Before? :q
Jag har lite problem, vet inte riktigt hur jag ska få ihop det.
SELECT *, tm.Name as ManuName FROM tManu tm
INNER JOIN tProd tp ON tm.ID = tp.ManuID
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'prioritet INNER JOIN Artiklar a ON ak.ID = a.kategori'.
:)
Kan du visa koden. Felmeddelandet hänger inte ihop med den kod du visar. Vad är ak?
Ja. Bef är en förkortning som jag använde. 'Str' för String (datatypen) och 'Bef' för Before (före). Detta är alltså inget som är inbyggt i ADO, recordsets eller liknande, det är bara en variabel som håller koll på om den skall skriva ut en ny tillverkare eller inte, eftersom de grupperas och listas så. :)
Alltså; SQL-satsen skall vara på en rad, jag skrev den bara på två, för att förenkla. :)
Alltså t.ex:
set recset = connect.execute("SELECT *, tm.Name as ManuName FROM tManu tm INNER JOIN tProd tp ON tm.ID = tp.ManuID")
Det ser ut som om du har nåt fel i din SQL, kan du skriva ut hela sql-satsen så vi får se om det är nåt fel där?
Jo, det gör det faktiskt. Ak skulle vara "smeknamnet" för tabellen ArtikelKategoerier (är inte alls säker på att jag förstod hur man skulle göra).
Tabellerna heter:
Artiklar
ArtikelKategorier
Kolummerna heter:
id datum ettor tvaor treor fyror femmor klick kategori prioritet titel forfattare artikeln
samt:
gruppnamn id prioritet
Detta vill jag presentera i en tabell och på så sätt få något slags "artikelindex".
ettor, tvoar, treor osv. är till en omröstning...
:)
LarsG: Ojsan, du hade rätt. Råkade posta OveRRides kod.. :)
Connect.Execute "SELECT *, ak.gruppnamn FROM ArtikelKategorier ak ORDER BY prioritet INNER JOIN Artiklar a ON ak.ID = a.kategori"
SELECT *, ak.gruppnamn FROM ArtikelKategorier ak ORDER BY prioritet INNER JOIN Artiklar a ON ak.ID = a.kategori
SELECT * FROM artiklar a INNER JOIN artikelKategorier ak ON a.kategori = ak.id
Skriv ut med:
do until rs.eof
if rs("ManuName") <> strBef then
response.write "<b>" & rs("artikelkategori") & "</b><br>"
end if
response.write rs("artikel") & "<br>"
strBef = rs("artikelkategori")
rs.movenext
loop
Tack Landsorganisationen! :bire
(Hajade ni den? Antagligen. ;) )
trexter.com skrev:
Tack Landsorganisationen! :bire
(Hajade ni den? Antagligen. ;) )
Jag hajade den inte. :q
Landstings + Organisationen = L + O = LO
LarsG + OveRRidE = L + O = LO
Ok, den var dålig! :e
En sak, hur får jag med ett id (från kolummen id alltså) från Artikelar? Försöker jag med rs("id") blir det "Item cannot be found in the collection corresponding to the requested name or ordinal. "
:)
Hur ser select-frågan ut?
GetArtiklar = "SELECT * FROM artiklar a INNER JOIN artikelKategorier ak ON a.kategori = ak.id"
Då skall det inte vara något problem att få fram id med rs("id"). Hur ser resten ut? Använder du rätt recordset?
Sub Artiklar()
GetArtiklar = "SELECT * FROM artiklar a INNER JOIN artikelKategorier ak ON a.kategori = ak.id"
Set rs = Connect.Execute(GetArtiklar)
Response.Write "<table cellspacing=""0"" cellpadding=""4"">"
graellervitrad = 1
do until rs.eof
graellervitrad = graellervitrad * -1
if rs("gruppnamn") <> strBef then
response.write "<tr><td width=""155"" class=""forstaraden"">" & rs("gruppnamn") & "</td><td width=""80"" class=""forstaraden"">Besökt</td><td width=""60"" class=""forstaraden"">Betyg</td><td width=""140"" class=""forstaraden"">Skrevs</td><td width=""100"" class=""forstaraden"">Författare</td></tr>"
end if
if graellervitrad = -1 then
graellervitruta = 1
else
graellervitruta = 2
end if
response.write "<tr><td width=""155"" class=""radtyp"&graellervitruta&"""><a href=""dennasidan.asp?vad=read&vilken="&rs("id")&""" class=""inbakadlank"">" & rs("titel") & "</a></td><td width=""80"" class=""radtyp"&graellervitruta&""">" & rs("klick") & " gånger</td><td width=""60"" class=""radtyp"&graellervitruta&""">N/A</td><td width=""140"" class=""radtyp"&graellervitruta&""">" & rs("datum") & "</td><td width=""100"" class=""radtyp"&graellervitruta&""">" & rs("forfattare") & "</td></tr>"
strBef = rs("gruppnamn")
rs.movenext
loop
rs.Close
set rs = nothing
Response.Write "</table>"
End Sub
:)
Hur ska jag ändra SQL:en för att kunna utnyttja id:et?
Saken är väl den att två kolummer heter id, därför b´lir det problem.
eller?
:)