Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Cursor vom HFo aus auf Ufo setzen - Eilt leider

Begonnen von Beate1953, Februar 19, 2013, 11:16:04

⏪ vorheriges - nächstes ⏩

Beate1953

Hallo,

Ich möchte folgendes bewirken: Wenn auf dem Hauptformular ein Kombinationsfeld aktualisiert wird, wird über das Ereignis 'Nach Aktualisierung' ein Makro ausgeführt, das den Datensatz sucht und die Daten im Haupt- und Unterformular anzeigt. So weit, so gut. Nun soll aber auch noch der Cursor auf ein Kontrollkästchen des Unterformulares gesetzt werden - und das kriege ich nicht hin.

Ich habe beim Makro die Aktion 'Ausführen Code' angefügt und im Hauptformular
  Public Sub CursorSetzen()
   With [E-Check Abfrage-Unterformular].[KtrE-Check]
      .Set Focus
   End With
  End Sub
geschrieben. Aber das gibt eine Fehlermeldung.

Liegt das vielleicht an der Namensgebung? Das Formular steht in dem Navigationsbereich unter 'Werte eingeben-Unterformular', wenn ich jedoch in der Entwurfsansicht auf das Unterformular klicke, wird 'E-Check Abfrage-Unterformular' angezeigt.

Ich weiß, dass die Namensgebung furchtbar ist, aber das stammt noch aus meiner Anfangszeit und ich wollte nicht alles ändern.

LEIDER EILT ES, DA DAS HEUTE NOCH FERTIG WERDEN SOLL. Ich bitte um baldige Hilfe.

Vielen Dank im Voraus
Beate1953

Beate1953

P.S:
Der Cursor soll im Unterformular auf das Kontrollkästchen im neu angelegten - noch nicht mit Daten gefüllten - Unter-Datensatz springen.

Vielen Dank
Beate1953

database

Hallo,

ich denke, dass das Unterformular nicht richtig angesprochen wird!

Forms![Hauptformular]![UFoSteuerelement_im_Hauptformular].Form![Steuerelement_im_Ufo]

Damit sollte deine Prozedur


Public Sub CursorSetzen()
  Forms![Name des Hauptformulars]![E-Check Abfrage-Unterformular].Form![KtrE-Check].SetFocus
End Sub


funktionieren

Siehe:

http://www.donkarl.com?FAQ4.2

Sowie den in der FAQ angegebenen Link

HTH

Beate1953

Hallo,

vielen Dank für die prompte Hilfe. Leider habe ich noch einen Fehler drin. Wenn ich im Makro 'Ausführen Code' schreibe mit dem Argument CursorSetzen() dann kommt die Fehlermeldung "Der von Ihnen eingegebene Ausdruck enthält den Namen einer Funktion, die von Microsoft Access nicht gefunden werden kann" -- obwohl ich die Public  Sub sowohl in ein Modul als auch ins HFo eingegeben habe.

Schreibe ich als Argument nur CursorSetzen ohne die Klammer so kommt die Fehlermeldung "Das Objekt enthält das Automatisierungsobjekt 'CursorSetzen' nicht".

Auf jeden Fall stoppt er bei der Anweisung 'Ausführen Code' und gibt Fehler 3021 an.

Ich habe noch Verlängerung bis Morgen bekommen, so dass ich noch etwas probieren kann.

Viele Grüße
Beate1953

Beate1953

Hallo,

habe obiges Problem lösen können. Ich hatte statt Public Function Public Sub geschrieben.

Jetzt ist aber noch folgendes: Ich habe im UFo mehrere Datensätze mit Werten zu dem DS im HFo und ich möchte einen neuen, weiteren DS im UFo hinzufügen, in dessen Feld KtrE-Check der Cursor springen soll. Leider springt er derzeit in das Feld KtrE-Check eines alten Datensatzes des UFo.

Viele Grüße
Beate1953

database

Hallo,

Zitat...statt Public Function Public Sub geschrieben...
Wenn Code aus einem Makro aus aufgerufen werdn soll muss es eine Function sein.
Da ich mit Makros ÜBERHAUPT NIX am Hut habe, habe ich das leider übersehen.
Aber schön, dass du selbst dahinter gekommen bist und nun der Aufruf läuft.

Zur anderen Frage:
Um auf ein Steuerelement des Unterformulars in einem neuen Datensatz zugreifen zu können
muss klarerweise dieser neue Datensatz existieren.
Der untenstehende Code sollte das können ...  einen neuen Datensatz im Unterformular erzeugen und durch das Setzen der Checkbox sollte der Focus auf der Checkbox bleiben.


Public Function CursorSetzen()
    With Forms("DeinHauptformular")("[E-Check Abfrage-Unterformular]").Form.Recordset
            .AddNew
            ![KtrE-Check] = 0   'oder wenn das Häkchen gesetzt werden soll ...   -1
            .Update     
    End With
End Function


HTH