Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: VerenaM am November 09, 2021, 15:59:41

Titel: Navigationsformulare
Beitrag von: VerenaM am November 09, 2021, 15:59:41
Hallo zusammen!

Ich hätte wieder eine Frage zu den Formularen:

kann man bei den Navigationsformularen das Hauptformular als einen horizontalen NaviButton haben und die Subform als vertikalen NaviButton? Zum Beispiel: man hat ein Formular mit den persönlichen Infos als Hauptformular (obere Navigation) und mehrere Unterformulare mit Telefonnummern, Räumen, Emails etc. (vertikal). Und wenn es möglich ist, wo verlinkt man sie zueinander?


Vielen Dank für eure Hilfe!
Verena
Titel: Re: Navigationsformulare
Beitrag von: andyfau am November 09, 2021, 16:48:10
Hallo Verena,

hier gibt es en schönes Video zu dem Thema.

https://support.microsoft.com/de-de/office/video-erstellen-von-navigationsformularen-67773fba-1ddb-4624-a07f-fc84e8c82de8 (https://support.microsoft.com/de-de/office/video-erstellen-von-navigationsformularen-67773fba-1ddb-4624-a07f-fc84e8c82de8)

Beste Grüße
Andreas
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 09, 2021, 16:49:25
Hallo,

es sollte möglich sein, das "Haupt"-Navigationsform mit horizontal angelegten Buttons zu erstellen und als als jeweiliges Unterformular ebenfalls ein Navi-Form zu benutzen, das vertikal angeordnete Buttons besitzt.


Die Eigenschaft "Name des Navigationsziels" der einzelnen Buttons definiert das Formular, das in das Ufo-Steuerelement mit Namen "Navigationsunterformular" (sofern nicht geändert) geladen wird, sobald man den betroffenen Button anklickt.
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 09, 2021, 16:56:57
Danke euch!

Ich schaue es mir gleich an. Ich habe mit Navi-Forms noch nie etwas gemacht, aber wenn es klappen würde, wäre meine DB super übersichtlich :-)

LG,
Verena
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 09, 2021, 18:10:24
Hallo zusammen,

ich habe es jetzt versucht:
a) ein Formular mit horizontalen Buttons erstellt (Person - soll Hauptbutton sein);
b) ein Navigation-Element in das Formular vertikal eingebaut und mit dem Unterformular 'SubForm_PersonEmail' verbunden.

Nur weiß ich immer noch nicht, wo ich diese zwei Elemente als Master-Child verbinden kann. Vermutlich mache ich es super umständlich, aber nun ja, ich lerne :-)

Die DB NaviSubnavi.zip ist vorsichtshalber angehängt, damit ihr sehen könnt, was ich meine. Das 'fraglichen' Formular heißt 'NavigationTest'.

Hoffentlich habe ich es halbwegs verständlich erklärt.

Danke euch!
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 09, 2021, 19:42:53
Hallo,

da verstehen wir uns miss...


Das Formular "Personal Information"   muss selber auch ein Navigationsformular sein.
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 09, 2021, 21:28:47
Hallo Franz,

ich verstehe es nicht, sorry...
Meine Idee war:
ein Navigationsformular mit horizontalen und vertikalen Buttons anzulegen;
das 'Personal Information'-Formular (ohne Citizenship) zu einem horizontalen Button zu machen;
das Subformular Subform_Citizenship zu dem vertikalen Button.
 
Und es sollte so wie in einem schon existierenden 'Personal Information' Formular mit einem eingebundenen 'Subform_Citizenship' funktionieren: wenn man in einem Datensatz einer bestimmten Person ist, werden die Emails dieser Person dargestellt.
Und ich dachte, dass man dafür den Button oben (das Hauptformular) mit dem Button links (Unterformular) richtig verlinken sollte (wie bei der Form-Subform Beziehung). Ist es möglich oder bin ich da ganz falsch?
Dass man unterschiedliche Formulare in unterschiedliche Buttons packen kann, das habe ich versucht und es klappt, aber dass sie untereinander verbunden sind, noch nicht...

Danke,
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 10, 2021, 08:52:47
Hallo,

ich denke, da bist Du auf einem Irrweg. Zudem wäre die Vorgabe etwas verquert.


1) mit Hilfe eines Navi-Buttons des Navi-Forms zeigst Du das Form "Personal Information" an. (Bestimmte Person)---> OK

2) mit Hilfe eines weiteren Navi-Buttons soll jetzt im Navigationsunter(!)formular  ("Personal Information") ein UFO-Steuerelement so gesteuert werden, dass es z. B. die Mails zu dieser bestimmten Person anzeigt. Ein nochmals weiterer Button im Navi-Form soll nun anstelle der Mails das "Countries"-Formular in UFO-Steuerelement anzeigen....



Das passt doch hinten und vorne nicht, und eine Steuerung über Navi-Buttons im Navi-Form wird so (zumindest nicht ohne Aufwand) nicht gehen.


Wenn mehrere personal-spezifische Detaildaten im Form "Personal Information" (entspricht 1:n-Beziehungen ) angezeigt werden sollen, dann baue ein Registersteuerelement in "Personal Information" ein, das die Unterformulare (UFO-Steuerelemente) mit den Detaildaten (---> alle Tabellen mit "Person_xxxx") anzeigt. Diese UFOs werden dann über die Master(Child-Eigenschaften mit dem HFO verknüpft.

Mit den Reitern des Reg-St-Elementes werden die jeweilgen Detaildaten (UFOs) ausgewählt.



Egentlich hast Du ja nur eine "Haupttabelle" ("Person") , alle anderen Tabellen sind Detailtabellen.

Das sollte sich auch in der Formularkonstruktion widerspiegeln. HFO--> 1-Tabelle,  UFOs ---> n-Tabellen.

Dafür braucht es aber bei dieser Konstellaton kein Navi-Form als Hauptform.  Das wäre nur sinnvoll, wenn es Neben "Person" eine andere "Haupt"-Tabelle gäbe, z.b. "Rechnungen" oder Ähnliches.





Du könntest aber anstelle des Register-Steuerelementes ein Navi-Form einsetzen. Dann wäre das Navi-Form innerhalb  von "Personal Information" eingebaut im Gegensatz zu Deiner Vorstellung, bei der das "Personal Information"-Form innerhalb des Navi-Forms platziert ist.

Die Verknüpfung ("Master-Child") geschieht beim Navi-Form über die Eigenschaft "Where-Klausel für Navigation"



Hoffe, der Lang-Text macht es deutlich..  :D


Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 10, 2021, 11:33:58
Morgen!

Zitat von: DF6GL am November 10, 2021, 08:52:47Hoffe, der Lang-Text macht es deutlich..  (https://www.access-o-mania.de/forum/Smileys/fugue/cheesy.png)

macht es nur zum Teil :-). Ich habe vermutlich die Nomenklatur mit Buttons, Navi-Elementen durcheinandergebracht, kann das sein?
Um es eindeutig zu machen:

Es gibt 4 Typen von Informationen, die ich darstelle:

1. Persönliche Infos (ein HFO mit einem UFO: Personal Information)
2. Gruppen Infos (ein HFO mit mehreren UFO: Group Information)
3. Vertrag Infos (ein HFO mit einem UFO: Contract Information)
4. Kontakt Infos (ein HFO mit mehreren UFO: Contact Information)

Du hast recht, Franz, es ist *eine* Person-Tabelle, die bei mir als HFO dienen sollte, aber je nachdem, welche Infos ich darstelle (1, 2, 3 oder 4), hole ich zusätzliche Felder aus der Person-Tabelle noch heraus. Deswegen habe ich 4 HFOs gemacht mit mehreren UFOs. Hoffentlich ist es ok so.
Und die HFOs wollte ich in die obere 'Hauptnavigation' bringen und die UFOs in die Unternavigation (zu dem jeweiligen HFO).

Wäre das, was du hier meintest:
"Du könntest aber anstelle des Register-Steuerelementes ein Navi-Form einsetzen. Dann wäre das Navi-Form innerhalb  von "Personal Information" eingebaut im Gegensatz zu Deiner Vorstellung, bei der das "Personal Information"-Form innerhalb des Navi-Forms platziert ist."


also doch möglich?
Jetzt kämpfe ich mich durch die "Where-Klausel für Navigation" :-)
Ich habe es in der "Navigation Form1" versucht.

NaviSubnavi_02.zip

Mit
Form.Personal Information.PersonID= SubForm_Citizenship.PersonID_F

ist es nicht getan. Könntest du mir bitte sagen, was ich hier falsch mache?
Mensch, ist es lang geworden... sorry

Danke!
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 10, 2021, 12:43:58
Hallo,


beginnen wir mal:

Zitat von: undefinedEs gibt 4 Typen von Informationen, die ich darstelle:

1. Persönliche Infos (ein HFO mit einem UFO: Personal Information)
2. Gruppen Infos (ein HFO mit mehreren UFO: Group Information)
3. Vertrag Infos (ein HFO mit einem UFO: Contract Information)
4. Kontakt Infos (ein HFO mit mehreren UFO: Contact Information)

Meine Vorstellung:

HFO ("Personen", Navigationsformular) mit Datenbasis Tabelle "Person". 
Für jede n-Tabelle ein Navi-Button mit entspr. ular (z. B. "Group Information", "Contract Informaton", "Mails", etc)
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 10, 2021, 13:14:00
Danke, dass du es dir anguckst Franz!!!
Genau so habe  ich es mir gedacht, bis auf .... klar, musste jetzt kommen :-D

Je nachdem, welche Info (1,2,3 oder 4) ich anzeige, erscheinen unterschiedliche Daten aus der Person-Tabelle. Ich habe Screenshots angehängt.

PersonalInfo_Info_zu Person.png
Contact_Info_zu_Person.png
Contract_Info_zu Person.png

Und weil es so unterschiedlich ist, wollte ich 4 verschiedene HFO haben und Haupt- und Unternavigation (für die UFOs) dazu.

Wenn es nicht unkompliziert anders geht, werde ich es so machen. Aber ich habe eine Menge UFOs (10 glaube ich insgesamt), deswegen wollte ich sie gruppieren.

Danke dir für die Hilfe!
Verena


Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 10, 2021, 13:59:10
Hallo,

so ganz genau verstehe ich nicht, was Du mir jetzt sagen willst..


Ich denke, Du zäumst das Pferd von hinten auf.


Erste wird eine Person im (Haupt-)Formualr angezeigt, und dann (als Unterformulare) die daran angehängten n-Tabellen (mittels darauf basierenden Formularen(--> (UFOs).

Ob Du die UFOs mit Hilfe eines Navi-Forms oder mittels auf einem Register eingebauten UFOs anzeicgst, ist nur "Ansichts"-Sache.

Ich würde auch in den Access-Optionen von Registerkartenformat auf Überlappende Fenster unstellen und als Startformular das (mein vorgeschlagenes) Navi-Form einstellen. Später sieht dann der User nur das Personen-(Navigations)-Formular  und kann nach dem vollständigen Ausbau der Navi-Buttons alle Daten ansehen/bearbeiten.


Wenn für die DB weitere "Module" außer den Personaldaten vorgesehen sind, ist es vorstellbar, als Startform ein weiteres ungebundenes und übergeordnetes Navi-Form zu generieren, das mittels seiner Buttons nun seinerseits das Personal-(Navi-)Form anzeigt oder weitere DB-Funktionen visualisiert, z. B. ein Form, mit dem man Berichte und davon abhängig passende Kriterien auswählen/eingeben und drucken kann. Oder noch als Beispiel: Ein Form, das DB-Parameter, bzw. Grundeinstellungen behandelt.

Im Bild sieht Du, wie ich es meine.  Es ist zwar kein Navi-Form, aber das Treeview-Steuerelement (Navigation) visualisiert das und funktioniert in ähnlicher Weise
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 10, 2021, 15:48:12
Hallo Franz,

danke dir für die schnelle Antwort!

Ideen zu Papier zu bringen  ;)
Ich glaube, das ist es: ich wollte vier HFO machen, damit die Infos nicht auf 10 Reiter verteilt sind.
Ich habe es umgebaut (Bilder angehängt NaviBilder.zip). Ist es jetzt logisch?

Und eine Frage hätte ich noch: wie synchronisiere ich alle Reiter untereinander? Wenn ich einen Datensatz in Pers. Information bearbeite, dann möchte ich, dass er auch in den anderen ausgewählt ist. Es ist sicherlich möglich, nur weiß ich nicht wie  :-[

Danke dir für die Hilfe!
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 10, 2021, 17:03:02
Hallo,

die Bilder kann ich leider nicht öffnen...


Besser wäre sowieso die DB im ZIP-Format hochzuladen.

ZitatWenn ich einen Datensatz in Pers. Information bearbeite, dann möchte ich, dass er auch in den anderen ausgewählt ist.

Ich befürchte, Du bist immer noch auf dem falschen Weg...
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 10, 2021, 17:46:21
Hallo Franz,


Deine Idee mit den überlappenden Fenstern habe ich auch ausprobiert (in der MainForm, etwas vereinfacht vermutlich).

Die DB ist im Anhang. NaviSubnavi_V3.zip
Das Navi-Formular heißt 'Navigation Form'. Ich dachte, ich hätte einen Zwischenweg gefunden... Geht es nicht so?
Siehst du, was ich mit den synchronisierten Datensätzen meine?

Denke dir sehr!
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 11, 2021, 08:49:04
Hallo,

ich finde das Darstellungskonzept etwas ünglücklich, sprich nicht dem Tabellenkonzept entsprechend.

Dadurch ergeben sich Tricksereien und programmtechnischer Aufwand.

Wenn ich es recht verstehe, willst Du ausgehend von der aktuell angezeigten  Person unter Button "Personal Information"  die Daten bei den restlichen Navi-Buttons synchronsieren.


Dann muss Folgendes gemacht werden:

A)
Speichern der PersonID bei "Form_Current" in eine globale Variable (bzw. Tempvars-Auflistung oder benutzerdefinierten Property oder Collection).  In jedem Form, das mit den Navi-Buttons angezeigt wird, muss beim Laden des Forms (Ereignis "Form_Load")  mit dieser globalen Variablen die Filterung auf die PersonID durchgeführt werden.


oder (nicht getestet)

B)
--Erstell im Detailbereich des Navi-Form ein (unsichtbares) Textfeld ("txtPersonID").
--Bei Ereignis "Form_Current" des "Personal Information"-Formulars wird die personID in dieses Textfeld geschrieben:
   Sub Form_Current()
     Me.Parent!txtPersonID = Me!PersonID
   End Sub

-- Bei "Where-Klausel für Navigation" zu jedem Navi-Button kommt zu stehen:     PersonID = txtPersonD
-- Beim Laden des Navi-Forms sollte txtPersonID mit einer gültigen PersionID vorbesetzt werden.




Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 11, 2021, 11:51:22
Hallo Franz,

vielen Dank für deine Hilfe!

Ich werde mich gleich bilden :-D (habe noch nie Variablen in Access benutzt) und versuchen, deinen Vorschlag einzubauen.

Was das Darstellungskonzept betrifft, da wußte ich am Anfang nicht, mit welchen Problemen und Problemchen ich zu kämpfen bekomme.
Ich würde diese Version so abgeben (natürlich ist die deadline da...) und dann versuchen, das Ganze zu verbessern.

Liebe Grüße,
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 11, 2021, 13:46:16
Hallo,


Zitathabe noch nie Variablen in Access benutzt

dann nutze Vorschlag B).....


Was nicht heißen soll, dass Du Dich nicht mit VBA auseinandersetzen sollst.  Ohne VBA bekommst Du keine    vernünftige Ablaufsteuerung und sonstige zusätzliche Funktionen hin.
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 11, 2021, 16:25:07
Hallo Franz,

vielen lieben Dank!
Die B) Variante hat geklappt (wenn ich auch nicht verstehe, wie Access das auch bei einem Formular hat, das keine on Load Funktion hat (Das war bei 'Contract Info' so...)

Hier habe ich angefangen, mich an der Variante A) zu versuchen.

So habe ich mir das Deklarieren der globalen Variable vorgestellt (nur weiß ich nicht, ob es dafür einen bestimmten Ort auch gibt?) und das Zuweisen der PersonID:

********
Dim intPerson As Integer

Private Sub Form_Current()
    intPerson = Person.PersonID
End Sub
********

Und so dachte ich, dass das Filtern funktionieren könnte (was es natürlich nicht tut :-D):

********
Private Sub Form_Load()
    Me!PersonID = intPerson
End Sub
********

Aber gehe ich wenigstens in die richtige Richtiung?

Danke,
Verena
Titel: Re: Navigationsformulare
Beitrag von: DF6GL am November 11, 2021, 17:59:31
Hallo,

wenn man die Richtung korrigiert, ist es schon die richtige...  ;)



Zitatob es dafür einen bestimmten Ort auch gibt

Die Deklarierung der globalen Variablen muss in einem globalen (Standard-) Modul, nicht in einem Form-Klassenmodul passieren:


In einem allgemeinen (Standard-)Modul:

Option Compare Database
Option Explicit

Public intPerson as Long   ' Long, weil Integer einen zu kleinen Wertebereich besitzt.


Die Form_Current-Prozedur muss so heißen:

Private Sub Form_Current()
    intPerson = Me!PersonID
End Sub



Das Filtern kann z. B. so aussehen:

Private Sub Form_Load()
    Me.Filter  = "PersonID = " & intPerson
    Me.FilterOn = True

End Sub


Zitatwenn ich auch nicht verstehe, wie Access das auch bei einem Formular hat, das keine on Load Funktion hat (Das war bei 'Contract Info' so...)

versteh das nicht, was Du damit genau meinst.
Titel: Re: Navigationsformulare
Beitrag von: VerenaM am November 12, 2021, 16:09:58
Hallo Franz,

vielen Dank dir noch mal für deine Hilfe, die Tips und Ideen.

Ich werde wohl in VBA noch viel üben müssen, um alles so zu bekommen, wie ich es mir vorstelle :-)
Bin aber noch an den Reports  dran, möchte ja alles für den Benutzer freundlich machen.

Liebe Grüße,
Verena