PDA

Vollständige Version anzeigen : Befehl Me!textfeld.Requery anpassen auf anderes Formular


HaWeLL
22.03.2004, 19:12
hey ..


ich habe ein textfeld in dem ein datum angezeigt werden soll, ich kann mittels eines Buttons einen Popupkalender aufrufen, ein datum auswählen, welches dann in das textfeld geschieben wird.
dieses Textfeld dient aber zur abfrage eines UF das mir dann einen datensatz sucht nach dem datum das ich auswähle.

wenn ich das mittels eines Kombie-Feldes mache dann geht das alles einfach weil ich dann "nach aktualisierung" auswählen kann und den Befehl Me!Kombinationsfeld.requery .. aber das kann ich bei einem textfeld ja nicht ..

wie kann ich den code so schreiben das wenn ich das Popup verlasse (schließen button) mir das aktualisiert ?


ich danke schon mal

Gruß Rico

Tott666
22.03.2004, 19:19
Du mußt beim schließen deines Pop-Up´s das Datum wegschreiben und das Unterformular Refreshen.

Forms!frm1!Dat1 = me.Dat1
Forms!frm1!UF1.requery

Damit müßte es funktionieren.

HaWeLL
22.03.2004, 19:26
man man man ..
ich bin echt zu blöde .. ich hatte das schon dastehen .. nur so ein held wie ich bin hab ich wieder nen tipfehler drin .. ;)



aber danke .. es klapt =)

Thomas333
22.03.2004, 20:01
ich habe ein textfeld in dem ein datum angezeigt werden soll, ich kann mittels eines Buttons einen Popupkalender aufrufen, ein datum auswählen, welches dann in das textfeld geschieben wird. (Bei mir bisher gleich)

Bei händischer Eingabe ohne das PopUp wird eine Sub AfterUpdate durchgeführt. Hier alles Prima.

Wie wird diese Sub AfterUpdate nach Datumsanwahl (Datum wird beim Klicken im PopUp Kalender in das Textfeld geschrieben) durch das PopUp beim schließen aufgerufen??

HaWeLL
22.03.2004, 20:25
Hallo Thomas ..
irgend wie komm ich nicht ganz mit was du da machen willst bzw haben willst


Gruß Rico

Thomas333
22.03.2004, 20:41
Hallo Rico,

ich wähle in einem Filterformular ein von und ein bis Datum aus. Nach tippen eines Datums wird jeweils eine Prozedur (Sub von Datum anders, als Sub bis Datum) beim verlassen des Textfeldes (AfterUpdate) ausgeführt. Dieses Ergebnis liefert mir meine gefilterten Datensätze. Diese Datumseingabe habe ich mir erleichtert, indem ich ein Popupkalender durch Drücken eines Buttons im Filterformular öffne und durch klicken auf ein Feld ein Datum auswähle, daß dann in das Textfeld im Filterformular geschrieben wird. Beim klicken zur Datumsanwahl wird mein Popupkalender geschlossen. Bis hier alles Prima. Um jetzt meine gewünschten gefilterten Datensätze anzuzeigen müßte die AfterUpdate Prozedur gestartet (aufgerufen werden). Hier ist mein Problem. Wie führe ich diese aus. (Wie stoße ich eine AfterUpdate Prozedur bei welchem Kriterium wie an?) Dies ist keine globale Prozedur.

HaWeLL
22.03.2004, 21:04
Hallo Thomas,


also


Private Sub Kal_Click()

Forms!deinFormular!deinTextfeldImFormular = Kal.Value
Forms!DeinHF!deinUF.Requery
DoCmd.Close acForm, Me.Name
End Sub


sofern dein Textfeld in dem HF und deine Zeiten die gefiltert werden sollen in dem UF stehen ..

Gruß Rico

Tott666
22.03.2004, 21:10
Nur damit ich dich richtig verstehe,

du hast ein Formular mit 2 Textfeldern. Das eine ist ein VON und das andere ein BIS Feld.

Du öffnest den Kalender und tipst auf ein mal beide Daten ein??

Dann kannst du doch beim 2. Tip auch ein requery eines Unterformulars ausführen lassen, wie oben beschrieben.

Oder habe ich dich falsch verstanden??
:confused: :confused: :confused:

HaWeLL
22.03.2004, 21:16
ich denke eher das er für den BIS Wert ein Kalender öffnet und für den VON Wert auch noch mals einen.

also kann er für beide den befehl von oben nutzen ihn jeweis auf die kalender_Box legen und bei klicken oder dbl_Klicken ausführen lassen, ich vemute ihm fehlt nur der requery des jeweiligen VON und/oder BIS wertes


oder liege ich auch falsch ?

Gruß Rico

Arne Dieckmann
22.03.2004, 21:18
Ich verstehe es so, dass das Ereignis "After Update" des Textfeldes "BIS" im Formular "Formular1" aus dem anderen (Kalender-)Formular heraus ausgeführt werden soll.
Dann muss man aus der Private Sub zunächst einmal eine Public Sub machen:

Public Sub BIS_AfterUpdate()

'hier die genialen Anweisungen

End Sub

Im anderen (Kalender-)Formular dann (beim Ereignis "Beim Schliessen" oder wo auch immer man es braucht):

'evtl. noch Öffnungsargumente auswerten, damit man weiss,
'welches After-Update-Ereignis aufgerufen werden soll
Call Forms("Formular1").BIS_AfterUpdate

Tott666
22.03.2004, 21:30
Das Problem ist nur, dass man ein after Update ereignis nicht aufrufen kann.

Dann muß man da schon eine funktion rein schreiben, die man dann aufruft, oder mit der Reiter technik den Proces aufruft.

Tott666
22.03.2004, 21:34
Sorry, muß mich entschuldigen, habe das Public übersehen.

FUNZT NATÜRLICH.

Thomas333
23.03.2004, 19:02
Hallo zusammen,

bin wieder da. Hawell hatte mit seiner Vermutung recht, das ich beim ersten öffnen des KalenderPopUps das Von Datum in ein Feld schreibe und beim zweiten öffnen des KalenderPopUps das Bis Datum in ein anderes Textfeld schreibe. Die Lösung mit der globalen Prozedur (Public sub) wollte ich wie bereits gestern erwähnt vermeiden, da ich das ändern der Privat in eine Public Sub nicht hinbekommen habe. Anbei der Versuch die Privat in einem Modul zu ändern. Die Zeilen, die ich geändert habe, hatten alle ein Me. . Diese habe ich im Versuch wie zu sehen durch ein ' deaktiviert und immer in der darauffolgenden Zeile das Me. durch den Formularpfad mit dem Code geändert. Nun das Problem. Hier wird die Public Sub durch Fehler unterbrochen. Alle Me. Controls habe ich durch frm_Filter!Controls ersetzt. Hierbei kommt die Fehlermeldung , daß das angesprochene Feld Controls nicht gefunden werden kann.
Ich hoffe Ihr könnt mir weiterhelfen.

Thomas

Arne Dieckmann
23.03.2004, 19:13
Schau Dir doch mal meinen vorherigen Beitrag etwas genauer an ... - ich habe keine Lust das anders zu formulieren, nur soviel: mache im Code des Formulares aus

Private Sub BIS_AfterUpdate()

'hier die genialen Anweisungen

End Sub


einfach mal:

Public Sub BIS_AfterUpdate()

'hier die genialen Anweisungen

End Sub

Damit kannst du dann die ehemals Private Sub, die automatisch angelegt wurde auch aus dem anderen Formular heraus aufrufen und sie dient immer noch dem Feld "BIS" beim After_Update. Jetzt alles klar (nachdem ich es doch anders formuliert habe)?

Ansonsten hast Du auch die Möglichkeit, die Public Sub in dem Modul des Formulares abzulegen. Dort steht Dir auf jeden Fall "Me" zur Verfügung.



BTW: Der Anhang ist ziemlich überflüssig. Du hättest den Code auch direkt hier darstellen können ...

Thomas333
25.03.2004, 10:27
Hallo,

ersmal danke Euch allen.

Es funktioniert jetzt. Hab das so umgesetzt. Eine Public Sub in der der Inhalt der ursprünglichen Privat steht. In der Privat rufe ich die Public auf. Im Popupkalender habe nach Klick Ereignis steht jetzt
Call Forms("frm_Filter").FilterDatumVon

Thomas (war ne schwere Geburt)