Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: hajott am Dezember 04, 2024, 13:55:20

Titel: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: hajott am Dezember 04, 2024, 13:55:20
Hallo Wissende,

ich möchte in einem UFO mit Doppelklick auf eine Positionsnummer die Nummer des geklickten Datensatzes in einem anderen UFO anspringen, also theoretisch

Private Sub Position_DblClick(Cancel As Integer)

     Parent!frmBearbeitung!DoCmd.GoToRecord , , acGoTo, Form.CurrentRecord
   
End Sub

Ich habe schon geahnt, dass man dies "GotoRecord" nicht auf diese Weise fremdsteuern kann. Aber ich denke, es wird so klar, was ich gern möchte. Habt ihr da eine Idee für mich?

Ich weiß, dass ich einen Filter "auf die Ferne" setzen könnte, aber das möchte ich nicht, denn im Bearbeitungsufo ist eine Datensatznavigation aktiv, man soll also von diesem Einstieg aus auch vor- und zurückblättern können.

Viele Grüße und vielen Dank im voraus

Hans-Jürgen

Titel: Re: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: Knobbi38 am Dezember 04, 2024, 14:04:32
Das geht z.B. mit Hilfe der FindXXX-Methoden des Recordset-Objekts.

Siehe auch:
https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/recordset-findfirst-method-dao (https://learn.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/recordset-findfirst-method-dao)
Titel: Re: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: hajott am Dezember 04, 2024, 16:16:34
Hallo Knobbi,

vielen Dank für die schnelle Antwort. Ich habe mich auf "FindFirst" beschränkt, weil jeder gesuchte Wert genau einen Treffer findet. Trotzdem klappt es leider nicht, einen meiner Versuchscodes siehe unten. Ich habe aber auch in der FindFirst-Zeile vieles rumprobiert (z.B. statt der Variable mit einem festen Wert verglichen), immer kommt "Operation wird für diesen Datentyp nicht unterstützt"

Ich gehe davon aus, dass das Statement hinter FindFirst einem SQL-WHERE entspricht und habe deshalb auch rein im Textbereich ein vorhandenes Feld "Nachname" mit einem vorhandenen Eintrag "Meier" zu finden - vergeblich. (rst.FindFirst "[Nachname] LIKE 'Maier'".
Immer der gleiche Fehler.

Was mache ich falsch? Gibt es noch einen anderen Weg?

Vielen Dank

Hans-Jürgen

Private Sub Position_DblClick(Cancel As Integer)
   
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
   
    Set dbs = CurrentDb
    Set rst = dbs.OpenRecordset("tblBasisdaten")
   
    rst.FindFirst "[Position] LIKE " & CStr(Form.CurrentRecord)
   
    rst.Close
    Set rst = Nothing
    Set dbs = Nothing

   
End Sub
Titel: Re: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: Beaker s.a. am Dezember 04, 2024, 17:18:21
Hallo Hans-Jürgen,
Vorab, LIKE ohne Jokerzeichen (*. ?) ist "=".
Um in einem UFo einen DS zu fokussieren musst du natürlich auch
dessen Recordset ansprechen
Private Sub Position_DblClick(Cancel As Integer)
With Me.Parent.UFo2ControlName.Form.Recordset
    .FindFirst = "Position = " & Me.Position
'zur Sicherheit
    If .NoMatch Then
       Msgbox "Kein Datensatz gefunden"
       Cancel = True
    End If
End With

wobei
Me = UFo1
.Parent = das HFo
.UFo2ControlName = der Name des UFo-Steuerelements von UFo2
.Form = das eingebette Formular

gruss ekkehard
Titel: Re: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: hajott am Dezember 04, 2024, 20:25:48
Hallo Ekkehard,

nach einigem Rumprobieren klappt es jetzt, herzlichen Dank !

Erst nach längerer Zeit fiel mir auf, dass in deinem Beispiel zwischen FindFirst und dem String ein Gleichheitszeichen war, was vorher nicht da war ;-) Ich habs weggelassen, dann gings.

Viele Grüße

Hans-Jürgen
Titel: Re: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: Knobbi38 am Dezember 05, 2024, 15:36:12
Hallo,

je nach Bedarf gibt es auch noch andere Möglichkeiten:
https://www.fmsinc.com/microsoftaccess/forms/Synchronize/LinkedSubforms.asp (https://www.fmsinc.com/microsoftaccess/forms/Synchronize/LinkedSubforms.asp)

Gruß
Knobbi38
Titel: Re: Aus einem ufo die Datensatzposition eines anderen ufo steuern
Beitrag von: Beaker s.a. am Dezember 05, 2024, 17:55:24
Zitatzwischen FindFirst und dem String ein Gleichheitszeichen war,
Sorry, da war ich im Kopf schon ein Stück weiter im Text. Hinter "FindFirst"
gehört natürlich nur der Filterstring.