Hallo allerseits,
ausgehend von Formular frmPerson, möchte ich per VBA Formular frmPerson_Adressen öffnen. In frmPerson_Adressen gibt es ein Kombinationsfeld cmbPersonen. Beim Öffnen möchte ich das Kombinationsfeld frmPerson_Adressen.cmbPersonen mit dem Wert aus dem Textfeld frmPerson.Id selektieren.
Der Code zum Öffnen des Formulars:
DoCmd.OpenForm "frmPerson_Adressen"
Forms!frmPerson_Adressen!cmbPersonen.Value = Me.Id.Value
Forms!frmPerson_Adressen!cmbPersonen.Requery
Das Feld frmPersonen.Id.Value ist vom Typ Replikations-ID, die Spalte 0 im Kombinationsfeld ebenfalls.
Das Formular frmPerson_Adressen wird mit diesem Code auch geöffnet, aber das Kombinationsfeld frmPerson_Adressen.cmbPersonen bleibt leer.
Hat jemand eine Idee, woran das liegen könnte?
Gruß :)
Hallo,
Falls das "Requery" nötig ist, mach es zuerst, das setzt nämlich jedes RS zurück
auf den ersten DS.
gruss ekkehard
Ich habe es doch selber hinbekommen.
Das Problem war: hinter dem Kombinationsfeld steckt eine Abfrage, Werte vom Typ GUID (Replikations-ID) enthält.
Im Kombinationsfeld ist die resultierende Spalte dann vom Typ vom Typ Variant/String und die Werte haben die Form "{2F3CDBE4-872F-4807-9F33-72F7A7360798}".
Damit die Zuweisung Me.cmbPersonen.Value = Me.Id.Value klappt, muss man den Wert vom Me.Id.Value in einen String umwandeln. Leider kann man die Bibliotheks-Funktion StringFromGUID nicht einfach verwenden, da diese aus einer GUID folgendes macht:
"{guid {2F3CDBE4-872F-4807-9F33-72F7A7360798}}"
Ich habe mir daher eine Funktion geschrieben, welche die Umwandlung korrekt vornimmt:
Public Function MyStringFromGUID(Guid As Variant) As String
MyStringFromGUID = Replace(Replace(StringFromGUID(Guid), "guid {", ""), "}}", "}")
End Function
Den Aufruf habe ich dann mit OpenArgs realisiert:
DoCmd.OpenForm "frmPerson_Adressen", OpenArgs:=MyStringFromGUID(Me.Id.Value)
Im Formular frmPerson_Adressen sieht das dann so aus:
Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then
Me.cmbPersonen.Value = Me.OpenArgs
End If
End Sub
Mann, da muss man erstmal drauf kommen ...