stefan: if then Anweisung, Scriptprobleme.

hallo,
ich habe ein Formular, bei dem der User ein Datumswert eingeben kann oder wahlweise einen Textwert. Der gewählte Wert wird in eine Datenbank gesendet. Nun soll, wenn der Textwert gewählt wird, der Datumswert unterdrückt werden, da die Datenbank einen Datumswert erwartet.
Das möchte ich mit einer if then Anweisung machen. Aber es klappt nicht.
wer kann helfen...?
vielen Dank und viele Grüße
stefan

hier der Formularauszug:
<td>ab dem<br><input type="text" name="ab" size="2" onChange="numerisch(this)">
<input type="text" name="ab" size="2" onChange="numerisch(this)">
<input type="text" name="ab" size="4" onChange="numerisch(this)">
   bzw.<br>Tag Monat Jahr</td>
<td>
<select name="so"><option value="ab sofort">absofort</option>
<option value="nach Vereinbarung">nach Vereinbarung</option>
<option value="laufend gesucht">laufend gesucht</option>
</select>
</td>

hier das Script:
<%
lngdatum=Request.Form("datum")
stef=Request.Form("Anbieter")
Partner=Request.Form("partner")
Anschrift=Request.Form("Strasse")
Stadt=Request.Form("Stadt")
Region=Request.Form("Region")
lngTelefon=Request.Form("Telefon")
Mail=Request.Form("Mail")
Internet=Request.Form("Internet")
Taetigkeit=Request.Form("Taetigkeit")
lngab=Request.Form("ab")             'Datumswert
so=Request.Form("so")                'Textwert
Firmenprofil=Request.Form("Firmenprofil")
Jobprofil=Request.Form("Jobprofil")
Anforderungen=Request.Form("Anforderungen")
if not Request.Form.Count=0 then
ok = true
if ok then
if Request.Form("ab")="" then
ok = true
if ok then
Set Conn = Server.CreateObject("ADODB.Connection")
strcon = "driver={Microsoft Access-Treiber (*.mdb)};" & _
          "dbq=" & Server.MapPath("db1a.mdb")
Conn.Open strcon,"",""
Set rs = Server.CreateObject("ADODB.Recordset")
 sql = "INSERT INTO angebote (Anbieter, Ansprechpartner, Strasse, Stadt, Region, Telefon, Mail, Internet, Taetigkeit, [ab dem], ab, Firmenprofil, Jobprofil, Anforderungen, datum) VALUES ("
sql = sql & "'" & stef & "',"
sql = sql & "'" & Partner & "',"
sql = sql & "'" & Anschrift & "',"
sql = sql & "'" & Stadt & "',"
sql = sql & "'" & Region & "',"
sql = sql & "'" & lngtelefon & "',"
sql = sql & "'" & mail & "',"
sql = sql & "'" & Internet & "',"
sql = sql & "'" & Taetigkeit & "',"
sql = sql & "'" & lngab & "',"
sql = sql & "'" & so & "',"
sql = sql & "'" & firmenprofil & "',"
sql = sql & "'" & jobprofil & "',"
sql = sql & "'" & Anforderungen & "',"
sql = sql & "'" & lngdatum & "');"
 Set rs = Conn.execute(sql)
Conn.close
Set Conn = Nothing
end if
end if
end if
end if
%>

  1. Aloha,

    hier der Formularauszug:
    <td>ab dem<br><input type="text" name="ab" size="2" onChange="numerisch(this)">
    <input type="text" name="ab" size="2" onChange="numerisch(this)">
    <input type="text" name="ab" size="4" onChange="numerisch(this)">
       bzw.<br>Tag Monat Jahr</td>
    <td>
    <select name="so"><option value="ab sofort">absofort</option>
    <option value="nach Vereinbarung">nach Vereinbarung</option>
    <option value="laufend gesucht">laufend gesucht</option>
    </select>
    </td>

    Mach nen leeren Option Tag dazu

    <select name="so">
    <option value="">---</option>
    <option value="ab sofort">absofort</option>
    <option value="nach Vereinbarung">nach Vereinbarung</option>
    <option value="laufend gesucht">laufend gesucht</option>
    </select>

    und dann :

    if request("so") <> "" then
          lngdatum = request("so")
    else
          lngdatum = request("ab")(1) & "." & request("ab")(2) & "." & request("ab")(3)
    end if
    sql = "..."
    [Restscript]

    Jenny

    1. Aloha,

      und dann :

      if request("so") <> "" then
           lngdatum  = request("so")
      else
            lngdatum = request("ab")(1) & "." & request("ab")(2) & "." & request("ab")(3)
      end if
      sql = "..."
      [Restscript]

      Jenny

      huhu Jenny,
      vielen Dank für Deine Antwort.
      Ich habe immer noch zwei Probleme:
      1. lngdatum ist zwar auch ein Datumswert(ich übertrage damit das aktuelle Datum), aber bei meinem Problem nicht relevant.
       lngab überträgt den Datumswert, den der Besucher eingibt(nicht den aktuellen (lngdatum), sondern irgendeinen). Wenn lngab nicht ausgefüllt wird, bekomme ich die Fehlermeldung:
      "Datentypen in Kriterienausdruck unverträglich",
      weil das Datenbankfeld als Datum definiert ist.
      Das heißt, ich möchte es sozusagen unterdrücken, wenn es nicht ausgefüllt worden ist.
      so?!:
      if request("so") <> "" then
            lngab = request("so")
      else
            lngab = request("ab")(1) & "." & request("ab")(2) & "." & request("ab")(3)
      end if
      2. ähämm:
      ich weiss nicht genau, an welcher Stelle ich Dein Script einfügen muss.
      beste Grüsse
      stefan

      1. Alohahe again,

        Ich habe immer noch zwei Probleme:

        1. lngdatum ist zwar auch ein Datumswert(ich übertrage damit das aktuelle Datum), aber bei meinem Problem nicht relevant.

        Schön für dich :)

        lngab überträgt den Datumswert, den der Besucher eingibt(nicht den aktuellen (lngdatum), sondern irgendeinen). Wenn lngab nicht ausgefüllt wird, bekomme ich die Fehlermeldung:

        Ob du jetzt request("lngdatum") oder request("lngab") nehmen musst ist mir persönlich Jacke wie Rock.

        "Datentypen in Kriterienausdruck unverträglich",
        weil das Datenbankfeld als Datum definiert ist.
        Das heißt, ich möchte es sozusagen unterdrücken, wenn es nicht ausgefüllt worden ist.
        so?!:

        if request("so") <> "" then
              lngab = request("so")
        else
              lngab = request("ab")(1) & "." & request("ab")(2) & "." & request("ab")(3)
        end if

        1. ähämm:
          ich weiss nicht genau, an welcher Stelle ich Dein Script einfügen muss.

        <td>ab dem<br><input type="text" name="ab" size="2" onChange="numerisch(this)">
        <input type="text" name="ab" size="2" onChange="numerisch(this)">
        <input type="text" name="ab" size="4" onChange="numerisch(this)">
           bzw.<br>Tag Monat Jahr</td>
        <td>
        <select name="so">
        <option value="">---</option>
        <option value="ab sofort">absofort</option>
        <option value="nach Vereinbarung">nach Vereinbarung</option>
        <option value="laufend gesucht">laufend gesucht</option>
        </select>
        </td>

        <%
        lngdatum=Request.Form("datum")
        stef=Request.Form("Anbieter")
        Partner=Request.Form("partner")
        Anschrift=Request.Form("Strasse")
        Stadt=Request.Form("Stadt")
        Region=Request.Form("Region")
        lngTelefon=Request.Form("Telefon")
        Mail=Request.Form("Mail")
        Internet=Request.Form("Internet")
        Taetigkeit=Request.Form("Taetigkeit")

        if request("so") <> "" then
               lngab = request("so")
        else
               lngab = request("ab")(1) & "." & request("ab")(2) & "." & request("ab")(3)
        end if

        Firmenprofil=Request.Form("Firmenprofil")
        Jobprofil=Request.Form("Jobprofil")
        Anforderungen=Request.Form("Anforderungen")

        Set Conn = Server.CreateObject("ADODB.Connection")
        strcon = "driver={Microsoft Access-Treiber (*.mdb)};" & _
                  "dbq=" & Server.MapPath("db1a.mdb")
        Conn.Open strcon,"",""
        Set rs = Server.CreateObject("ADODB.Recordset")

        ' Datum wurde im TT/MM/JJJJ Format eingegeben
        ' Datum im TT/MM/JJJJ ins "ab dem" Feld (?)

        if isdate(lngab) then

        sql = "INSERT INTO angebote (Anbieter, Ansprechpartner, Strasse, Stadt, Region, Telefon, Mail, Internet, Taetigkeit, [ab dem], Firmenprofil, Jobprofil, Anforderungen, datum) VALUES ("

        else

        ' "Datum" per Dropdownliste
        ' Dropdownauswahl ins ab Feld

        sql = "INSERT INTO angebote (Anbieter, Ansprechpartner, Strasse, Stadt, Region, Telefon, Mail, Internet, Taetigkeit, ab, Firmenprofil, Jobprofil, Anforderungen, datum) VALUES ("

        end if

        sql = sql & "'" & stef & "',"
        sql = sql & "'" & Partner & "',"
        sql = sql & "'" & Anschrift & "',"
        sql = sql & "'" & Stadt & "',"
        sql = sql & "'" & Region & "',"
        sql = sql & "'" & lngtelefon & "',"
        sql = sql & "'" & mail & "',"
        sql = sql & "'" & Internet & "',"
        sql = sql & "'" & Taetigkeit & "',"
        sql = sql & "'" & lngab & "',"
        sql = sql & "'" & so & "',"
        sql = sql & "'" & firmenprofil & "',"
        sql = sql & "'" & jobprofil & "',"
        sql = sql & "'" & Anforderungen & "',"
        sql = sql & "'" & lngdatum & "');"
         Set rs = Conn.execute(sql)
        Conn.close
        Set Conn = Nothing

        Noch Fragen? :)

        Jenny

        1. huhu jenny,
          bei mir funktionierts jetzt so:
          Datenbankfeld geändert von Datum auf Text und Script sieht so aus:
          vielen Dank
          allerbeste Grüße
          stefan
          <%
          lngdatum=Request.Form("datum")
          stef=Request.Form("Anbieter")
          Partner=Request.Form("partner")
          Anschrift=Request.Form("Strasse")
          Stadt=Request.Form("Stadt")
          Region=Request.Form("Region")
          lngTelefon=Request.Form("Telefon")
          Mail=Request.Form("Mail")
          Internet=Request.Form("Internet")
          Taetigkeit=Request.Form("Taetigkeit")
          lngab=Request.Form("ab")
          so=Request.Form("so")
          Firmenprofil=Request.Form("Firmenprofil")
          Jobprofil=Request.Form("Jobprofil")
          Anforderungen=Request.Form("Anforderungen")
          if not Request.Form.Count=0 then
          ok = true
          if ok then
          Set Conn = Server.CreateObject("ADODB.Connection")
          strcon = "driver={Microsoft Access-Treiber (*.mdb)};" & _
                    "dbq=" & Server.MapPath("db1a.mdb")
          Conn.Open strcon,"",""
          Set rs = Server.CreateObject("ADODB.Recordset")
          if request("so") <> "" then
                lngab = request("so")
          else
                lngab = request("ab")(1) & "." & request("ab")(2) & "." & request("ab")(3)
          end if
           sql = "INSERT INTO angebote (Anbieter, Ansprechpartner, Strasse, Stadt, Region, Telefon, Mail, Internet, Taetigkeit, [ab dem], ab, Firmenprofil, Jobprofil, Anforderungen, datum) VALUES ("
          sql = sql & "'" & stef & "',"
          sql = sql & "'" & Partner & "',"
          sql = sql & "'" & Anschrift & "',"
          sql = sql & "'" & Stadt & "',"
          sql = sql & "'" & Region & "',"
          sql = sql & "'" & lngtelefon & "',"
          sql = sql & "'" & mail & "',"
          sql = sql & "'" & Internet & "',"
          sql = sql & "'" & Taetigkeit & "',"
          sql = sql & "'" & lngab & "',"
          sql = sql & "'" & so & "',"
          sql = sql & "'" & firmenprofil & "',"
          sql = sql & "'" & jobprofil & "',"
          sql = sql & "'" & Anforderungen & "',"
          sql = sql & "'" & lngdatum & "');"
           Set rs = Conn.execute(sql)
          Conn.close
          Set Conn = Nothing
          end if
          end if
          %>

          1. huhu jenny,
            bei mir funktionierts jetzt so:
            Datenbankfeld geändert von Datum auf Text und Script sieht so aus:
            vielen Dank
            allerbeste Grüße
            stefan

            Du machst es dir gerne schwerer als es ist, oder?
            Aber solange du glücklich bist... ;)

            Jenny

            1. huhu jenny,
              bei mir funktionierts jetzt so:
              Datenbankfeld geändert von Datum auf Text und Script sieht so aus:
              vielen Dank
              allerbeste Grüße
              stefan

              Du machst es dir gerne schwerer als es ist, oder?
              Aber solange du glücklich bist... ;)

              Jenny

              solange Du mir hilfst,
              auf jeden Fall.
              bis denne & noch mal danke
              stefan