PDA

Vollständige Version anzeigen : Formübergreifend Befehl ausführen


MasterTH
05.08.2004, 14:55
Hallo Leute,

ich wollte mal von euch wissen wie ich einen Click Befehl formübergreifend ausführen kann.

Form_form1.befehl72_click

funzt nicht. Er sagt dann Methode oder Datenobjekt nicht gefunden. Wie kann das denn bitte machen das er mir den Befehl formübergreifend ausführt??

Danke

uwek
05.08.2004, 15:12
Hallo,

die Sub bzw. Function als Public ... in einen allgemeinen Modul ablegen.

MasterTH
05.08.2004, 15:58
leider führt er die Funktion dann trotzdem nicht aus, oder besser ich merk nicht das er sie ausführt, weil wenn ich den Befehl dann manuell ausführe noch eine veränderung bemerke.

Er soll von einem Formular aus in einem Unterformular einen Befehl ausführen. In dem Unterfomular werden Daten angezeigt, die leider nicht nach datum sortiert sind. Deswegen wolle ich das wenn etwas auf dem Hauptformular verändert wird, das er dann im Unterfomular den letzten Datensatz anzeigt.

BeckerThomas
05.08.2004, 16:26
Hallo,
folgende Aufruf ist Möglich:

Public Sub Befehl72_Click()
MsgBox "Befehl ausgeführt"
End Sub

Aufruf=> CallByName Forms("Form1"), "Befehl72_Click", VbMethod

Wichtig: Sub MUSS Public sein!!!

Gruß aus dem Schwarzwald
Thomas

MasterTH
06.08.2004, 08:45
damit funktionierts,

aber leider nur teilweise. Wenn er den Befehl ausführt, dann springt er nicht zum letzten datensatz von dem Unterformular sondern zum letzten Datensatz vom Hauptformular.

Genau das was er nicht machen soll.

kann ich das vielleicht irgendwie mit diesem

DoCmd.GotoRecord ...

machen.

Wenn ja wie??


edit: Was ich vergaß

der befehl72 ist dem unterformular zugeordnet

BeckerThomas
07.08.2004, 08:24
Um zu einem Datensatz in einem UF zu springen muss das UF zuvor den Focus erhalten haben.
Du brauchst deshalb nicht die Funktion im UF aufzurufen.

Hauptformular: frmTest
Unterformular: frmTest_UF

Aufruf aus dem Hauptformular

Me!frmTest_UF.SetFocus
DoCmd.GoToRecord , , acLast

Dannach kannst Du, wenn den Focus wieder zurück auf den HF setzen.

Gruß
Thomas