ich habe mir ein schönes Formular zur Datensatzeingabe gebaut, das auch sehr schön funktioniert. Lediglich eine Eigenschaft macht mich rasend: Sobald ich aus dem letzten Fenster der Eingabe springe (und damit in den neuen), werden nun nicht zwei Datensätze angezeigt (nämlich der alte und der neue, noch leere), sondern nur der neue Datensatz. Ich kann den alten Datensatz nicht über die Bildlaufleisten hervorholen, nur über das Rädchen an der Maus.
Wenn ich aber das Formular etwas an den Rändern während der Eingabe verändere oder das Formular so verkleinere, dass während der Eingabe sich das Formular verschiebt, wird automatisch in exakt diesem Moment ein leerer Datensatz nach unten angefügt - was eigentlich der Normalfall sein sollte und ich auch gerne so hätte.
herzlichen Dank, Du hattest mir schon einmal wunderbar geholfen!
Nochmals kurz zur Erläuterung: ich hätte gerne eine Übersicht, die im Lauf der Eingabe erscheint; ich hätte also gerne bei Eingabe des 10. Datensatz alle 10 gerne übereinander angeordnet. Im Moment sehe ich immer nur den jüngsten Datensatz! Die gleichzeitige Ansicht von mehreren Datensätzen ist doch im Formularfuß nicht möglich? Ist es nicht eher normal, dass diese Funktionalität eigentlich immer im Endlosformular zur Verfügung steht?
Nochmals kurz zur Erläuterung: ich hätte gerne eine Übersicht,
die im Lauf der Eingabe erscheint; ich hätte also gerne bei
Eingabe des 10. Datensatz alle 10 gerne übereinander
angeordnet.
ja, habe ich verstanden
Im Moment sehe ich immer nur den jüngsten Datensatz!
ja habe ich verstanden
Die gleichzeitige Ansicht von mehreren Datensätzen
ist doch im Formularfuß nicht möglich?
hast du nicht richtig verstanden: im Fuß erfolgt NUR die Eingabe, die Anzeige erfolgt nach wie vor im Deteilbereich des Endlosformulars.
Ist es nicht eher normal, dass diese Funktionalität eigentlich immer im Endlosformular zur Verfügung steht?
Ein Endlosformular ist alles: Kopfbereich, Detailbereich, Fußbereich
Wir Programmierer definieren daher die Bereiche sehr genau!
Optik passiert nicht im Formular, sondern in den Bereichen.
das Problem ist nicht gelöst, ich habe aber herausgefunden, was der Haken ist.
Zur Erläuterung: Ich habe ein Endlosformular, das zur Eingabeerleichterung Daten aus dem vorhergehenden Datensatz einlesen und automatisch einschreiben soll. Ich habe also ein Makro, dass beim Verlassen des Feldes X den enthaltenen Wert in ein ungebundenes (und unsichtbares) Feld im Formularkopf schreibt. Und beim Hingehen in dasselbe Feld, einen Datensatz später, habe ich ein Makro, dass iesen Wert wieder herunterholt.
Das klappt inzwischen auch wie gewünscht - aber nur bei Textfeldern. Er legt mir jedesmal einen neuen Datensatz an, der sich unterhalb des ersten DS sichtbar einfügt.
Möchte ich dieses Spiel bei Combo-Boxen spielen, zeigt er mir jedoch einen zweiten Datensatz an. Warum?
Ich kopiere insgesamt sechs Felder und habe dazu jeweils zwei Makros geschrieben: Das erste, um den Wert in den Formularkopf in ein Feld zu kopieren, das zweite, um es herunterzunehmen.
Ist eines der obigen Felder, klappt alles, wie ich es will.
bei zwei der Felder - Combo-Boxen - zeigt er mir im aktuellen Datensatz nicht an, dass er einen Wert eingeschrieben hat. Erst, wenn ich in den nächsten Datensatz anspringe, füllen sich die Felder im (nun vorherigen) Datensatz mit dem richtigen Wert.
Bei einem Feld, Combo-Box, spinnt er bei diesem Spiel plötzlich und „verschluckt“ den Datensatz - ich kann ihn jedoch mit dem DSMarkierer wieder herholen.
Code… Ich bin leider kein Profi und habe daher nur mit dem „Access-BAukasten“ programmiert + Makros. Die Funktionalität ist auf einzelne Makros, ohne VBA-Programmierung aufgebaut…
Ich kopiere insgesamt sechs Felder und habe dazu jeweils zwei Makros geschrieben: Das erste, um den Wert in den Formularkopf in ein Feld zu kopieren, das zweite, um es herunterzunehmen.
Ist eines der obigen Felder ein Textfeld, klappt alles, wie ich es will.
bei zwei der Felder - Combo-Boxen - zeigt er mir im aktuellen Datensatz nicht an, dass er einen Wert eingeschrieben hat. Erst, wenn ich in den nächsten Datensatz anspringe, füllen sich die Felder im (nun vorherigen) Datensatz mit dem richtigen Wert.
Bei einem Feld, Combo-Box, spinnt er bei diesem Spiel plötzlich und „verschluckt“ den alten Datensatz, wenn ich in den neuen springe - ich kann ihn jedoch mit dem DSMarkierer wieder herholen.
Code… Ich bin leider kein Profi und habe daher nur mit dem „Access-Baukasten“ programmiert + Makros. Die Funktionalität ist auf einzelne Makros, ohne VBA-Programmierung aufgebaut…
Ich kopiere insgesamt sechs Felder und habe dazu jeweils
zwei Makros geschrieben: Das erste, um den Wert in den
Formularkopf in ein Feld zu kopieren, das zweite, um es
herunterzunehmen.
Makros sind der falsche Weg!
Ist eines der obigen Felder ein Textfeld, klappt alles, wie
ich es will.
gut
bei zwei der Felder - Combo-Boxen - zeigt er mir im
aktuellen Datensatz nicht an, dass er einen Wert
eingeschrieben hat.
da fehlt ein Requery nach der Auswahl
Erst, wenn ich in den nächsten Datensatz
anspringe, füllen sich die Felder im (nun vorherigen)
Datensatz mit dem richtigen Wert.
dann kommt die viel zu späte Aktualisierung (Requery) von Access
Bei einem Feld, Combo-Box, spinnt er bei diesem Spiel
plötzlich und „verschluckt“ den alten Datensatz, wenn ich in
den neuen springe - ich kann ihn jedoch mit dem DSMarkierer
wieder herholen.
nö, das ist nicht der richtige Weg
Code… Ich bin leider kein Profi und habe daher nur mit
dem „Access-Baukasten“ programmiert + Makros. Die
Funktionalität ist auf einzelne Makros, ohne
VBA-Programmierung aufgebaut…
hast Du ev. eine Idee?
wenn du solche Dinge vorhast, empfehle ich dir VBA zu lernen
Wie ich immer sage: Access ohne VBA ist wie Autofahren ohne Räder
Rechtsklick auf das Combo-Feld
Eigenschaften
Reiter Ereignisse
Ereignis: bei Fokusverlußt
Doppelklick auf das Wort Fokusverlußt
in der Zeile sollte jetzt [Ereignisprozedur] stehen
am Ende der Zeile klickst du auf die drei Punkte […]
jetzt bist du im VBA - Editor
eine Funktionsüberschrift und ein Funktionsende werden automatisch eingefügt
dazwischen trägst du ein:
Me.FeldbezeichnungCombobox.Requery
Die Feldbezeichnung musst du noch deinen Bedingungen anpassen