Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:02 Der er 21 kommentarer og
1 løsning

SQL fejl ...

SELECT TOP 1 id,rnd() AS rn FROM persons ORDER BY rn;

Microsoft JET Database Engine error \'80040e10\'

No value given for one or more required parameters.

/tdaugaard.dk/projects/hotornot-mdb/inc_system.asp, line 164

Linie 164 er som sædvanligt Conn.Execute() linien.

Hvorfor ? Hvis jeg fjerner rnd() AS rn osv. så virker det .. bare ikke efter hensigten jo .. så hvordan laver man det her i Access ?
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:04 #1
Altså ikke _I_ access men på en access DB
Avatar billede carpediem Nybegynder
17. juli 2001 - 15:08 #2
Hvad er hensigten?
Avatar billede carpediem Nybegynder
17. juli 2001 - 15:09 #3
At få en random ud af databasen?
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:11 #4
Helt korrekt :-)

Generér et vlkårligt tal for hver record, sorter på det tal og man har en vilkårlig post.
Det funker fint i mySQL - her er funktionsnavnet dog bare rand(), men det funker ikke i Access
Avatar billede netsrac Praktikant
17. juli 2001 - 15:17 #5
Hm...Det her virker på MS SQL:

select top 1 id, rand() as rn from forfattere order by rn
Avatar billede netsrac Praktikant
17. juli 2001 - 15:23 #6
Bortset fra at den altid tager den første post...det virker vist ikke helt så godt..
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:25 #7
*G* hæ hæ .. nej, det er vist ikke så heldigt :-(
Avatar billede carpediem Nybegynder
17. juli 2001 - 15:27 #8
Er du sikker på at den genererer forskellige tal for hver record i MySql
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:28 #9
carpediem:> HELT sikker ..

1) Det var vist erikjacobsen der svarede på mit spm. om det engang
2) Jeg får en vilkårlig post hver gang ..
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:33 #10
hæ hæ ..

http://www.hrz.uni-wuppertal.de/dienste/software/statistik/sir/HELP/sql/function/standard.htm

ANSI SQL standarden siger at rnd() afrunder et tal ;o)
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 15:59 #11
Kan det virkeligt passe jeg må en tur på www.experts-exchange.com ?
Avatar billede carpediem Nybegynder
17. juli 2001 - 16:02 #12
Jeg kan ikke hitte ud af det, men jeg bruger selv en anden og lidt mere indviklet metode. Men da den er mere indviklet ville det da være fedt, hvis det du skriver her kan lade sig gøre. Jeg vil gerne høre hvis du finder ud af det. Her er den metode jeg bruger:

Set rs = Server.CreateObject(\"ADODB.Recordset\")
sql = \"SELECT count(*) as Found FROM Persons
rs.Open sql, conn, 3, 3
If rs(\"Found\") <> 0 Then
  Ialt = rs(\"Found\")
  rs.Close
  Sql = \"Select * FROM Persons\"
  rs.Open sql, conn, 3, 3
  Randomize
  RandNum = Int(Rnd * Ialt) + 1
  rs.MoveFirst
  For i = 1 to RandNum - 1
    rs.MoveNext
  Next
  Og så alt det du vil gøre med den record
End If
Avatar billede carpediem Nybegynder
17. juli 2001 - 16:09 #13
Ha. Jeg fandt en løsning.

SELECT top 1 ID FROM Persons
ORDER BY RAND((DATEPART(ms,getdate()) * ID) * 1000)
Avatar billede netsrac Praktikant
17. juli 2001 - 16:16 #14
carpediem >> Respekt.
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 16:16 #15
rand() eksisterer ikke i Access!

Og det første (meget rodet om jeg må sige) har jeg selv brugt før jeg fik denne her af vide til mySQL ...
Avatar billede carpediem Nybegynder
17. juli 2001 - 16:17 #16
Jeg har kun testet det i MS Sql
Avatar billede carpediem Nybegynder
17. juli 2001 - 16:18 #17
Hvad med rnd. Eksisterer den i Access, hvad egentlig med datepart? Jeg kan intet huske fra mine Access dage
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 16:19 #18
carpediem:> RND() afrunder :-(

Microsoft JET Database Engine error \'80040e14\'

Undefined function \'RAND\' in expression.

/tdaugaard.dk/projects/hotornot-mdb/inc_system.asp, line 164
Avatar billede carpediem Nybegynder
17. juli 2001 - 16:27 #19
tdaugaard. Jeg tror ikke på rand afrunder. Men nu har jeg en der virker i Access. Problemet med Access er at den ikke laver forskellige random numre medmindre man tvinger den med et tal fra tabellen. Men her er løsningen:

SELECT TOP 1 ID FROM Persons ORDER BY Rnd(ID)
Avatar billede carpediem Nybegynder
17. juli 2001 - 16:28 #20
UPS>> Skulle være: Jeg tror ikke på rnd afrunder
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 16:34 #21
carpediem:> hmm .. ANSI SQL siger rnd() afrunder men det er jo heller ikk altid at den bliver fulgt .. jeg prøver lige ..
Avatar billede tdaugaard Nybegynder
17. juli 2001 - 16:37 #22
Det ser ud til at virke .. nu har jeg kun een post i min tabel nu *gg* men jeg håber på at den virker :-)
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