Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: henfoni am Juni 21, 2012, 16:49:47

Titel: Ergebnis von Recordset.Addnew
Beitrag von: henfoni am Juni 21, 2012, 16:49:47
Moin,

habe folgendes Problem: Ich füge neue Datensätze in eine Tabelle, in der Tabelle sind 3 Pflichteintraungsfelder.
    With CurrentDb().OpenRecordset("Land", dbOpenDynaset, dbAppendOnly)
        .AddNew
        !Land_ID = cboLand
        !Waehrung_ID = cboWaehrung
        !Kurzbeschreibung = txtKurzbeschreibung
        .Update
    End With

Klappt auch alles gut. Nur wenn ich die Kombo bzw. Textfelder leerlasse, dann müsste doch eigentlich eine Fehlermeldung beim Addnew-Versuch aufpoppen oder? Es passiert aber gar nix, es wird kein Datensatz angelegt und es kommt auch keine Fehlermeldung.
Wie kann ich (auf einfache Weise) prüfen, ob der Addnew-Versuch geklappt hat?

Danke und Gruß
Titel: Re: Ergebnis von Recordset.Addnew
Beitrag von: MzKlMu am Juni 21, 2012, 16:56:02
Hallo,
Du programmierst zu viel. Um Datensätze in eine Tabelle zu schreiben, braucht es keinen Code, keinen Buchstaben. Das kann Access standardmäßig besser als Du. Da nimmt man ein an die Tabelle/Abfrage gebundenes Formular und fertig.
Im Formular überwacht man auch die Pflichtfelder und lässt das Verlassen des Formular ohne die Pflichtfelder erst gar nicht zu.

Noch ein guter Rat, kümmere Dich erst mal ums Datenmodell, siehe Dein anderes Thema.
Du läufst Gefahr, dass die ganzen Formulare/Berichte für die Katz sind, die Du bis jetzt gemacht hast, wenn das datenmodell angepasst werden muss.
Titel: Re: Ergebnis von Recordset.Addnew
Beitrag von: henfoni am Juni 21, 2012, 17:01:30
Hey,

danke für deine Hinweise. Also zum Reinen Befüllen der Datenbank sollte ich immer gebundene Formulare nehmen?

Mit dem Datenmodell hat ich mir eigentlich schon ganz gut meine Gedanken gemacht (dachte ich zumindest).

Dann versuch ich jetzt mal das Befüllen mit gebundenen Formularen :) dank dir
Titel: Re: Ergebnis von Recordset.Addnew
Beitrag von: MzKlMu am Juni 21, 2012, 17:04:05
Hallo,
ich habe noch nie ungebundene Formular/Berichte verwendet. Warum das Rad noch mal erfinden. Das macht Access serienmäßig besser wie Du.
Titel: Re: Ergebnis von Recordset.Addnew
Beitrag von: database am Juni 22, 2012, 10:54:48
Hallo,

bitte die Hinweise von MzKlMu trotzdem sehr ernst nehmen!

Wenn du auf fehlende Daten beim Anfügen eines Datensatzes per VBA reagieren willst, musst du deren Vorhandensein prüfen.
In etwa so:


If Not IsNull(Me.cboLand) And Not IsNull(Me.cboWaehrung) And Me.txtKurzbeschreibung <> "" Then
    With CurrentDb().OpenRecordset("Land", dbOpenDynaset, dbAppendOnly)
        .AddNew
        !Land_ID = cboLand
        !Waehrung_ID = cboWaehrung
        !Kurzbeschreibung = txtKurzbeschreibung
        .Update
    End With
Else
    MsgBox "Es wurden nicht alle benötigten Daten eingegeben!", vbExclamation, "Fehlende Daten"
End If


HTH