Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Wert (Datum) aus Formular in zweite Tabelle übergeben

Begonnen von femco, August 21, 2019, 15:34:31

⏪ vorheriges - nächstes ⏩

femco

Hallo Liebe Community!
Ich finde leider nichts dazu und brauche unbedingt eine Möglichkeit (VBA) den Wert den ich im Formular eingegbe, auch in eine zweite Tabelle im Datensatz mit der selben "ID" zu übergeben.

Ich bin Anfänger, und weiß nicht ob das überhaupt möglich ist, dass ein Formularfeld (Datum) den Wert an einen Datensatz in einer zweiten Tabelle liefert/übergibt.

Danke Vorab,
femco

DF6GL

#1
Hallo,

das geht schon, es fragt sich aber weshalb...

z. B:


Sub btnCopy_Click()

CurrentDB.Execute "Update tblZweiteTabelle Set DasFeld = " & Me!Formularfeld & " Where ID = " & Me!Id, dbFailOnError   '  bei "DasFeld mit Datentyp Zahl, Long

End Sub



PS: Wenn es sich um ein Feld mit Datentyp "Datum/Uhrzeit" handelt, dann so:


CurrentDB.Execute "Update tblZweiteTabelle Set [Datum] = " & Format(Me![Datum],"yyyy-mm-dd") & " Where ID = " & Me!Id, dbFailOnError

MzKlMu

Hallo,
wenn es die gleiche ID auch in der 2. Tabelle gibt ist das Vorhaben schlicht und ergreifend überflüssig.
Das Datum auch in die 2. Tabelle zu schreiben wäre redundant.

Mir scheint, da ist eher das Datenmodell zu überdenken, gerade weil Du Anfänger bist.

Zeige mal ein Bild des Beziehungsfensters.
Gruß Klaus

femco

#3
Zitat von: DF6GL am August 21, 2019, 16:24:12
Hallo,

das geht schon, es fragt sich aber weshalb...

z. B:


Sub btnCopy_Click()

CurrentDB.Execute "Update tblZweiteTabelle Set DasFeld = " & Me!Formularfeld & " Where ID = " & Me!Id, dbFailOnError   '  bei "DasFeld mit Datentyp Zahl, Long

End Sub



PS: Wenn es sich um ein Feld mit Datentyp "Datum/Uhrzeit" handelt, dann so:


CurrentDB.Execute "Update tblZweiteTabelle Set [Datum] = " & Format(Me![Datum],"\#yyyy-mm-dd\#") & " Where ID = " & Me!Id, dbFailOnError

Hallo Franz
erstmal Danke!

Es funktioniert, nur ein anderes Datum wird eingefügt. Es wird mit dem Datumsformat zusammenliegen, kannst du mir auch dabei helfen?
Danke Vorab,
LG
femco

femco

Zitat von: MzKlMu am August 21, 2019, 18:46:59
Hallo,
wenn es die gleiche ID auch in der 2. Tabelle gibt ist das Vorhaben schlicht und ergreifend überflüssig.
Das Datum auch in die 2. Tabelle zu schreiben wäre redundant.

Mir scheint, da ist eher das Datenmodell zu überdenken, gerade weil Du Anfänger bist.

Zeige mal ein Bild des Beziehungsfensters.

Hallo Klaus

der Grund dafür ist, dass ich die Vorgabe hatte eine Personaldatenbank als Pendant zur Lohnverrechnungssoftware zu schaffen, in der immer nur das letzte Dienstverhältnis steht (Also wenn jmd. mehrmals ein- und austritt).
Weil ich mir aber sicher bin, dass früher oder später die Frage kommt: "Ob man die anderen Dienstverhältnisse eines Dienstnehmers nicht auswerten kann?"
Habe ich eine zweite Tabelle erstellt (diese binde ich keinem auf die Nase) in der diese Daten rüberkopiert werden, und somit bleiben meine Haupttabellen "sauber".

Diese Vorgangsweise mag nicht der üblichen Verwendung von Access entsprechen, und es gäbe da sicher "richtigerer" und elegantere Wege das zu lösen. Jedoch mir als Anfänger (das erste mal, dass ich eine Datenbank selber erstelle und noch dazu VBA nutze) ist es nur so in den Sinn gekommen. Wir verwenden die Datenbank auch schon, was auch richtig gut funktioniert.

LG
femco

MzKlMu

Hallo,
statt Dich als Anfänger mit Access zu beschäftigen und es möglichst richtig zur lernen, hast Du einfach in diesem Forum einen neuen Beitrag angefangen. Im anderen Forum hast dann einfach aufgehört.
https://www.ms-office-forum.net/forum/showthread.php?t=361935

Was Du da machst, ist gelinde gesagt "daneben".
Es wird Dir auf Dauer keine Freude machen, Du wirst immer wieder auf Probleme stoßen.

PS:
Forumswechsel bleiben so gut wie nie unenddeckt, weil es im wesentlichen die gleichen Leute sind.
Laut Forenregeln ist das auch unerwünscht. Nur mal so nebenbei.
Gruß Klaus

femco

Zitat von: MzKlMu am August 22, 2019, 10:57:10
Hallo,
statt Dich als Anfänger mit Access zu beschäftigen und es möglichst richtig zur lernen, hast Du einfach in diesem Forum einen neuen Beitrag angefangen. Im anderen Forum hast dann einfach aufgehört.
https://www.ms-office-forum.net/forum/showthread.php?t=361935

Was Du da machst, ist gelinde gesagt "daneben".
Es wird Dir auf Dauer keine Freude machen, Du wirst immer wieder auf Probleme stoßen.

PS:
Forumswechsel bleiben so gut wie nie unenddeckt, weil es im wesentlichen die gleichen Leute sind.
Laut Forenregeln ist das auch unerwünscht. Nur mal so nebenbei.

Hallo,

ja, das stimmt schon, dass ich im ersten Forum nach der Lösung gefragt habe - und das sollte auch nicht unentdeckt bleiben.
Ich bin da nicht weitergekommen, eventuell war auch meine Erklärung des Problems mit daran schuld. Die vorherschende Meinung war, dass meine Datenbank nicht geplant oder gut angelegt ist - was auch ok ist - und andere Dinge wurden mir wie die DSGVO versucht zu erklären, nur bei dem Problem bzw. die Frage die ich hatte wurde nicht beantwortet.
Doch wir arbeiten schon mit der Datenbak - mit tatsächlichen komplexen Daten - und sie deckt unseren Bedarf komplett ab. Deshalb habe ich nun  in diesem Forum - statt dort das Thema erneut zu öffnen - nach Hilfe für dieses eine Manko gefragt. Dass das unerwünscht und "daneben" ist, habe ich nicht gewusst und verstehe auch nicht warum, doch falls sich irgendjemand durch meinen "Regelbruch" gekränkt füllt oder beleidigt wurde, dann ENTSCHULDIGE ich mich hiermit bei dem-/derjenigen.

PS: Das Bild vom Beziehungsfenster versuche ich schon seit gestern - auch im ersten Forum - bereitzustellen, doch schaffe es hier auf der Arbeit nicht. Es ist einfach alles von unserer EDV geblockt und gesperrt. Alleine schon, dass ich in diesem Forum schreiben kann, muss ich zu einem "InternetPC".

PPS: Auch den Beitrag im anderen Forum habe ich aber trotzdem noch nicht aufgegeben.

LG

DF6GL

Hallo,

habe den Crosspost jetzt nicht gelesen...  Es ist trotzdem halt lediglich eine Mehrbeschäftigung der Helfer, die zudem von den anderen Lösungen, bzw. Vorschlägen nichts wissen und meistens das Gleiche nochmal erfinden.

Ich teile auch die Meinung zum db-untauglichen Konzept.

Aber egal...

Meine Vorschlag bezog sich auf eine Aktualisierung der zweiten Tabelle.

Wenn da ein neuer DS eingefügt werden soll, dann wird eine Aktualisierungsabfrage benötigt, etwa so:

CurrentDB.Execute "Insert into  tblZweiteTabelle (ID,[Datum]) Values (" & Me!ID & "," &  Format(Me![Datum],"\#yyyy-mm-dd\#") & ")" ,  dbFailOnError 

Dabei darf "ID" in der "tblZweiteTabelle"  kein Autowert sein.

femco

Hallo,

leider wird nun ein neuer Datensatz mit ID und Datum in der ZweitenTabelle erstellt, statt im vorhandenen Datensatz das Datum einzufügen.
Mein code schaut so aus:
CurrentDb.Execute "Insert Into  tblZwischentabelle (ID,[Austritt]) Values (" & Me!ID & "," & Format(Me!Austritt, "\#yyyy-mm-dd\#") & ")", dbFailOnError


Das ist ja das blöde, ich finde nirgends wie ich nur diesen einen Wert (Austrittsdatum) dem Datensatz mit der selben ID in der ZweitenTabelle zuweise.

Danke, LG

DF6GL

Hallo,


???

natürlich fügt eine Anfügeabfrage einen neuen DS ein, hab ich ja extra erwähnt..

Wenn das Datum im DS mit der bestimmten ID ersetzt (aktualisiert) werden soll, dann gilt mein erster Vorschlag mit der Aktualisierungsabfrage..

(Klarer und verständlicher ist es, gleich die richtigen Feld- und Tabellenamen zu nennen ...)

CurrentDB.Execute "Update ZweitenTabelle Set Austrittsdatum = " & Format(Me!Austrittsdatum,"\#yyyy-mm-dd\#") & " Where ID = " & Me!ID, dbFailOnError

Beaker s.a.

Hallo,
Ich fände es ja interessant die Struktur der Archivtabelle zu sehen.
Denn wenn die, wie es sich anhört, einen FK zum MA hat, kann ich die DV doch
einfach einem UFo anzeigen. Dieses, gefiltert auf das jüngste Eintrittsdatum zu
dem es keinen Austritt gibt, zeigt dann nur das aktuelle DV an. Gibt man dort
dann ein Austrittsdatum ein, verschwindet auch dieser DS.
Das HFo müsste natürlich auch auf die MA ohne Austritt gefiltert werden (in der
DS-Herkunft).
Wenn dann dein Auftraggeber mal alle DV sehen will, schaltest du einfach die
Filter aus und gut ist.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

femco

Hallo,

Zitatnatürlich fügt eine Anfügeabfrage einen neuen DS ein, hab ich ja extra erwähnt..
ja, ist mir erst nach meinem Post aufgefallen :)

Danke für deine Hilfe. Beim ersten Mal dürfte ich etwas falsch gemacht haben, jetzt funktioniert es. Musste einen kleinen Zusatz reinnehmen, da es eine Fehlermeldung gab, wenn mann statt ein Datum einzutragen, das Vorhandene rausgelöscht hat:
On Error GoTo ErrLesezeichen ' Fehlerbehandlung
    CurrentDb.Execute "Update tblZwischentabelle Set Austritt = " & Format(Me!Austritt, "\#yyyy-mm-dd\#") & " Where ID = " & Me!ID, dbFailOnError
Exit Sub
ErrLesezeichen:
   If Err = 3144 Then Resume Next   ' weitermachen, falls kein zulässiges Lesezeichen


Danke, danke Vielmals.

LG
femco

femco

#12
ich würde wirklich gerne Bilder hochladen, nur ist es mir nicht möglich, weil unsere EDV alles sperrt. Ich kann hier irgendwie nichts hoch- und runterladen. Versuche eventuell heute das Beziehungsfenster als PDF von zu Hause hier hochzuladen.

LG