Tom: Problem mit ASP und Access

Beitrag lesen

Hallo Viktor

Nicht ganz. Das Formular ist leer. Es findet nur ein Eintrag in eine Datenbank statt. Kein Update oder sonstiges.

Gut.
Dann entfällt Schritt 1, mit dem Du Daten aus der DB ausliest. An dessen Stelle kommt ein normales HTML-Formular zum Einsatz.

Puh, das sind aber ein haufen. Das soll eine Anmeldung für einen Kongress werden, bei dem die Leute auch noch Abstracts eintragen können. Das sind so ca. 15-20 Felder. Deshalb isses mir lieber mit dem *.

Je nach ausgewähltem Datensatz soll die Listbox mit 'Frau' oder 'Herr' vorbelegt sein.
Dies realisierst Du mit folgendem ASP-Code (VBScript):

In dem Script gehst Du davon aus, das die Felder vorbelegt sind, oder? Wie gesagt, die Leute sollen sich nur eintragen. Nach dem Eintrag wird eine Seite mit den eingetragenem erstellt. Das macht eigentlich nur Sinn, wenn man diesen Eintrag noch ändern kann. Vielleicht werf ich das auch raus.

Im 2. Schritt wirst Du dann doch die Daten in die DB abfüllen und anschliessend den Datensatz (oder die Formularfelder) als Feedback an den Benutzer zurückgeben.
Denkbar ist auch die Variante, die Formulardaten zur Bestätigung an den Benutzer zurückzugeben, dabei das Update-Statement schon vorbereitet in einem hidden-Field mitzugeben und bei Bestätigung durch den Benutzer im 3. Schritt (= 3. ASP-Skript) die Daten in die DB zu schreiben.

Die gepostete Seite ist die ASP-Seite, d.h. Die Formulardaten werden an diese Seite übertragen und von dort werden Sie in die Datenbank geschrieben.

Das funktioniert ja auch, das ist ja nicht das Problem. Das Problem war ja nur, das die AnredeID angezeigt wird und nicht die Anrede.
Ich übergebe über das formular die ID an AnredeID. Möchte aber die Anrede anzeigen lassen, also nach dem Eintrag.
Natürlich könnte man die ID beim Auslesen und Herr/Frau wandeln lassen, so nach der Art

if ID = 1 then Frau else Mann oder so ähnlich, aber geht es nicht allein über SELECT ..... ??

Richtig. Dazu muss etwas ASP-Code in die Seite rein:
<%
   if AnredeID=1 then
      response.write "Frau"
   else
      response.write "Herr"
   end if
%>

Oder besser, also nicht "hard gecoded":

<%
   Set rs = Server.CreateObject("ADODB.RecordSet")
   SQL = "SELECT Anrede FROM T_Anrede WHERE AnredeID=" & AnredeID
   rs.open SQL, db, adOpenDynamic
   response.write  rs("Anrede")
%>

Ich hoffe, damit Deinem Problem näher gekommen zu sein.

Grüsse
Tom