Avatar billede hyperactive Nybegynder
17. januar 2001 - 09:37 Der er 6 kommentarer og
1 løsning

Tilfældig post fra Access database

Jeg er i gang med en online shop, som er bygget op over en produktdatabase lavet i Access 2000.

På forsiden vil jeg gerne vise 2-3 produkter, som tilfældigt udvælges fra databasen, således at produkterne på forsiden skifter fra gang til gang.

How????+
Avatar billede tdaugaard Nybegynder
17. januar 2001 - 09:44 #1
Du har sikkert et ID felt der er sat til Autonummerering, ikke ?
Hvis du har det skal du først indlæse ALLE ID\'er i et array, hvorefter du vha. RND udvælger tre ID\'er fra det array. F.eks.

.. db stuff ..

sql = \"SELECT id FROM din_tabel;\"
Set Rs = Conn.Execute(sql)

Dim arrIDs(0)

Do Until Rs.Eof OR Rs.Bof
  arrIDs(UBound(arrIDs)) = Rs(\"ID\")
 
  ReDim Preserve arrIDs(UBound(arrIDs) + 1)
  Rs.MoveNext
Loop

ReDim Preserve arrIDs(UBound(arrIDs) - 1)

Randomize

For Index = 1 To 3 \' find 3 forskellige
  Do
    intIndex = Int(Rnd * UBound(arrIDs))
    strID = arrIDs(intIndex)
  Loop Until strID > \"\"

  sql = \"SELECT * FROM din_tabel WHERE id=\" & strID & \";\"
  Set Rs = Conn.Execute(sql)

  \' .. lav dit udtræk her

  arrIDs(intIndex) = \"\"
Next

.. luk db stuff ..
Avatar billede tdaugaard Nybegynder
17. januar 2001 - 09:44 #2
Ps. Det er skrevet \"i hånden\" dvs. ikke testet!
Avatar billede mkjeldsen Nybegynder
17. januar 2001 - 09:48 #3
Jeg vil anbefale dig at downloade Achart fra følgende adresse:
http://www.asp.dk/download.asp?submode=showparent&parent_id=17
Der er den funktion du ønsker, jeg har selv brugt mange koder fra denne side.
Avatar billede hyperactive Nybegynder
17. januar 2001 - 09:52 #4
Jeg har ikke brugt autonummerering, da jeg har brugt varenummeret som nøglefelt.
Avatar billede tdaugaard Nybegynder
17. januar 2001 - 09:57 #5
okay, så er det meget nemmere:

.. db stuff ..

Randomize

sql = \"SELECT COUNT(*) AS total FROM din_tabel;\" \' tæl antal poster
Set Rs = Conn.Execute(sql)
intCount = CInt(Rs(\"total\"))

sql = \"SELECT * FROM din_tabel;\"
Set Rs = Conn.Execute(sql)

For Index = 1 To 3 \' find 3 forskellige
  intIndex = Int(Rnd * intCount)

  Rs.Move intIndex
  \' .. lav dit udtræk her
Next

.. luk db stuff ..
Avatar billede hyperactive Nybegynder
17. januar 2001 - 09:58 #6
Takker daugaard :o)
Avatar billede tdaugaard Nybegynder
17. januar 2001 - 10:00 #7
Det var så lidt :-)
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