Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Aus einem ufo die Datensatzposition eines anderen ufo steuern

Begonnen von hajott, Dezember 04, 2024, 13:55:20

⏪ vorheriges - nächstes ⏩

hajott

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



hajott

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

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

hajott

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

Knobbi38


Beaker s.a.

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.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)