1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Acces 2003 2 Formulare verknüpfen hilfe

Discussion in 'Office-Programme' started by asta36, Dec 25, 2006.

Thread Status:
Not open for further replies.
  1. asta36

    asta36 Byte

    Hallo;
    aus optischen gründen möchte ich gerne 3 Tabellen auf 2 Forumlar Blättern verbinden.
    Erstes Formular Kunden/ 2 Formular Vertragdaten und Vertragsdatemdetails.
    Aber jetzt kommt es, ich möchte nicht 2 Tabellen auf dem 2 Formular haben. Weil es nicht übersichtlich ist. Auf dem 2 Formular möchte ich die Vertragsdaten einspaltig und Vertragsdaten details als Tabelle.
    1) Kundentabelle Primärschlüssel KundenNr
    2)Vertragsdaten Primärschlüssel VertragsNr
    3)Vertragsdaten details
    Ich mache auf das Formular Kunden eine Befehlschaltfläche zu Formular Vertragsdaten mit Vertragsdatendetails. So weit ok. Aber wenn ich einen neuen Vorfall zum Vertrag erstellen möchte, der sich auf diese KundenNr bezieht, zeigt er die KundenNr nicht mehr an. Wie kann ich das ändern? Ich hoffe ich konnte mein Problem erklären? Vielen Dank für eure Hilfe.
     
  2. Hascheff

    Hascheff Moderator

    Ein klassischer Fall für Unterformulare.
    Am besten ist es, mit dem letzten Unterformular anzufangen, hier also mit den Vertragsdetails. Als Standardansicht, besser noch als einzig zugelassene Ansicht empfiehlt sich Datenblatt.
    Dann erstellst du das Formular mit den Vertragsdaten und ziehst ein Unterformular auf. Wenn du den Werkzeugassistenten aktiviert hast, geht das fast von allein.
    Als letztes dann Kunden genauso.
    Man kann vom Unterformular in der Datenblattansicht auch entscheiden, ob die Spaltenköpfe angezeigt werden soll. Wenn es um Schönheit geht, blendet man die aus und erstellt im Oberformular Bezeichnungsfelder.

    Falls Kunden und Verträge in 1:1-Beziehung stehen, reichen auch 2 Formulare.
     
  3. asta36

    asta36 Byte

    Hallo interessant finde ich deinen letzten Satz. Habe ich das richtig verstanden? Also, wenn ich das so haben möchte: 1 Formular Kunden Einspaltig, 2 Formular Oben Vertragsdaten Kunden und Unterformular details. Jetzt blende ich die Spalten von Vertragsdaten aus und erstelle Bezeichnungsfelder? Wie soll das gehen? Und wenn ich Bezeichnungsfelder erstelle? Habe ich nicht dann das gleiche Problem wieder? Das sobald ich einen neuen Vorfall für meine Vertragsdaten erstellen möchte meine KundenNR verschwindet? Gruß asta36
     
  4. Hascheff

    Hascheff Moderator

    Ich glaube, du meinst den vorletzten Satz, aber zunächst nochmal zum letzten Satz.
    Hat jeder Kunde grundsätzlich nur einen Vertrag, oder können es auch mehrere sein.

    Eine Firma hat z.B. Wartungsverträge, wie ich z.B. für meine Gastherme. Jedes Jahr bekomme ich eine Rechnung, das wäre dann ein Vertragsdetail. Es gibt also grundsätzlich nur einen Vertrag. Das wäre eine 1:1-Beziehung.

    Meine Autowerkstatt macht dagegen jedesmal einen neuen Vertrag. Das wäre eine 1:n-Beziehung.

    Bei einer 1:1-Beziehung erstellt man vorher eine Abfrage und packt alles in ein Formular. (Dazu mehr, falls du meine Vermutung bestätigst.) Beim Formularassistenten wählst du einspaltig und gehst danach in die Entwurfsansicht.
    Die Kundendaten lässt du links, die Vertragsdaten ziehst du nach rechts oben, so dass rechts unten ein möglichst großes Rechteck für das Unterformular frei bleibt.

    Nun zum vorletzten Satz:
    In der Datenblattansicht stehen in den Spaltenköpfen die Namen der Textfelder (oder anderer Objekte). Die kann man zwar ändern, aber in gewissen Grenzen (kein Leerzeichen). Deshalb gibt es in den Eigenschaften eines Unterformulars die Wahl, die Spaltenköpfe anzeigen zu lassen.
    Wenn man sich für nein entscheidet, muss man natürlich für die nötige Info direkt über dem Unterformular sorgen. Mit Bezeichnungsfeldern hat man z.B. die Möglichkeit, mehrzeilig zu schreiben oder den Text vertikal anzuordnen (Register "Andere").
    Der Nachteil dieser Lösung: du darfst dann nicht mehr die Spaltenbreite im Unterformular ändern, sonst musst du von Hand diese Bezeichnungsfelder ändern.
     
  5. asta36

    asta36 Byte

    Vielleicht konnte ich dir jetzt besser mein Problem senden. Ich danke dir auf jeden fall für deine Mühe. Mfg asta36
     
  6. Hascheff

    Hascheff Moderator

    Hallo,
    ich war mal 2 Tage weg, heute schaff ich auch nicht mehr viel.
    Wir müssen noch ein paar Grundfragen klären.

    Zunächst: Besteht zwischen Vertragsdaten und Vertragsdaten-Details eine 1:n oder 1:1-Beziehung? (Müsste jetzt auch ohne Bsp. klar sein)
     
  7. asta36

    asta36 Byte

    hallo,
    danke für deine mühe. Es besteht eine 1:n Beziehung.
    Gruß asta36
     
  8. Hascheff

    Hascheff Moderator

    Hallo,
    ok, ich hab noch mal #1 gelesen. Du hast schon ein Formular für Kundendaten mit Schaltfläche zum Öffnen des Formulars für Vertragsdaten. Das kannst du alles so lassen.

    Eine Frage habe ich dazu noch: Welche Ansicht hat dieses Formular?
    Falls es Listenansicht ist, dann könnte man noch ein drittes Formular ins Spiel bringen, aber das kommt erst zum Schluss:

    1. Formular Kundendaten
    2. Formular Kunde mit Unterformular Vertragsdaten
    3. Formular Vertrag mit Unterformular Vertragsdatendetails
    Falls es nicht Listenansicht ist, entfällt das erste Formular.
    Es ist dann aber auch möglich, nur ein Formular zu benutzen:

    Formular Kundendaten mit Unterformular Verträge mit Unterformular Vertragsdetails
    In jedem Fall beginnt man mit der Erstellung der einzelnen Formulare und fügt ein bereits erstelltes Formular als Unterformular ein. Am Ende nimmt man am "Ober"formular kosmetische Korrekturen vor.

    Bevor man überhaupt Formulare erstellt, muss die Datenbasis stimmen.

    Ich gehe davon aus (zum Teil hast du das in #1 schon beschrieben), dass du
    - eine Tabelle Kunden mit Primärschlüssel KundenNr,
    - eine Tabelle Verträge mit Primärschlüssel VertragsNr
    - eine Tabelle Vertragsdetails mit Primärschlüssel DetailNr​
    hast. (Der Namensbestandteil "daten" ist unnütz)

    Außerdem müssen die Tabellen in Beziehung stehen:
    - die Tabelle Verträge enthält ein Feld KundenNr
    - die Tabelle Vertragsdetails enthält ein Feld VertragsNr​

    Namensdoppelungen irritieren, ich habe ein System, bei dem der Primärschlüssel verkürzt wird, also KNr, VNr und DNr.
    Aus dem gleichen Grund setze ich vor Tabellenbezeichnungen ein T, vor Abfragen ein A, vor Formulare ein F und vor Berichte ein B.
    Ich nenne also im folgenden die Tabellen TKunden, TVerträge und TVertragsdetails.

    Es empfiehlt sich, die Beziehungen im Fenster "Beziehungen" festzuhalten.
    Für das Erstellen der Datenbankobjekte ist es nur eine Arbeitserleichterung, echter Nutzen entsteht erst später, wenn man festlegt, dass ein Kunde erst dann gelöscht werden kann, wenn keine Verträge mehr existieren oder mit einem Vertrag auch alle dazugehörigen Detail-Datensätze gelöscht werden.
    Du ziehst mit der Maus einfach KNr nach KundenNr in der anderen Tabelle, der Rest kommt allein oder ist gut erklärt.
    Wenn du eine Abfrage erstellst, kommt diese Beziehung automatisch zur Wirkung, kann aber in der Abfrage auch geändert werden.

    Genug für heute, erst mal sehen, ob alles klar ist.
     
Thread Status:
Not open for further replies.

Share This Page