Guten Tag,
In einem Formular werden die Felder Text50, Text51 und Text52 in Feld Text55 zusammengezählt. Die Summe aus Text55 soll in Tabelle1 in der Spalte R1 kopiert werden. Was muss ich tun?
Guten Tag.
In einem Formular werden die Felder Text50, Text51 und Text52
in Feld Text55 zusammengezählt. Die Summe aus Text55 soll in
Tabelle1 in der Spalte R1 kopiert werden. Was muss ich tun?
Vor allem solltest du sprechende Namen vergeben.
Also, ich habe folgendes verstanden:
Formular1!Text55=Text50+Text51+Text52 steht irgendwo. Und du möchtest das berechnete Feld (was man normalerweise auch nicht tut) pro Datensatz in Tabelle1!R1 hinterlegen. Soweit richtig?
Oder soll die Summe aller Formular1!Text55 (über alle Datensätze) nach Tabelle1!R1 gebeamt werden?
Bitte spezifizieren - und bei der Gelegenheit bitte erklären, warum du nicht die Einzelfelder speicherst und die Summe per Abfrage erzeugst.
GEK
Hallo,
diesen Code an das passende Ereignis anfügen. Jedoch wird hier der Wert aus Text55 in das Feld R1 des ersten Datensatzes von Tabelle1 kopiert. Wenn er jedoch in einen bestimmten Datensatz herein soll, hast Du verschwiegen, wodurch sich dieser auszeichnet.
Dim db As Database, rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset(„Tabelle1“, dbOpenDynaset)
rst.MoveFirst
rst!R1 = Me!Text55
rst.Update
rst.Close
Set rst = Nothing
db.Close
Set db = Nothing
MfG,
ujk
Es ist richtig verstanden. In dem Formular werden in 6 Feldern eine Zahl eingegeben die werden mit feststehenden Zahlen verglichen. Sind die Zahlen richtig, wird in Text51 eine 1 ausgegeben:smiley:as Gleiche geschiet mit Text52 und Text53, in Text55 werden diese Zahlen addiert.
Die eingegebenen Zahlen werden auf Tabelle1 übertragen. Nun soll Text55 auch auf die Tabelle1 in Reihe R1 übertragen werden. Z.B. stehen in Tabelle1 der Datensatz 200 mit den Reihen 1, 2, 3, 4, 5 und 6 die eigegebenen Zahlen und in R1 soll das Ergebnis stehen. Das Gleiche soll im nächsten Datensatz 201 geschehen. Ich hoffe nun ist es besser zu verstehen.
mfG
olli
Hallo
das Feld Text55 soll immer in den letzten Datensatz kopiert werden. Also wenn ein neuer Datensatz hinzugefügt wird, wird auch gleichzeitig Text55 unter R1 hinten angehängt.
mfG
olli
Hallo,
wenn du meinst, das Textfeld soll in den Datensatz übertragen werden, der gerade im Formular angezeigt wird, geht das am einfachsten über den Primärschlüssel des Datensatzes, sagen wir „Kennummer“.
Statt
rst.MoveFirst
geht das über
rst.FindFirst "Kennummer = " & Me![Kennummer]
MfG,
ujk
Herzlichen Dank für Ihre Hilfe. Werde es ausprobierem.
mfG
olli2
Hallo,
Wo schreibe ich diesen Text hin. In Makro geht es nicht.
Danke
mfG olli
Hallo ujk
In dem Formular werden in 6 Feldern eine Zahl eingegeben die werden mit feststehenden Zahlen verglichen. Sind die Zahlen richtig, wird in Text51 eine 1 ausgegeben:smiley:as Gleiche geschiet mit Text52 und Text53, in Text55 werden diese Zahlen von Text51,52 und 53 addiert.
Die eingegebenen Zahlen werden automatisch auf Tabelle1 übertragen. Nun soll Text55 auch auf die Tabelle1 in Reihe R1 übertragen werden. Beispiel: stehen in Tabelle1 der Datensatz 200 mit den Reihen 1, 2, 3, 4, 5 und 6 die eigegebenen Zahlen und in R1 soll das Ergebnis stehen. Das Gleiche soll im nächsten Datensatz 201 geschehen. Ich hoffe nun ist es besser zu verstehen.
mfG
olli
Hilf mir bitte, bitte.
Hallo,
also der Code wird über den Code-Editor an ein Ereignis im Formular angehangen. (Ansicht - Eigenschaften: Registerkarte „Ereignis“, über die drei kleinen Punkte beim Reinklicken ins Ereignis wird der Code-Editor aufgerufen.)
Wann soll denn genau der Übertrag stattfinden? Die Formular/Code-Methode eignet sich dafür, wenn zum Beispiel nach der Eingabe in einem Textfeld (Ereignis: NachAktualisieren) der Übertrag für den aktuellen Datensatz stattfinden soll. Soll die gesamte Tabelle aktualisiert werden, würde sich eine Aktualisierungsabfrage anbieten.
MfG,
ujk
Hallo ujk
leider funktioniert es immer noch nicht. Ich habe statt Kennummer, ID eingegeben, weil es sich ja auf den jeweiligen Datensatz bezieht. Leider zeigt mir der Debagger immer wieder Fehler in der Reihe rst.FindFirst"Kennummer="&Me![Kennummer. Ich habe geschrieben:
rst.FindFirst"ID="&Me![ID].
mfG
olli
Also es gibt in Deinem Formular ein Feld „ID“? Ist „ID“ eine Zahl (so wie zum Beispiel beim AutoWert)?
Dann sollte
rst.FindFirst "ID = " & Me![ID]
funktionieren. Gib einmal die Leerzeichen mit ein.
Was kommt denn für eine Fehlermeldung. An welches Ereignis hast Du den Code gebunden?
MfG,
ujk
Hallo ujk
ID ist eine Zahl,die von Access vortjaufend mit jedem neuen Datensatz vergeben wird. Die Fehlermeldung ist folgende:
Laufzeitfehler 3077
Syntaxfehler (fehlender Operator)in Ausdruck.
Dann gibt es 2 Optionen: Beenden und Debagger. Drückt man die Option Debagger so wird die Zeile im Makro angezeigt, wo der Fehler steckt. Ich habe versucht mit Zwischräumen und mit verschiedenen Klammerm, kam aber nicht zum Erfolg.
mfG
olli
OK, dann ist ID wohl vom Typ AutoWert.
Ich hab das hier einmal nachgebaut und es funktioniert.
Wenn Du möchtest, kann ich einen Blick in die Datenbank (oder eine Kopie mit Dummy-Daten) werfen, was da schiefläuft. Dazu bräuchte ich Sie per E-Mail.
MfG,
ujk