Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

insert into fehlerhaft

Begonnen von Lenee, Juli 15, 2013, 20:06:25

⏪ vorheriges - nächstes ⏩

Lenee

Hallo liebe gemeinde,

folgendes problem, ich habe eine insert into anweisung die wenn ich im feld Lieferdatum, Abruf und Bestellschein 0 ist wenn nichts drin steht , steht jedoch ein wert drin soll dieser übernommen werden.
lasse ich die benannten felder leer funktioniert das auch nur wenn ich die werte eintrage funktioniert es nicht mehr und er schreibt "Syntaxfehler 3134"

hier der code Private Sub Uebernahme()
On Error GoTo Er
Dim I As Long, itm As Variant, stSQL As String
Dim strBDat As String, strLDat As String, strcDat As String

   
With Me!lstArtikel
   If .ItemsSelected.Count > 0 Then
      For Each itm In .ItemsSelected
        If IsNull(Me!txtBestellschein) Then
strBDat = "NULL"
End If

If IsNull(Me!txtLieferdatum) Then
strLDat = "NULL"
Else
strLDat = Format(Me!txtLieferdatum, "\#yyyy-mm-dd\#")
End If

If IsNull(Me!txtAbruf) Then
strcDat = "NULL"
End If

       
               
                stSQL = "INSERT INTO tblBestellung (Artikelname, Menge, Bestelldatum, Lieferdatum, Abruf, Bestellscheinnummer) VALUES (" & .ItemData(itm) & ", " & Me.txtMenge & ", " & Format(Me.txtBestelldatum, "\#mm\/dd\/yyyy\#") & ", " & strLDat & ", " & strcDat & ", " & strBDat & ")"
            CurrentDb.Execute stSQL, dbFailOnError
        Next itm
    Else: MsgBox "Keine Artikel ausgewählt."
    End If
End With

Me!lstBestellung.Requery

ex:
Exit Sub

Er:
If Err.Number <> 3022 Then
MsgBox Err.Number & " " & Err.Description
End If
Resume ex
End Sub


lasse ich die NZ funktion weg funktioniert es aber ich muss dann ein wert eintragen was ich aber nicht immer kann/will

DF6GL

Hallo,

wo ist die NZ-Funktion?


Warum sind die If IsNull-Bedingungen innerhalb der For each itm... Schleife?


Sind strBDat und strCDat inhaltlich auch Datum-Angaben wie strLDat oder ist das Text? Bei Datum würden die ISO/USA-Formatierung des Datums fehlen ,bei Text die  einschließenden Hochkommata im SQL-String fehlen:

.....& ", " & strLDat & ", '" & strcDat & "', '" & strBDat & "')"

Lenee

Hallo und danke für die antwort,

strBDat  ist eine Zahl und strCDat ist ein Text

bei strBDat fehlt dann auch sieherlich irgend ein zeichen das er die als zahl erkennt?

und bei strCDat schreibt er mir wenn ich es leer lasse "NULL" rein und wenn ich einen Text rein schreibe bleibt das feld leer :-/
es sollte aber bei keiner dateneingabe leer bleiben oder halt dein eingeben txt anzeigen.

DF6GL

Hallo,

dann so:

.
If IsNull(Me!txtAbruf)
Then
strcDat = ""
End If
.
.....& ", " & strLDat & ", '" & strcDat & "', " & strBDat & ")"

Lenee

huhu,

hab nur teilweise erfolg, wenn ich

es so schreibe If IsNull(Me!txtAbruf) Then
strcDat = ""
End If


dann hab ich wenn ich das Textfeld leer lasse auch in der Tabelle nichts stehn, schreibe ich aber einen Text ins Textfeld bleibt auch das Feld in der Tabelle leer hingegen wenn ich If IsNull(Me!txtAbruf) Then
strcDat = "NULL"
End If

hab schreibt er mir wenn es leer is zumindest den Text "Null" rein...


beim txtBestellschein muss auch ein fehler sein, sobald ich eine zahl in das txtBestellschein schreibe kommt die fehlermeldung wieder.

um es etwas zu veranschaulichen hab ich mal ein bild mit angehangen




[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

es fehlt ja noch die Hälfte:

If IsNull(Me!txtAbruf) Then
strcDat = "NULL"
Else
strcDat =Me!txtAbruf

End If

Lenee

hi,

hat super funktioniert, schön blöd wenn man zu doof zum abschreiben ist  ;D

jetzt was anderes, ich kann nicht direkt meine bestellscheine auflisten sonder sortiere sie mir nach datum und bestellnummer um darus dann ein Bericht zu fertigen.

wenn du dir das bild oben anschaust siehst du ganz unten ein listen feld welches die daten der tblBestellung anzeigt, gibt es die möglichkeit das dieses listenfeld nur die artikel anzeigt die ich gerade bestellt habe?
ich habe überlegt ob man nicht die  tblbestellung welche ja nur die Positionen der artikel beinhaltet einer weiteren tblBestellscheine zuordnet sodas wenn ich mir diese tabelle anzeigen lasse, alle bestellscheine sehe und wenn ich diesen öffne mir die darin befindlichen artikel anzeigt

das würde heißen wenn ich auf neuen Bestellschein klicke sollte automatisch eine neue BestellscheinID angelegt werden und welche dann der zu Bestellenden artikel zugeordnet und im Listenfeld angezeigt wird.