Inhalte in Access-Datenbank einfügen

reto

Erfahrenes Mitglied
Hallo, ich füge die Inhalte eines Formulars wie folgt in die Datenbank ein:

SQL = "Update Tabelle Set Feld1 = '"& request ("Feld1") &"'
und so weiter...

Soweit so gut... ich habe aber damit folgende Probleme:

1. Wenn ein Feld leer ist, gibt es einen 500er Serverfehler.
2. Wenn das Feld eine Textarea ist gibt es ebenfalls einer 500er Error.

Kann mir jemand helfen diese beiden Probleme zu lösen?

Danke schon mal im voraus für jede Hilfe.
 
Ich kann probieren dir zu Helfen :)

Bist du sicher das du mit dem UPDATE Befehl einen Eintrag in die DB schreiben willst? Weil mit Update kannst du einen bestehenden Eintrag eben Updaten.

Probier das ganze mal mit INSERT

zu 1: Mach eine abfrage im Sinne von IF Feld = " " THEN nicht schreiben ELSE schreiben
zu 2: Könnte es sein das du versuchst, das Falsche Feld Upzudaten?
 
Danke erstmals für die Antwort!

Sorry, ich will die Datensätz mit Update natürlich aktualisieren, nicht einfügen. Aber beim einfügen (mit Inseret) ist es das gleiche Problem.

Werde es mit der IF Abfrage mal probieren. Wo setze ich diese? Noch im Formular oder vo dem Update?

Ich versuche schon die richtigen Felder zu updaten. Wenn das Feld ausgefüllt ist wird es auch korrekt eingetragen...
 
Die IF Abrfrage musst du machen bevor du die Daten in die DB einträgst.
Also im Prinzip so:

Code:
IF Feld = " " Then
      Response.write "Nichts eingetragen"
    ELSE
      Eintragen in die Datenbank
END IF

zu 2: Kann es sein das die Anzahl der Zeichen über 255 ist?
 
Nochmals danke,
Leider hat die Abfrage nicht geholfen, habe Sie genau so eingebaut und "Feld" auch durch den richtigen Namen ersetzt ;-)

2. Nein, ist kleiner
 
Dann probier mal so:

Code:
<% IF request.form("Feld") = empty THEN
           response.write "Nichts eingetragen"
       Else
           Updaten
%>
So klappts jedenfalls bei mir
 
Hallo reto & Lord-Lance,

1. Prüfung auf Leerzeichen sollte nie so stattfinden:
IF Feld = "" Then
Oder:
IF request.form("Feld") = empty Then
Das Problem dabei ist, daß dies nie so richtig funktioniert. Auf Leerstring prüft man korrekt so:
If len(Feld) = 0 Then
Oder:
If len(Feld) > 0 Then
Das kann auch gekürzt werden:
If len(Feld) Then


2. Die Sache mit den Leeren String:
Was für eine Fehlermeldung wird denn angezeigt? Ohne dies ist eine Lösung schwierig. Aber meine Vermutung geht in Richtung Datenbank und Leere Zeichenfolge. Wenn in einem DB-Text-Feld kein Wert stehen soll, muss dies so in der Datenbank eingestellt werden. Dazu die Tabelle im Entwurfsmodus öffnen, das entsprechende Feld anklicken, unten können noch Feldeigenschaften eingestellt werden.

Dort gibt es "Eingabe erforderlich", das auf "Nein" setzen, "Leerzeichen zulassen" auf "Ja" setzen. Natürlich nur für Access, falls es eine andere DB ist, in der Doku nachsehen.

3. Sonderzeichen
Was passiert eigentlich, wenn der Benutzer ein Hochkomma eingibt? Gibt es da schon eine Behandlung dafür? Wenn nein, dann wird dies ein Fehler erzeugen. Dies sollte als Codierung bei der Update-Anweisung reichen:
Feld = Replace(Feld, "'", "''")
Bei Select-Anweisungen sollte jedoch eine ordentliche Sonderzeichenbehandlung stattfinden.


Und falls das nicht hilft, bitte die Fehlermeldung und etwas mehr Quellcode posten.
 
Zurück