if then Anweisung, Scriptprobleme.
stefan
- asp.net
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
%>
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
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
Alohahe again,
Ich habe immer noch zwei Probleme:
- 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
- ä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
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
%>
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
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