Sodele, ich hab das jetzt so gel�st (nicht sch�n, aber es funktioniert):

Ich habe 4 Bilder, die in der Datenbank stehen. Die Datenbank besteht aus 4
Feldern:
 - Bild: Da steht der Name des Bildes drin (Textfeld)
 - Datum: Das Datum, an dem das Bild zum ersten mal angezeigt wird
(Datumsfeld)
 - Ablauf: Das Datum, ab dem das Bild nicht mehr angezeigt werden soll (also
14 Tage sp�ter) (Datumsfeld)
 - Anzeige: Gibt an, ob der Ablauf erreicht ist (true/false Feld)

Als erstes erstelle ich dann mal die Verbindung zur Datenbank:

---Code Anfang---
strConnection = "Driver={Microsoft Access Driver (*.mdb)};DBQ="
strConnection = strConnection & Server.MapPath("bilder2.mdb")
strConnection = strConnection & ";DriverId=25;FIL=MS
Access;MaxBufferSize=512;PageTimeout=5;"

Set conn = CreateObject("ADODB.Connection")
conn.Open strConnection
Set rs = CreateObject ("ADODB.Recordset")


rs.Cursortype = 1
rs.Locktype = 3
---Code Ende---

Dann w�hle ich den ersten Datensatz, in dem das Feld Anzeige auf true ist.
Also das erste Bild, das angezeigt werden soll:

---Code Anfang---
strSQL = "SELECT TOP 1 * FROM BILDER WHERE Anzeige = true"
rs.Open strSQL, Conn, adOpenStatic
---Code Ende---

Und jetzt wird's ein bi�chen kompliziert. Im n�chsten Schritt �berpr�fe ich,
ob �berhaupt Datens�tze, die dem Auswahlkriterium entsprechen vorhanden
sind:

---Code Anfang---
IF rs.EOF THEN
        Response.Write "Keine Bilder mehr zum Anzeigen"
ELSE
        Do until rs.EOF = true
---Code Ende---

Dann mu� ich abfragen, ob es zu diesem Datensatz schon ein Ablaufdatum und
das Datum der erstmaligen Anzeige gibt:

---Code Anfang---
IF rs("Datum") <> "" OR rs("Ablauf") <> "" THEN
        Response.Write "<IMG SRC='" & rs("bild") & ".jpg'><BR>"
---Code Ende---

Wenn ein Datum vorhanden ist, soll er das Bild anzeigen. Aber nur, wenn
folgende Bedingung auch erf�llt ist:

---Code Anfang---
IF CDate(rs("Ablauf")) <= Date() THEN
        rs.fields("Anzeige") = false
END IF
---Code Ende---

Wenn also das Ablaufdatum kleiner oder gleich dem jetztigen Datum ist, soll
das Bild in Zukunft nicht mehr angezeigt werden. D.h. der Wert im Feld
"Anzeige" wird auf false gesetzt.

So, wenn jetzt aber nichts im Feld "Datum" und nichts im Feld "Ablauf"
steht, soll er eben diese reinschreiben. Dazu mu� ich das heutige Datum
zuerst auseinandernehmen (also in Jahr, Monat, Tag aufteilen) um 14 Tage
addieren zu k�nnen. Geht folgenderma�en:

---Code Anfang---
strDatum = Date()

strJahr = DatePart("yyyy", strDatum)
strMonat = DatePart("m", strDatum)
strTag = DatePart("d", strDatum)

strDate14 = dateserial(strJahr, strMonat, strTag + 14) 'Hier werden die 14
Tage addiert
---Code Ende---

Die zwei erhaltenen Werte kommen jetzt noch in die Datenbank und das Bild
soll angezeigt werden:

---Code Anfang---
rs.fields("Datum") = Date()
rs.fields("Ablauf") = strDate14
rs.Update
Response.Write "<IMG SRC='" & rs("bild") & ".jpg'><BR>"
---Code Ende---

Tja, zum Schlu� die ganzen Schleifen zu, und alle offenen Verbindungen
schlie�en:

---Code Anfang---
        END IF

 rs.MoveNext
 Loop
END IF

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
---Code Ende---


Jetzt verst�ndlicher? Wenn's Fragen gibt, schreib einfach. Versprich mir
aber, da� Du den Code nicht einfach kopierst, sondern versuchst, ihn zu
verstehen. Sonst war meine ganze Arbeit umsonst.

Gr��e

Stefan


| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

Antwort per Email an