PDA

Vollständige Version anzeigen : Datensatz neu anlegen


marfi
02.02.2001, 12:15
Hallo Access User

Mache gerade ein Formular das auf eine Tabelle zugreift. Mit Hilfe des Assistenten habe ich eine Ereignisprozedur in das Formalar eingefügt, dass beim Öffnen sofort ein neuer Datensatz angelegt wird. Gebe ich aber keine Daten ein und verlasse das Formular über einen Button (doCmd.Close) wird ein leerer Datensatz in die Tabelle geschrieben. Wie lässt sich das vermeiden. Wer hat einen Rat??

Grüße
marco

standby
02.02.2001, 21:07
Hallo Marco

definiere in der Tabelle ein Feld mit "Eingabe erforderlich" Ja

Wird nicht's eingegeben, verweigert Access das Speichern

Markus

marfi
04.02.2001, 09:03
Hallo Markus,

danke für den Tip, was aber mache ich wenn ich das Formular verlassen will ohne dass die Daten gespeichert werden sollen?

marco

meiss
04.02.2001, 14:46
eine genaue antwort auf deine frage hab ich auch nicht, aber eine art Notlösung :-)

mach doch einfach ne kleine löschabfrage und starte sie automatisch, sobald das formular geschloßen wurde.

mfg olaf

karl
04.02.2001, 19:03
hi marco

Einfach "Rückgängig machen" vor dem Schließen: Me.Undo (bzw. Form.Undo) entfernt den neuen Datensatz wieder. Warum legst Du eigentlich grundsätzlich beim Öffnen einen neunen Datensatz an? In Access hat das diverse Nachteile. Wenn Du z.B. in Tabellen Autowerte verwendest, wird der Zähler bei jedem Öffnen des Forms hochgezählt, weil ein DS generiert wird. Wird der Datensatz dann nicht genutzt (.Undo), entstehen Lücken im Zähler, was wenig elegant ist. Versuche folgendes:

-Button anlegen
-Nenne ihn z.B. cmdNeu
-Erzeuge eine Prozedur "OnClick":

Private Sub cmdNeu_Click()
DoCmd.GotoRecord , , acNewRec 'DS erzeugen
End Sub

Erst beim Klicken auf den Button wird ein neuer Datensatz erzeugt. Ein "Rückgängig machen" Button wird im übrigen wie folgt erzeugt:

-Button anlegen
-Nenne ihn z.B. cmdUndo
-Erzeuge eine Prozedur "OnClick":

Private Sub cmdUndo_Click()
Me.Undo 'Änderung verwerfen
End Sub


gruß
karl

marfi
07.02.2001, 06:57
Hallo Karl,

diese Lösung war genial, aber auch vielen Dank für alle anderen Beiträge.

Beim Öffnen des Formulars gehe ich auf den letzten DS und bei Bedarf klicke ich auf den empfohlenen Button der einen neuen DS generiert, den ich mit einem Undo Button wieder rückgängig machen kann.

Ich bin leider noch Anfänger und muß mich leider noch mit den einfachsten Dingen abquälen, bis ich etwas Erfahrung habe. Mache eine Rechnungseingabe-Formular und habe einige Buttons ins Formular gesetzt. Die Buttons erscheinen immer nur, wenn sie auch wirklich notwendig sind ( visible = false, visible = true). Da kann man ganz schön ins schwitzen kommen bis dan klappt.

Vielleicht weiß ja einer eine Regel oder eine Empfehlung wie man da vorgeht, man muß doch nicht immer das Rad neu erfinden, oder doch?

marco