unimx Geschrieben 29. Mai 2007 Geschrieben 29. Mai 2007 Hi, Ich hab eine kleine Frage und zwar, hab ich folgendes Formular: 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 Zitieren
Reinhold Geschrieben 29. Mai 2007 Geschrieben 29. Mai 2007 Hollaröhdulljöh, ich gehe stark davon aus, dass man dir helfen könnte, aber zumindest ich sehe dein Formular nicht. Reinhold Zitieren
Reinhold Geschrieben 29. Mai 2007 Geschrieben 29. Mai 2007 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 Zitieren
Chris86 Geschrieben 30. Mai 2007 Geschrieben 30. Mai 2007 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 Zitieren
unimx Geschrieben 30. Mai 2007 Autor Geschrieben 30. Mai 2007 Hi, Danke an alle für die Hilfe, ich habs nun per SQL-Statement realisiert und es funktioniert wunderbar. Gruss Flo Zitieren
Reinhold Geschrieben 30. Mai 2007 Geschrieben 30. Mai 2007 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 Zitieren
unimx Geschrieben 30. Mai 2007 Autor Geschrieben 30. Mai 2007 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 Zitieren
Reinhold Geschrieben 30. Mai 2007 Geschrieben 30. Mai 2007 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 Zitieren
Chris86 Geschrieben 30. Mai 2007 Geschrieben 30. Mai 2007 nächste mal weiß ichs besser Danke für den Tipp ... hoffe ich konnte damit helfen Greeze Chimaira Zitieren
Empfohlene Beiträge
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.