Avatar billede casiodenokia Nybegynder
19. oktober 2003 - 23:11 Der er 8 kommentarer

Random select med kriterie

Hvordan kan man lave en random select med kriterier?

Eksempel :
DB over bøger (ca. 3000), nogen kan vises andre kan ikke -> hvilket er markeret med et true/false felt.

Hvordan kan jeg lave en random select udelukkende i dem med værdien true?
Avatar billede henrik13 Nybegynder
19. oktober 2003 - 23:15 #1
Lav din forespørgsel, og i true/false felt, skriver du i kriterier:
-1 'For true
0  'for Falde
Avatar billede henrik13 Nybegynder
19. oktober 2003 - 23:38 #2
Jeg har opretted en for dig:
SELECT Tabel2.Id, Tabel2.Bøger, Tabel2.Bøgervis
FROM Tabel2
WHERE (((Tabel2.Bøgervis)=-1));
Rettelse til forige:
0  'for False
Avatar billede casiodenokia Nybegynder
20. oktober 2003 - 08:49 #3
Det jeg leder efter er selve query'en
Avatar billede henrik13 Nybegynder
20. oktober 2003 - 08:51 #4
Den forstod jeg ikke, er det knappen til at køre forespørgslen du mener.
Avatar billede henrik13 Nybegynder
20. oktober 2003 - 09:06 #5
Hej,  knappenden den skal se sådan ud i vba:
Private Sub Kommandoknap1_Click()
On Error GoTo Err_Kommandoknap1_Click
Dim stDocName As String
stDocName = "Din forespørgsel"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Kommandoknap1_Click:
Exit Sub

Err_Kommandoknap1_Click:
MsgBox Err.Description
Resume Exit_Kommandoknap1_Click

End Sub
Nu skal du oprette en knap på formularen, rette "Din forespørgsel"
til hvad din hedder.
Avatar billede casiodenokia Nybegynder
20. oktober 2003 - 09:46 #6
Det er "Din forespørgsel" som den "random select med kriterier"  jeg leder efter. Selve SQL strengen.
Avatar billede henrik13 Nybegynder
20. oktober 2003 - 09:51 #7
Den skal du oprette ud fra dine egne data,
Avatar billede casiodenokia Nybegynder
21. oktober 2003 - 10:42 #8
Udgangspunktet er følgende:
Jeg kalder gettextadvert().

Det holder bare ikke i længden, jeg vil have mit SQL kald til at gøre alt for mig. Det dur jo ikke at jeg kalder samme funktion 2.998 gange for at finde en random af de to bøger som er markeret "aktiv" i databasen.

<%
function gettextadvert()
randomize Timer
set bogrs = server.createobject("adodb.recordset")
strSQL = "SELECT * FROM Bog WHERE ID=(SELECT Min(ID) FROM Bog WHERE ID >=(SELECT Round(CDbl(" & Replace(Rnd(),",",".")*Max(ID))) FROM Bog))"
bogrs.open strSQL, DBAnnonceConnect, 3, 3

if bogrs("Aktiv") = true then
  response.write "Noget tekst"
  bogrs.close
  set bogrs = nothing
else
  randomize Timer
  gettextadvert()
end if
end function
%>
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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