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ß
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.
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
Hallo,
ich habe noch nie ungebundene Formular/Berichte verwendet. Warum das Rad noch mal erfinden. Das macht Access serienmäßig besser wie Du.
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