Zum Inhalt springen

Erst beim Speichern Daten in Tabellen übernehmen


fisheye

Empfohlene Beiträge

Guten Morgen,

ich habe da leider ein Problem mt meiner Access Datenbank. Ich habe fertige Tabellen und ein fertiges Formular. Diese sind noch nicht miteinander verknüpft. In diesem Formular sind Textfelder, die vom Benutzer ausgefüllt werden müssen. Wenn dann der Benutzer fertig ist und auf einen gewissen Speicherbutton im Formular drückt, sollen die Daten der Textfelder in den einzelnen Tabellen abgespeichert werden. Wie kann ich es im Visual Basic Code schreiben, dass erst beim Drücken des Speicherbuttons die Daten in die entsprechende Tabellen geschrieben werden? Und wie kann ich dies alles verknüpfen? Muss ich für jedes Textfeld einen Code schreiben und wie funktioniert es dann, dass die Daten auch wirklich erst beim Speichern in die Tabellen geschrieben werden?

Hoffe habe mich einigermaßen klar ausgedrückt :)

Wäre für Hilfe dankbar.

Ciao fishy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, ich glaube, Dich verstanden zu haben.

Zunächsteinmal gehe auf die Eigenschaften des "Speichern"-Buttons und wähle bei "Ereignis" beim Ereignis "Beim Klicken" die Ereignisprozedur aus. Dann drücke die ...-Taste.

So ähnlich müßte der Code aussehen:


Private Sub Speichern_Click

  Dim db as Database

  Dim rst as Recordset


  Set db = Currentdb

  Set rst = db.Openrecordset ("Meine Tabelle",dbOpenDynaset)


  If Textfeld1.Value <> "" And Not isNull (Textfeld1.Value) Then

    rst.Addnew

    rst![Feldname1] = Textfeld1.Value

    rst.Update

  Else

    MsgBox "Das Textfeld1 ist leer!!! Schreiben Sie was rein!!!"

  End if

  rst.Close

End Sub

So ähnlich müßte die Prozedur dann aussehen.

Hoffe, geholfen zu haben.

JayN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, erstmal danke :)

Aber irgendwas läuft da noch nich wirklich. Also ich erklärs mal bissel genauer. Hab eine Tabelle namens "tblPersonen" und darin sind 2 Felder "Name" und "Vorname". Hab auch ein Formular "Formular1" wo zwei Textfelder drinne sind die auch als Bezeichnung "Name" und "Vorname" haben.

Den Code habe ich jetzt eingegeben:

______________________________________________

Private Sub Befehl112_Click()

Dim db As Database

Dim rst As Recordset

Set db = CurrentDb

Set rst = db.OpenRecordset("tblPersonen", dbOpenDynaset)

If Name.Value <> "" And Not IsNull(Name.Value) Then

rst.AddNew

rst![Name] = Name.Value

rst.Update

Else

MsgBox "Das Textfeld Name ist leer!!! Schreiben Sie was rein!!!"

End If

rst.Close

End Sub

_______________________________________________

Beim Kompilieren kommt dann die Fehlermeldung "Ungültiger Bezeichner" und der folgende Teil wird makiert:

If Name.Value <> "" And Not IsNull(Name.Value) Then

rst.AddNew

rst![Name] = Name.Value..................

...............

...............

Woher weiß die Aktion überhaupt, dass sie auf das Feld "Name" aus dem Formular zugreifen soll? *grübel*

kannste nochmal versuchen mir zu helfen?

:confused:

Dankeeeeeeee

Link zu diesem Kommentar
Auf anderen Seiten teilen

Haben das Textfeld "Name" als Bezeichnung oder als Name? Wenn nur als Bezeichnung, dann klick auf das Textfeld im Entwurfsmodus, öffne die Eigenschaft, gehe auf den Reiter "Daten" und da siehst Du den Namen mit dem Du das Textfeld ansprichst! Dann kannst Du es auf "Name" ändern.

JayN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ahhhhhhhhhhhh, klasse, es klappt!!!!!!!!! :bimei :bimei :bimei

Danke dir!!!! :) Suuuuuuper nett!

Allerdings wenn ich (für die anderen Felder jetzt) die gleiche Prozedur mache, schreibt der z.B. den Vornamen in den nächsten Datensatz :( Kann man das irgendwie hinbekommen, dass alles in eine Reihe geschrieben wird? Mit ner ID oder sowas?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von fisheye

Ahhhhhhhhhhhh, klasse, es klappt!!!!!!!!! :bimei :bimei :bimei

Danke dir!!!! :) Suuuuuuper nett!

Allerdings wenn ich (für die anderen Felder jetzt) die gleiche Prozedur mache, schreibt der z.B. den Vornamen in den nächsten Datensatz :( Kann man das irgendwie hinbekommen, dass alles in eine Reihe geschrieben wird? Mit ner ID oder sowas?


Private Sub Speichern_Click

  Dim db as Database

  Dim rst as Recordset


  Set db = Currentdb

  Set rst = db.Openrecordset ("Meine Tabelle",dbOpenDynaset)


  If Name123.Value <> "" And Not isNull (Name123.Value) Then

    If Vorname.Value <> "" And Not isNull (Vorname.Value) Then

    rst.Addnew

    rst![Name123] = Name123.Value

    rst![Vorname] = Vorname.Value

    rst.Update

    Else

        MsgBox "Vorname ist leer!!! Schreiben Sie was rein!!!"

    End if

  Else

    MsgBox "Name123 ist leer!!! Schreiben Sie was rein!!!"

  End if

  rst.Close

End Sub

Mit Addnew legst Du einen neuen Datensatz an, danach kannst Du alle möglichen Felder füllen.... mit Update schließt Du den neuen Datensatz ab, die Tabelle wird upgedatet.

Nicht vergessen die Tabelle zu schließen -> Close!!! Sonst könnten Daten verloren gehen!

JayN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von fisheye

Hey, lieb von dir *freu*

Und wie sieht es aus, wenn ein Feld nicht unbedingt ausgefüllt werden muss, andere aber schon!?!?

Na ja, wenn Du die nicht ausfüllen mußt, dann kannst Du es halten, wie Du willst. Wenn Du aber ein Feld ausfüllen mußt und es nicht ausfüllst, wird er bei Update meckern, denke ich.

JayN

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...