Avatar billede maron Nybegynder
30. marts 2003 - 15:59 Der er 19 kommentarer og
2 løsninger

Random poster fra Access

Jeg skal bruger 10 tilfældig poster fra en Access database, hvordan gøres det?

Nu vil jeg godt ha noget der virker, alle tidligere forslag har ikke funkgeret.
Avatar billede oasen Nybegynder
30. marts 2003 - 16:08 #1
Hvad forventer du egentlig?

http://www.eksperten.dk/spm/335120
Avatar billede oasen Nybegynder
30. marts 2003 - 16:11 #2
Hvorfor opretter du altid dine spørgsmål flere gange?

http://www.eksperten.dk/bruger.phtml?navn=maron&option=22
Avatar billede maron Nybegynder
30. marts 2003 - 16:12 #3
Jeg forventer at folk på eksperten kan skrue noget sammen som virker "Oasen" dit script virker altså heller ikke, hvis jeg skal bruge timer på at finde fejl, hjælper det mig jo ligesom ikke :-(
Avatar billede maron Nybegynder
30. marts 2003 - 16:13 #4
Og hvorfor er du så negativ?
Avatar billede oasen Nybegynder
30. marts 2003 - 16:17 #5
maron ---> Jeg er negativ, fordi jeg bruger tid på at give dig et svar, hvorefter du bare lukker spørgsmålet.

Man kunne måske forestille sig, det var dig selv, der fejlede.
Avatar billede oasen Nybegynder
30. marts 2003 - 16:26 #6
I øvrigt er Eksperten et hjælpeforum. Du kan ikke forvente et 100% brugbart svar, når du lukker spørgsmålet igen efter 20 min og ikke engang kan stramme dig op til at komme med en evt. fejlmeddelelse.

Men det er jo ris til egen r** i sidste ende.
Avatar billede maron Nybegynder
30. marts 2003 - 16:31 #7
Det gjorde jeg faktisk kun for at sætte flere point på spørgsmålet.
Avatar billede maron Nybegynder
30. marts 2003 - 16:39 #8
Men jeg får flg. fejl på random.Fejltype:

ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
Avatar billede oasen Nybegynder
30. marts 2003 - 16:43 #9
Prøv lige at vis mig det hele.
Avatar billede maron Nybegynder
30. marts 2003 - 16:49 #10
Tekniske oplysninger (for supportteknikere)
Fejltype:
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/test.asp, line 6
Avatar billede oasen Nybegynder
30. marts 2003 - 16:53 #11
Nej, jeg tænkte på din kode. Åbning af db osv...
Avatar billede maron Nybegynder
30. marts 2003 - 16:57 #12
<%

AccessDataBase = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("test.mdb")
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "Select * From test", Conn, 1, 3

Count = 0
Do While Count < 10
    rs.MoveFirst
    Randomize
    rs.Move(int(rs.RecordCount * rnd))
    If Not rs.EOF And Not rs.BOF Then
        Count = Count + 1
        Response.Write rs("testnavn")
    End If
Loop

%>
Avatar billede oasen Nybegynder
30. marts 2003 - 17:04 #13
Det er fordi, du ikke har ændret "Conn" til dit eget variabelnavn.

rs.Open "Select * From test", AccessDataBase, 1, 3
Avatar billede maron Nybegynder
30. marts 2003 - 22:51 #14
Det har jeg så gjort nu og får så denne fejl
:Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'test'
Avatar billede maron Nybegynder
30. marts 2003 - 23:22 #15
Denne her virker, men viser kun ét resultat, du kan måske fortælle mig hvordan jeg får 10 res. ud?

<%
    Set objRs = Server.CreateObject("ADODB.Recordset")
    strConn = "Driver={MicroSoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/test.mdb")
    strSQL = "SELECT * FROM test"
    objRs.Open strSQL, strConn, 1
   

    Randomize
    objRs.Move(int(objRs.RecordCount * Rnd()))

    Response.Write(objRs("test"))
     
%>
Avatar billede oasen Nybegynder
30. marts 2003 - 23:37 #16
Det er samme princip. Der er bare ingen løkke. Du er vel klar over, du har skrevet "testnavn" i den ene og "test" i den anden...?
Men så prøv at kombinere dem:


Set objRs = Server.CreateObject("ADODB.Recordset")
strConn = "Driver={MicroSoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/test.mdb")
strSQL = "SELECT * FROM test"
objRs.Open strSQL, strConn, 1

Count = 0
Do While Count < 10
    objRs.MoveFirst
    Randomize
    objRs.Move(int(objRs.RecordCount * rnd()))
    If Not objRs.EOF And Not objRs.BOF Then
        Count = Count + 1
        Response.Write objRs("test")
    End If
Loop
Avatar billede maron Nybegynder
31. marts 2003 - 00:01 #17
Perfekt, det virker lige som det skal :-)
Mange tak for hjælpen og 60 point til dig.
Avatar billede oasen Nybegynder
31. marts 2003 - 00:06 #18
Jeg skal bare have 30. Det var jo det, du startede med at udlove ;)
Avatar billede maron Nybegynder
31. marts 2003 - 00:09 #19
ok hvor er funktionen ret point?
Avatar billede oasen Nybegynder
31. marts 2003 - 00:10 #20
Læg et svar selv og tildel 30 points til hver.
Avatar billede maron Nybegynder
31. marts 2003 - 00:16 #21
Fint :-)
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
Kurser inden for grundlæggende programmering

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