Office: (Office 2013) VBA, Formulare, Verknüpfungen

Helfe beim Thema VBA, Formulare, Verknüpfungen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Liebe Forumsmitglieder Gerne möchte ich Euch um eine Gefallen bitten wenn ich darf ... Hier eine Beispiel: DB DB_TEST1_.rar Ich habe alles auf die... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von pubbl, 28. Juni 2015.

  1. VBA, Formulare, Verknüpfungen


    Liebe Forumsmitglieder

    Gerne möchte ich Euch um eine Gefallen bitten wenn ich darf ...
    Hier eine Beispiel: DB
    DB_TEST1_.rar

    Ich habe alles auf die wesentlichen Funktionen reduziert, und hoffe, meine Wünsche verwirren niemanden ...
    Es ist nicht das versprochene DB-Modell - ich weiss - dieses kommt zu einem späteren Zeitpunkt... es ist zu komplex und ich möchte keine Romane mehr schreiben. Bitte um Verständnis.

    Momentan geht es nicht um ein DB-Modell sondern um ganz simple technische Fragen zu VBA und Kombinationsfeldern, Verknüpfungen etc...

    Wie ihr seht ist alles sehr einfach gehalten.

    Um was geht es ?
    ------------------------
    Ich habe 3 Tabellen + 1 Formular:
    A tbl_Personen
    B tbl_KategorieAuswahl (>> wird nicht beschrieben / dient nur als Auswahl fürs Formular)
    C tbl_KatGruppePersonen

    Die "Pers_ID" (aus "tbl_Personen") soll zusammen mit der "Kat_Nr" (aus tbl_KategorieAuswahl) kombiniert werden können und in die Tabelle "tbl_KatGruppePersonen" gespeichert werden.
    Dies möchte ich erreichen, indem ich - im Formular - ein Kombinationsfeld habe welches die "Kat_Beschreibung" ausliest (rot, blau, grün), und in die tbl_KatGruppePersonen abspeichert - zugehörig zur "Pers_ID" und mit der "Kat_Nr" (d.h. wenn möglich nicht mit der Beschreibung selbst)

    So weit machbar ? Ok....
    Jetzt folgendes, ist es für Euch Gurus denkbar(bzw. möglich), dass eine VBA-Funktion erkennt ob die Person bereits einer Kategorie angehört und bei erneutem Auswählen des Kombi-Feldes (aus dem Formular heraus - bzw. dem erneuten Drücken der Speichern-Schaltfläche) eine MsgBox ausgibt ob die Person einer weiteren Kategorie zugeteilt werden soll ? Ja/Nein ...

    Bei erneuter Speicherung soll im Formular eine Kombination der alten und neuen Kategorie sichtbar werden (in einem Zusatzfeld) - und zwar nicht als Zahl sondern wieder als Text. *confused.gif*

    Es ist mir bewusst, dass ein Kombinationsfeld nur einen Wert auf einmal abspeichern kann. Die Frage ist nur ... ob es per VBA technisch machbar wäre etwas zu tricksen. Es ist mir ebenfalls bewusst, dass mit Listenfeldern Mehrfachauswahl gemacht werden kann ... doch ich interessiere mich fürs Combi-Feld. Ebenfalls kann ich verstehen wenn gleich Kritik zu meinen Ideen und Verknüpfungen kommen... *redface

    Da würde mir ein rieesen Stein vom Herzen fallen wenn das ginge .... *Smilie
    und Ihr wärt absolut genial!
    pubbl

    :)
     
    pubbl, 28. Juni 2015
    #1
  2. Hallo,
    du hast da einen etwas falschen Ansatz.
    Zum Zeitpunkt wo du die Personendaten speicherst hast du noch keine PersonenID, also kannst du diese nicht einer KategorieID zuordnen.
    D.H. bevor die Tabelle KatGruppePersonen befüllt werden kann müssen die Daten in den Tabellen vorliegen.

    D.h. beim Speichern schreibst du die Personendaten weg, danach holst du dir den zuletzt eingefügte ID und schreibst diesen zusammen mit dem KategorieID in die Zwischentabelle.

    ABER
    Wenn ich mir das so ansehe, warum der Aufwand, weil so 1 Person nur 1 Kategorie haben kann und umgekehrt in 1 Kategorien mehrere Personen sein können. Das ist eine klassische 1:n Beziehung und nicht m:n

    Gruß Andreas
     
    avogt_at_home, 30. Juni 2015
    #2
  3. Es ist eigentlich umgekehrt gedacht, in einer Kategorie (rot, blau, gelb...) kann nur eine Person_ID sein. Denn man kann nicht 2x in der Kategorie "rot" sein. Aber eine Person (bzw. Pers_ID) kann durchaus mehrere Kategorien haben.

    Das mit dem Abspeichern der Pers_ID und Kategorie verstehe ich ... ich habe nur ein paar Bsp. Daten eingegen, damit es (für Euch) nicht so leer aussieht *wink.gif* In Realität soll selbstverständlich über das Formular eine Eingabe der Pers_ID und Kategorie per VBA od. Eigenschaften der Tabellen eine Eingabe erzwungen werden - bevor man korrekt abspeichern kann!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    pubbl, 30. Juni 2015
    #3
  4. VBA, Formulare, Verknüpfungen

    Hallo!

    Da du Access 2013 verwendest, könntest du ein wenig tricksen, da damit in einem Kombinationsfeld auch mehrere Einträge ausgewählt werden können, wenn es an ein Datenfeld mit der Einstellung "Mehrfachauswahl zulassen" gebunden ist.
    Anm.: diese Felder bilden intern eine n:m-Zwischentabelle ab. Man kann diese Tabellen allerdings nicht im Entwurf ändern. => daher würde ich so etwas nur mit einer lokalen Hilfstabelle für die Oberflächengestaltung nutzen, die "Echt-Daten" aber in einer normalen Zwischentabelle ablegen.

    Zusammengefasst: dein Vorhaben ist umsetzbar, aber mit mehr Aufwand, als ein "üblicher Weg" mittels Unterformular und Checkboxen für die Auswahl.

    mfg
    Josef
     
    Josef P., 30. Juni 2015
    #4
  5. Ich habe mal ein Beispiel erstellt. Dabei habe ich
    1. die Beziehung richtig gesetzt (m:n - Beziehung)
    2. die Schlüssel benutzt statt der Nummern
    3. und ein Unterformular verwendet
    Es gibt Version 1 (nur Unterformular) und Version 2 (1 Kombi im HF zur Auswahl, Ufo zur Anzeige). Version 3 (1 Kombi und Textfeld im HF zur Anzeige) kannst du dann selbst.

    EDIT: und eine Möglichkeit zum Löschen würde ich noch einbauen.

    maike
     
    maikek, 30. Juni 2015
    #5
  6. Hallo,
    Du fängst auch hier in diesem Thema falsch an.
    technische Fragen zu VBA Formularen und Kombinationsfeldern machen ohne das Datenmodell keinen Sinn. Erst muss das Datenmmodell stimmen, dann kannst Du über das andere nachdenken. Du machst Dir jetzt Gedanken zu Kombifeldern und VBA und laäufst Gefahr, dass das alles für die Katz war, denn bei korrektem Datenmodell wirst Du dann vieles wieder in die Tonne treten können.

    Deine Frage nach Mehrfachauswahl für Kombis stellt sich bei einer korrekt aufgebauten n:m Beziehung gar nicht, weil man dazu ein Unterformular verwendet in dem mit einem Kombi jeweils ein Eintrag ausgewählt wird. Die nächste Auswahl ist dann ein neuer Datensatz mit neuer Auswahl mit dem gleichen Kombi.

    Deine Beziehungen sind unlogisch, eine Beziehung von IDPers zu IDKat ist absolut unsinnig (sorry).

    Ich habe das mal umgebaut. Auch ein Unterformular habe ich mal eingebaut.


    Nachtrag:
    Habe etwas länger benötigt zum Schreiben, daher war Maike schneller. Aber beide Antworten sind im wesentlichen gleich.
     
    gpswanderer, 30. Juni 2015
    #6
  7. \@maike
    Vielen herzlichen Dank - die Verknüpfungen sind jetzt sicherlich korrekt und vom Prinzip her ist mir die Version02 lieber - d.h. Combifeld im Hfo und Anzeige im Ufo.
    Ist es möglich ... im Ufo nur die ausgewählten Werte als simplen Text anzuzeigen ? evtl. mit Bearbeitungsmöglichkeiten ... vom Hfo aus ?
    Betr. Darstellung im Ufo ... krieg ich das mit den Eigenschaften des Formulars noch hin - oder brauchts etwas mehr Wissen ?
    Wenn noch eine Löschen-Schaltfläche hinzukommen würde, wäre das natürlich mega! *Smilie
     
    pubbl, 30. Juni 2015
    #7
  8. VBA, Formulare, Verknüpfungen

    Wie genau meinst du das? Hintereinanderweg mit Komma? Das wäre dann die SQLListe.
    Oder du könntest einfach ein Listenfeld verwenden im HF, das an die KatGrupPerson-Tabelle gebunden ist und darauf ein Requery setzen.
    Was für Bearbeitungsmöglichkeiten?
    Im Ufo einfach ein kleines Knöppsche mit Papierkorb drauf oder so, dahinter dann Löschabfrage:
    Code:
    Wenn Listenfeld, dann ähnlich (Löschabfrage) und bei beiden dann ein .Requery.
    maike
     
    maikek, 30. Juni 2015
    #8
  9. Erstmal vielen Dank für deine Hilfe - Du hast sicherlich recht, dass meine Verknüpfungen unlogisch waren - fand ich auch. Doch nur in dieser Kombination meckerte Access nicht betr. referentieller Integrität.... jetzt ist die Verknüpfung natürlich perfekt...
    Betr. DB-Modell hast du sicherlich nicht unrecht, aber wie schon oben beschrieben wäre eine Beschreibung des DB-Modells viel zu umfassend und zu verwirrend, deshalb wage ich es ... auf eigenes Risiko andere Wege.
    Ja, ich habe ein umfassendes DB-Modell... aber ich muss unter anderer Thematik darauf eingeben.
    Bitte um Verständnis und bedanke mich!
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    pubbl, 30. Juni 2015
    #9
  10. Dass in der anderen Konstellation gemeckert wurde lag daran, dass bereits Datensätze in den Tabellen vorhanden waren, die gegen diese Integrität verstießen. In so einem Fall Tabellen leeren, Beziehung neu setzen - nicht einfach anders hinwürgen.
    maike
     
    maikek, 30. Juni 2015
    #10
  11. Hallo Josef P. - wenn das mal keine klare Antwort ist ... Danke!
    Also wenn ich das richtig verstanden habe, dann kann nur Access2013 mit "Mehrfachauswahlfeldern" mit "KombiF."arbeiten ?
    Wurde nicht von den Mehrfachauswahlfeldern unter Entwicklern gewarnt ?
    Sie seien zu unübersichtlich etc.... und würde das bedeuten, dass Personen mit älteren Access Versionen z.B. 2003 mir in dieser Hinsicht nicht mehr helfen könnten?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  12. Das tönt optimal - Genau.
    Ein Listenfeld im Hfo welches an die KatGrupPers-Tab. gebunden ist - mit der Aktualisierungsabfrage...
    Mit Bearbeitungsmöglickeiten meine ich nur eine Möglicheit Person aus einer Zusatzkategorie wieder anzupassen = herauslöschen. Aber nur Kategorie nicht Person.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  13. VBA, Formulare, Verknüpfungen

    Da das immer jeweils ein Datensatz ist (KGPID, PersFK, KatFK) musst du auch die Person in diesem einen Datensatz löschen, bzw. den kompletten Satz. Daher als Kriterium die KGPID, die ist für jeden Datensatz eindeutig.
    maike
     
    maikek, 30. Juni 2015
    #13
  14. Hallo!
    Ich würde diese Felder zur Datenspeicherung auch nicht nutzen. Ich könnte sie gar nicht verwenden, da ich kein Access-Backend einsetze. *wink.gif*

    Aber als Design-Element für Formulare finde ich sie durchaus interessant.
    Leider haben die Microsoft-Access-Entwickler diese Funktionalität nur bei Bindung an ein Tabellenfeld mit Mehrfachauswahl zur Verfügung gestellt.
    Somit ist man zumindest an eine temporäre Access-Tabelle gebunden, damit man diese Mehrfachauswahl in einem Formular nutzen kann.

    Mit etwas Aufwand lässt sich bestimmt eine brauchbar Lösung erstellen.

    mfg
    Josef
     
    Josef P., 30. Juni 2015
    #14
  15. Guten Tag,

    Bisher wurden Vorschläge/Lösungen mit einem AutoWert aufgezeigt - das scheint zwar zu funktionieren - aber gibt es denn keine Möglichkeit, mit meinen eigenen selbstdefinierten Zahlen - bei Kat_Nr in der tbl_KategorieAuswahl - eine Zuordnung (mit der Pers_ID) in der tbl_KatGruppePersonen zu erreichen ?? ...dies war ja meine ursprüngliche Frage
    Selbstverständlich kann auch weiterhin mit AutoWert gearbeitet werden, einfach unsichtbar. Ebenfalls muss die Pers_ID als alphanumerischer Wert der Kategorie zugeordnet werden können - und nicht bloss ein AutoWert. Oder führt meine Idee nicht zu einer korrekten Verknüpfung? Evtl. schliesst man aus dem AutoWert auf diese Zahlen bzw. Text. Wenns dann halt nur so geht ...
    Danke
     
Thema:

VBA, Formulare, Verknüpfungen

Die Seite wird geladen...
  1. VBA, Formulare, Verknüpfungen - Similar Threads - VBA Formulare Verknüpfungen

  2. Im Formular mit VBA-Code in Datensätzen blättern

    in Microsoft Access Hilfe
    Im Formular mit VBA-Code in Datensätzen blättern: Hallo Forum, wie kann ich in einem Formular mit VBA-Code nach Datensätzen blättern ? ich möchte in einem numerischen Feld den ersten Datensatz finden, in dem das Feld leer ist. Wie sieht eine...
  3. MSAccess - Feldinhalt in Formular aus anderer Tabelle befüllen (VBA)

    in Microsoft Access Hilfe
    MSAccess - Feldinhalt in Formular aus anderer Tabelle befüllen (VBA): Hallo und guten Tag allerseits, ich habe ein, für viele von Euch sicherlich einfach zu lösendes Problem. In meiner Tabelle literatur habe ich unter anderem die Felder Magazin, Kennung_Jahrgang,...
  4. VBA Formular rechnet nicht

    in Microsoft Excel Hilfe
    VBA Formular rechnet nicht: Hallo zusammen, ich habe ein Problem mit der angehängten Datei. Diese besteht aus: Der Tabelle1 in welcher sich ein CommandButton befindet, der nichts weiter tut, als die UserForm zu öffnen....
  5. Hilfe

    in Microsoft Excel Hilfe
    Hilfe: Liebe Alle, ich bin ganz neu in diesem Forum und bräuchte Hilfe zu einem Excel Projekt. Ich möchte (siehe Bild 1) das die Felder die dort ausgefüllt werden automatisch in Bild 2 übertragen in...
  6. Formular mit Bedingung öffnen aus einem Listenfeld heraus (VBA)

    in Microsoft Access Hilfe
    Formular mit Bedingung öffnen aus einem Listenfeld heraus (VBA): Hallo zusammen, ich möchte aus einem Listenfeld ein Formular mit einer Bedingung öffnen, wenn ich die Enter/Return-Taste drücke. Hinweis: im gleichen Formular ist bereits die Enter-Taste schon...
  7. Formulare - Übergabe von Primär- und Fremdschlüssel mit VBA o. ä.

    in Microsoft Access Hilfe
    Formulare - Übergabe von Primär- und Fremdschlüssel mit VBA o. ä.: Hallo zusammen, ich benötige Hilfe bei Formularen und VBA. Ich habe ein Hauptformular mit drei Unterformularen. Im Kopfbereich des Hauptformulars befinden sich mehrere Befehlsschaltflächen,...
  8. Excel VBA aus einem Formular Daten in eine geschlossen Arbeitsmappe zu übertragen

    in Microsoft Excel Hilfe
    Excel VBA aus einem Formular Daten in eine geschlossen Arbeitsmappe zu übertragen: Hallo, ich bräuchte mal eure Hilfe Ich habe ein Solaranlage, wo ich jede Woche neu Daten bekomme, die ich in der Arbeitsmappe SolarStrom 2020_01_01 speichere. Die Daten werden in eine Formular...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden