03. august 2006 - 21:44Der er
24 kommentarer og 1 løsning
Nyeste felt udtræk fra access går galt?
Jeg kæmper med at lave noget udtræk fra flere forskellige tabeller efter dato, det fungerede første gang, men nu skriver den ens ud i halvdelen af dem og databasen ser ud som den skal. Nogle der kan gennemskue hvad der går galt her?
Koden er som følgende:
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT arkade.pic, action.pic, kids.pic, puzzle.pic FROM arkade, action, kids, puzzle ORDER BY arkade.dato DESC, action.dato DESC, kids.dato DESC, puzzle.dato DESC " strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/database/games.mdb") rs.Open strSQL, strDSN
For i = 1 To 10 response.write (rs("pic")) & "<br/>"
Man kan vel ikke kalde den nemmere, men din er nu også lidt for simpel til at virke korrekt ;^)
Set rs = Server.CreateObject("ADODB.RecordSet") strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/database/games.mdb")
' De 10 nyeste fra tabellen arkade
strSQL = "SELECT pic FROM arkade ORDER BY dato DESC" rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("pic") & "<br/>" rs.MoveNext Next
' De 10 nyeste fra tabellen action
strSQL = "SELECT pic FROM action ORDER BY dato DESC" rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("pic") & "<br/>" rs.MoveNext Next
' De 10 nyeste fra tabellen kids
strSQL = "SELECT pic FROM kids ORDER BY dato DESC" rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("pic") & "<br/>" rs.MoveNext Next
' De 10 nyeste fra tabellen puzzle
strSQL = "SELECT pic FROM puzzle ORDER BY dato DESC" rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("pic") & "<br/>" rs.MoveNext Next
Synes godt om
Slettet bruger
03. august 2006 - 22:08#6
Prøver den lige.. :-)
Synes godt om
Slettet bruger
03. august 2006 - 22:15#7
:-) - din ide ser da helt okay ud, men synes ikke helt rækkefølgen passer på datoen.. der er nogle fra en tabel der er nyere end nogle af de andre der er vist... Hvordan kan det ske?
Synes godt om
Slettet bruger
03. august 2006 - 22:17#8
Prøver lige at lave en liste på hvordan de kommer ud og fra hvilken tabel og dato
Synes godt om
Slettet bruger
03. august 2006 - 22:19#9
Hovsa.. havde lige kigget forkert... De kommer alle ud fra Arkade tabellen.. Altså de 10 nyeste fra den tabel.. Så et eller andet går galt..
Den første løkke udtrækker de 10 nyeste fra arkade, den næste de 10 nyeste fra action, den treje de 10 nyeste fra kidts, og den sidste de 10 nyeste fra puzzle.
Synes godt om
Slettet bruger
03. august 2006 - 22:20#11
Den kommer også med denne fejlmeddelse: ADODB.Recordset error '800a0e79'
Operation is not allowed when the object is open.
/test.asp, line 29
Synes godt om
Slettet bruger
03. august 2006 - 22:22#12
Den du har lavet skriver de 10 sidste ud fra alle tabellerne og ikke de ti seneste fra alle tabeller ikke? Jeg vil gerne det kun er 10 i alt fra tabellerne samlet.. så den sammenligner dem og udskriver de 10 seneste..
strSQL = "(SELECT pic, dato FROM arkade) UNION (SELECT pic, dato FROM action) UNION (SELECT pic, dato FROM kids) UNION (SELECT pic, dato FROM puzzle) ORDER BY dato DESC" rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("pic") & "<br/>" rs.MoveNext Next
Ok, det du ønsker er altså at lægge tabellerne sammen. Det kan umiddelbart kun lade sig gøre hvis Access understøtter UNION, og det kan jeg ikke lige huske.
Men prøv da dette:
strSQL = "(SELECT pic, dato FROM arkade) UNION (SELECT pic, dato FROM action) UNION (SELECT pic, dato FROM kids) UNION (SELECT pic, dato FROM puzzle) ORDER BY dato DESC" rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("pic") & "<br/>" rs.MoveNext Next
Synes godt om
Slettet bruger
03. august 2006 - 22:32#15
hehe okay.. sådan går det jo.. :-) Men tak fordi du bliver ved med at hjælpe.. jeg forsøger lige med det nye kode...
Synes godt om
Slettet bruger
03. august 2006 - 22:38#16
Det ser ud til at virke... Super!!! Tusind tak.. :-) Hvad så hvis jeg vil have "Navn" med ud fra hver tabel så det ikke kun er "pic"... Kan jeg skrive komma imellem eller hvordan klarer jeg det?
strSQL = "(SELECT pic, navn, dato FROM arkade) UNION (SELECT pic, navn, dato FROM action) UNION (SELECT pic, navn, dato FROM kids) UNION (SELECT pic, navn , dato FROM puzzle) ORDER BY dato DESC" rs.Open strSQL, strDSN
rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("navn") & " - " & rs("pic") & "<br/>" rs.MoveNext Next
Synes godt om
Slettet bruger
03. august 2006 - 22:49#18
Den giver parameter fejl... Hvad gør jeg galt her?
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "(SELECT pic, navn, dato FROM arkade) UNION (SELECT pic, navn, dato FROM action) UNION (SELECT pic, navn, dato FROM kids) UNION (SELECT pic, navn , dato FROM puzzle) ORDER BY dato DESC" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/database/games.mdb")
rs.Open strSQL, strDSN
For i = 1 To 10 Response.Rrite rs("navn") & " - " & rs("pic") & "<br/>" rs.MoveNext Next
Synes godt om
Slettet bruger
03. august 2006 - 22:50#19
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
bare glem det... det var mig der lavede en fejl... (forkert "navn") :-) Det virker super nu... Jeg siger mange tak, du har reddet mig for en endnu søvnløs nat så nu kan jeg komme videre med min side.. FEDT! :-)
Må jeg spørge hvorfor du egentlig har (minimum) 4 tabeller som er ens?
Hvorfor ikke slå dem sammen til en tabel? Du kan jo sætte et ekstra felt på som angiver om billedet er arkade, action, kids eller puzzle.
Det ville i hvert fald have gjort dette problem meget nemmere at løse. :^)
Synes godt om
Slettet bruger
03. august 2006 - 23:02#24
Det har du egentlig ret i.... Ville gøre det hele meget nemmere... tjaa... Var nok lige hurtig nok da jeg lavede databasen... :-)
Synes godt om
Slettet bruger
03. august 2006 - 23:02#25
Tror jeg lige laver det om ved lejlighed.. nu må jeg hellere få lavet dette her klar...
Synes godt om
Ny brugerNybegynder
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.