Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Werte aus Formularfeld in Tabelle schreiben (Access)

Empfohlene Antworten

Veröffentlicht

Hi,

Ich hab eine kleine Frage und zwar, hab ich folgendes Formular:

1180427319_40569.JPG

Nun möchte ich, dass wenn ich auf "Zugang" klicke, er mir die Werte links vom Button unten in die log-Tabelle schreibt (in eine neue Zeile), ich hab schon rumprobiert, aber ich weiss nicht wie ich ihm die Werte übergeben kann.

Dann soll er auch noch die istMenge erweitern, aber das kommt ja vom Code aufs gleiche raus.

Ich hoff doch mal das jemand eine einfach Lösung hat.

Gruss Flo

Hollaröhdulljöh,

ich gehe stark davon aus, dass man dir helfen könnte, aber zumindest ich sehe dein Formular nicht.

Reinhold

Der vermutlich sauberste (und jedenfalls portabelste) Weg ist es, die Werte aus dem Formular in ein SQL-Statement einzubauen, dieses auf die zu Grunde liegende Datenbank abzusetzen und danach einen Requery auf das Unterformular nicht zu vergessen,

Also etwa so (ungetestet):

SQL = "Insert into LOGTABELLE (zugang, wedatum, rechnr, bemerkung) values ("

SQL = SQL & Me!zugang & ", " & Me!wedatum & ", " & Me!rechnr & ", '" & Me!bemerkung & "')"

Currentdb.execute SQL ...

Me.Requery

Ich hoffe du kommst damit weiter

Reinhold

wenn du einen neuen Datensatz hinzufügen willst dann:


recordset.AddNew

recordset!Spaltenname = Me!Textfeldname

[b]---> hier wiederholen, wenn mehrere Spalten existiren <---[/b]

recordset.update

wenn du einen Vorhandenen Datensatz editieren willst (also er ist schon vorhanden) dann:

if not recordset.bof then

 recordset.movefirst

end if


recordset.find "Spaltenname = ' " & primaerschluessel & " ' "


if not recordset.EOF then

 recordset!Spaltenname = Me!Textfeldname

 recordset.update

else

 exit sub

end if

Die Methode Find setzt einen "Zeiger" auf den Datensatz den Sie gefunden hat. Ist keiner vorhanden, so wird dieser "Zeiger" auf EOF (End of File gesetzt).Dies ist die Position hinter dem letzten Datensatz. wenn du einen Datensatz suchst, der vorhanden ist und zwei oder mehrere Kriterien erfüllen muss, dann musst du die Filter-Methode einsetzten:

 recordset.filter = "Suchkriterium = ' " & nummer1 & " ' AND Suchkriterium2 = ' " & nummer2 & " ' "


if not recordset.bof and not recordset.eof then

 recordset.movefirst


 recordset!Spaltenname = Me!Textfeldname

 recordset.update

end if


[b]Nicht wergessen den Filter wieder auf "" zu setzten. Weil sonst das Recordset nur diesen einen Datensatz (oder mehrere) in dem Recordset hat, aber nicht alle[/b]


 recordset.filter = ""

Mit freundlichen Grüßen

Chris86

Hi,

Danke an alle für die Hilfe, ich habs nun per SQL-Statement realisiert und es funktioniert wunderbar.

Gruss Flo


recordset.find "Spaltenname = ' " & primaerschluessel & " ' "

Wenn du den "primaerschluessel" verwenden kannst, dann ist es aus Performancegründen besser, die Methode SEEK zu verwenden.

Siehe auch FAQ 6.10

Reinhold

Hi Reinhold.

Die Datenbank wird nie wirklich groß werden, daher denke ich, ist es zu vernachlässigen, aber danke für den Hinweis.

Gruss Flo

Die Datenbank wird nie wirklich groß werden, ...

Klar, bei 100 Datensätzen geht sowieso alles, aber wozu braucht man dann eine Datenbank? Wenn ich dich (bzw. deinen Screenshot) richtig verstanden habe, dann geht es doch um Lagerbewegungen. Dann ist das praktisch eine endlose Tabelle, die immer größer wird. Täusch dich mal nicht, was da im Laufe von Jahren zusammen kommt. Falls es aber kaum Lagerbewegungen gibt, dann braucht dein Anwender auch keine Lagerverwaltung (die aus sozialen, nicht aus (programm-)technischen Gründen, in der Praxis sowieso kaum jemals funktioniert).

..., daher denke ich, ist es zu vernachlässigen, aber danke für den Hinweis.

Der Hinweis SEEK statt FIND ging auch an Chris86.

Reinhold

nächste mal weiß ichs besser ;) Danke für den Tipp ... hoffe ich konnte damit helfen :D

Greeze Chimaira

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.