Ich verwende zwei Unterformular auf einen Hauptformular.
Das linke verwende ich zur Navigationsunterstüzung. Wenn ich also im linken Unterform einen Datensatz anklicke, zeigt er mir im rechten Unterform den entsprechenden Datensatz an.
Das ist mit dem Befehl 'absolutePosition' gelöst.
Problem ist nur, das ich dafür immer erst auf eine Schaltfläche im rechten Unterform klicken muss, damit er mir den ausgewählten Datensatz auch anzeigt.
Ziemlich unpraktisch.
Kennt da jemand einen Trick, oder eine besser geeignete Funktion?
Hallo,
das ist nicht ganz klar formuliert:
Zitat
Wenn ich also im linken Unterform einen Datensatz anklicke, zeigt er mir im rechten Unterform den entsprechenden Datensatz an.
wenn er schon links vorhanden, warum noch mal rechts anzeigen?
Und:
ZitatProblem ist nur, das ich dafür immer erst auf eine Schaltfläche im rechten Unterform klicken muss, damit er mir den ausgewählten Datensatz auch anzeigt.
also klappt das anklicken links und anzeigen rechts nicht?
Gruß Oma
Hallo,
Also links sind die Nummern aller Datensätze mit einer kurzen Beschreibung.
Rechts wird dann jeweils 1 Datensatz bearbeitet.
Zitatalso klappt das anklicken links und anzeigen rechts nicht?
Ja. Wenn ich links klicke, zeigt er mir rechts nichts an.
Hallo,
und wie ist der Code dazu, es gibt ja einige Möglichkeiten. Zeige doch mal. wie du es versucht hast.
Gruß Oma
Hallo,
Am Ende hatte ich den Code erreicht.
Im Naviformular:
Private Sub Form_Click()
Forms!Hauptformular!Unterform1.Form.Kasten78.SetFocus
End Sub
Womit ich die Funktion im Unterform aufrufe:
Private Sub Kasten78_GotFocus() 'Navifunktion
Dim NavVar As String
NavVar = Forms.Hauptformular!Navi.Form.Recordset.AbsolutePosition
If Not NavVar = -1 Then
NavVar = NavVar + 1
DoCmd.GoToRecord , , acGoTo, NavVar
End If
End Sub
Hallo,
nimm links ein Listenfeld zur Anzeige, das Ufo rechts verknüpftst Du mit den Dateneigenschaften über die Schlüsselfelder mit dem Listenfeld, dann musst Du überhaupt nichts programmieren.
Hallo,
du siehst am Vorschlag von Klaus: es gibt auch andere Möglichkeiten.
Ich verwende oft folgende Lösung: Du erstellst ein Formular mit den Daten in Datenblattansicht, so kann man die wichtigsten Felder für mehrere Datensätze überblicken; zur Detaileinsicht kann man dann zur Einzelformularansicht per Button umschalten:
Private Sub Detail_Click()
Me!Kunden_UF.SetFocus
If Me!Kunden_UF.Form.CurrentView = 2 Then
DoCmd.RunCommand acCmdSubformFormView
Me!Detail.Caption = "Tabelle"
Else
DoCmd.RunCommand acCmdSubformDatasheetView
Me!Detail.Caption = "Detail"
End If
End Sub
Das ganze muss dann noch in einem "äußeren Formular" untergebracht werden. Nach meinen Erfahrungen kommt diese Methode vielen Usern entgegen: sie können in einer Tabelle schauen und scrollen (das kennen sie oft von Excel) u. dann aber auch in Detailansichten mit allen Feldern arbeiten.
Mal ein einfaches Beispiel für das Prinzip
[Anhang gelöscht durch Administrator]
Hallo,
Danke für die Vorschläge, aber wie genau verknüpfe ich jetzt das Unterform mit dem Listenfeld?
@oma: Normalerweise programmier ich sowas ähnliches wie du vorgeschlagen hast, nur diesmal ging das nicht.
Hallo,
Eigenschaften des UFO-Steuerelementes:
Verknüpfen von: Fremdschlüsselfeld aus der Unterformular-Datenherkunft
Verknüpfen nach: Name des Listenfeldes. Listenfeld bei "Mehrfachauswahl" auf "keine" stellen
Hallo,
Ähm. Also zuerst bekam ich eine Fehlermeldung des Feldverknüpfungsassistent:
"Aufbau einer Verbindung zwischen ungebunden Formularen nicht möglich"
Hab das Hauptformular dann gebunden, konnte dann den Assistenten starten, aber nicht das Listenfeld auswählen.
Listenfeld ist ungebunden.
Hallo,
Du darfst dem Assistenten nicht alles glauben...
Hallo,
aber er lässt sich leider nicht zwingen. :-[
Nachtrag:
Muss ich irgendetwas beim erstellen des Listenfeldes, oder der Formulare beachten?
Hallo,
dann zwing Dich(!) dazu, den nicht zu verwenden...
Stelle doch einfach wie gesagt die Verknüpfungseigenschaften ein...
Hallo,
Achso.
Den Assistenten einfach ignorieren hat geklappt.
Das Ganze funktioniert jetzt.
Danke.