Office: (Office 2010) Fehler bei Fremdschlüsselübergabe in neues Formular

Helfe beim Thema Fehler bei Fremdschlüsselübergabe in neues Formular in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen In meinem frmBetriebskontrolle klicke ich im Listenfeld lstBetriebskontrolle auf das entsprechende Jahr, welches ich angezeigt haben... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von raeckaert, 9. Februar 2016.

  1. Fehler bei Fremdschlüsselübergabe in neues Formular


    Hallo zusammen

    In meinem frmBetriebskontrolle klicke ich im Listenfeld lstBetriebskontrolle auf das entsprechende Jahr, welches ich angezeigt haben möchte.
    Im selben frm habe ich je ein Listenfeld für verantwortliche- und verzeigte Personen. Wenn ich nun eine neue Person erfassen möchte, klicke ich auf eine Befehlsschaltfläche mit folgendem Befehl:

    Code:
    Mit dem Bezug auf Bet_ID_F soll sichergestellt sein, dass die später aus dem Listenfeld des frmPersonalien_BK ausgewählte Person auch in der entsprechenden Betriebskontrolle gespeichert wird.
    Das frmPersonalien_BK öffnet sich also auf betätigen und ein Listenfeld mit sämtlichen erfassten Personen erscheint.

    Klicke ich eine Person an, erscheint in den Texfeldern allerdings nichts. Öffne ich das frmPersonalien_BK alleine, funktionierts.
    Somit habe ich es mir beim Code bei der Befehlsschaltfläche cmdPerson_Neu wohl ein bisschen zu einfach gemacht. Aber in wie fern muss ich den anpassen?

    Gruss Richard

    :)
     
    raeckaert, 9. Februar 2016
    #1
  2. Das ist an der Stelle nicht wirklich ein Bezug auf die Bet_ID_F in deinem Sinne, sondern ein Filter für das Formular.
    Der Code für nach Aktualisierung ist irgendwie verschwunden ...
    maike
     
  3. Den habe ich wieder gelöscht, da ich der Meinung bin, dass es sich um den Code beim Öffnen liegen muss.

    Code:
     
    raeckaert, 11. Februar 2016
    #3
  4. Fehler bei Fremdschlüsselübergabe in neues Formular

    Dem Code nach machst du folgendes:
    Du öffnest das Formular frmPersonalien_BK mit einem Filter auf die aktuelle Bet_ID_F.
    Dann gibst du in diesem Formular den Befehl, den Datensatz mit der ausgewählten Person zu finden.
    Da du die aber erst neu zur BK hinzufügen willst, exisitiert dieser noch gar nicht.
    maike
     
  5. Das stimmt.

    Anders gefragt: Wie kann ich denn eine Person in frmPersonalien_BK, welche demnach noch keiner BK zugewiesen wurde, automatisch der entsprechenden BK zuweisen?
    Das frmPersonalien_BK öffnet sich ja im Prinzip aus der gewünschten BK heraus!?
     
    raeckaert, 11. Februar 2016
    #5
  6. Welche Datenherkunft hat denn das Formular? Wenn es die Betriebskontrolle ist, müsste ja der Datensatz (ohne Person) angezeigt werden. Die könntest du dann mit Hilfe des Listenfeldes oder eines Kombifeldes hinzufügen.
    maike
     
  7. Datensatzherkunft war tblPersonalien und tblBet_Per .

    Hab jetzt ein neues frm kreiert, in dem die Datensatzherkunft von tblBetriebskontrolle kommt und hab das Listenfeld mit den Personen und den entsprechenden Textfeldern der Personen eingefügt. Das klappt so weit alles. Eine neu erfasst Person wird jetzt in der richtigen BK gespeichert.

    Im Listenfeld werden jedoch alle Personen angezeigt, nicht nur diejenigen, welche mit der BK zu tun haben. Das ist auch gut so, ansonsten müsste ich einzelne Personen unter Umständen zwei Mal erfassen. Einziges Problem noch: Es aktualisiert mir in den Texfeldern nur diejenigen Personen, welche zur BK gehören. Von den anderen sehe ich die Daten nicht. An was liegt das?

    Der Aktualisierungscode ist dieser:
    Code:
     
    raeckaert, 11. Februar 2016
    #7
  8. Fehler bei Fremdschlüsselübergabe in neues Formular

    Ich habe noch einen Fehler gefunden. Wenn ich eine neue Person in eine BK erfassen will, in welcher sonst noch keine Personen erfasst sind, kommt folgende Fehlermeldung:

    Laufzeitfehler 94: Unzulässige Verwendung von Null
    Was heisst das, bzw. wie kann ich diesen Fehler umgehen?

    Code:
    Markiert wird Zeile 3.
     
    raeckaert, 11. Februar 2016
    #8
  9. Code:
    Wie gesagt, hier wird die Datenherkunft des zu öffnenden Formulars gefiltert. Wenn da nichts da ist, gibt es ein leeres Recordset.

    Zum Neuanlegen eines Datensatzes kann man OpenArgs verwenden. Übergabe bei OpenForm:
    Code:
    Verwendung im zu öffnenden Formular:
    Code:
    Unterstrichene Feldbezeichnung anpassen.
    Wenn der Filter ins Leere greift, sollte man sich sofort in einem neuen Datensatz befinden (Anfügungen zugelassen). Mit Beschreiben eines weiteren Feldes wird dann auch die übergebene ID an das ID-Feld übergeben.
     
  10. Bin jetzt ein bisschen verwirrt weil ich denke, dass es jetzt ein bisschen ein Durcheinander gegeben hat (vielleicht auch nur bei mir?) *wink.gif* Also nochmals der Reihe nach:

    Wie von Maike vorgeschlagen, habe ich das frmPersonalien_BK mit Datensatzherkunft von tblBetriebskontrolle erstellt und nicht mehr von tblPersonalien. Anschliessend habe ich ein Listenfeld mit den Personalien erstellt Listenfeld (lstPersonalien) und die gewünschten Textfelder daneben eingesetzt.
    Wenn ich jetzt eine neue Person erstelle, wird diese automatisch in der richtigen Betriebskontrolle gespeichert. So weit hat alles geklappt und meine ursprüngliche Frage hat sich somit erledigt.

    Problem: Das Listenfeld zeigt mir alle erfassten Personen an, aktualisiert in den Textfeldern daneben aber nur die Personen, welche auf die Betriebskontrolle zugewiesen sind.

    Der Aktualisierungscode:
    Code:
    Ist es möglich, dass das Listenfeld alle Personen anzeigt und z.B. auf Doppelklick die entsprechende Person in der richtigen Betriebskontrolle speichert?
     
    raeckaert, 11. Februar 2016
    #10
  11. Klar. Hab' grad den Tabellenaufbau nicht mehr so parat - es gibt eine Tabelle Betriebskontrolle und eine Tabelle tblBet_Per, wo zu jeder Betriebskontrolle mehrere Personen gespeichert werden können? Welche Datenherkunft hat jetzt das Formular, da müsste ja die tblBet_Per (ich nehme mal an als Unterformular in Endlosansicht) auch mit dabeisein?

    Du kannst dann im Ereignis Doppelklick des Listenfeldes entweder per Anfügeabfrage (Insert into ...) oder per Recordset .AddNew eine neue Person hinzufügen.
    Code:
    bzw.
    Code:
    Tabellen-, Feld- und sonstige Namen anpassen.
    maike
     
  12. Code:
    Hab eine abgespeckte Datenbank angehängt, damit du sehen kannst, wie im Moment alles zusammenhängt.

    Das ganze fängt in frmFirma an.
    Mit Doppelklick auf eine Firma im Listenfeld kommst du auf frmBetriebskontrolle.
    Mit Klick im Listenfeld links werden die beteiligten Personen angezeigt.
    Mit Doppelklick auf die Personen werden die Personalien komplett angezeigt.
    Mit Klick auf die Schaltfläche "Person hinzufügen" wird das frmPersonalien_BK geöffnet.
    Dort werden nun sämtliche erfasste Personen in der Datenbank angezeigt. Aktualisiert werden jedoch nur die Personen der jeweiligen Betriesbkontrolle.

    Solange ich diese Personen nicht angezeigt kriege, kann ich diese Personen auch nicht für die BK auswählen (da unter Umständen wegen der wenigen Infos im Listenfeld nicht klar ist, ob es sich um die richtige Person handelt).
     
    raeckaert, 11. Februar 2016
    #12
  13. Fehler bei Fremdschlüsselübergabe in neues Formular

    Hm. Jetzt muss ich doch noch mal nach dem Sinn des Ganzen fragen.
    Die Personen sind ja einem Betrieb/einer Betriebskontrolle zugewiesen.
    Mit "Aktualisiert" meinst du, im Formular mit den kompletten Daten angezeigt?
    Geht es darum, bereits bestehende Personen aus anderen Betrieben und Kontrollen für die jetztige Kontrolle auszuwählen? Oder eine bisher noch nicht enthaltene, ganz neue Person aufzunehmen?
    In beiden Fällen würde ich das Ganze schlicht im frmBetriebskontrolle erledigen. Nach Beantwortung der Fragen *wink.gif* .

    maike
     
  14. Genau. In den Textfeldern rechts vom Listenfeld sollten die kompletten Daten aller Personen angezeigt werden, nicht nur der Personen der jeweiligen BK.

    Beides. Bereits erfasste Personen möchte ich auswählen und der BK zuordnen können. Ist eine Person noch nicht erfasst, möchte ich die dort gerne erfassen.

    Wie würdest du das denn in frmBetriebskontrolle anstellen?
     
    raeckaert, 12. Februar 2016
    #14
  15. Ich würde dort ein Kombifeld mit den Personen sortiert nach Nachname einbauen. Die angezeigte Spalte füllst du in der Abfrage für das Kombi mit allen relevanten Infos zur Person, was du halt so brauchst zur Unterscheidung.
    Wenn eine neue Person erfasst werden muss, kannst du das nach diesem Muster direkt über das Kombi erledigen donkarls Access-Seiten, dabei die zweite Variante mit dem Öffnen eines Formulars, das an die Personentabelle gebunden ist.
    Dort gibst du die entsprechenden Daten ein und beim Schließen trägst du direkt per Code (Insert into - wie gezeigt) die Person und die BetriebsID in die Tabelle tblBet_Per ein und aktualisierst die Verantwortlichen bzw. Verzeigten im Formular Betriebskontrolle.

    Andere Variante wäre: statt der zwei Listenfelder (Verantwortlich und Verzeigt) im frmBetriebskontrolle zwei Unterformulare in Endlosansicht einzubauen, Datenherkunft tblBet_Per, das eine mit den Verantwortlichen, das andere mit den Verzeigten. Dort kannst du dann weitere Personen per Kombifeld direkt hinzufügen und nach dem oben gezeigten Muster über das Kombi auch neue erfassen. Macht die Zuweisung zur Betriebskontrolle leichter.

    maike
     
Thema:

Fehler bei Fremdschlüsselübergabe in neues Formular

Die Seite wird geladen...
  1. Fehler bei Fremdschlüsselübergabe in neues Formular - Similar Threads - Fehler Fremdschlüsselübergabe Formular

  2. Fehler (0x800CCC78) beim Ausführen der Aufgabe "xx.yyyy@kabelmail.de - Nachrichten werden gesendet"

    in Microsoft Outlook Hilfe
    Fehler (0x800CCC78) beim Ausführen der Aufgabe "xx.yyyy@kabelmail.de - Nachrichten werden gesendet": Bei mir taucht im Outlook ständig folgender Fehler auf: (0x800CCC78) beim Ausführen der Aufgabe "xx.yyyy@kabelmail.de - Nachrichten werden gesendet": "Die Nachricht kann nicht gesendet werden....
  3. Fehler beim SVERWEIS Vermeidbar?

    in Microsoft Excel Hilfe
    Fehler beim SVERWEIS Vermeidbar?: Hallo, ich habe eine Tabelle mit SVERWEIS. Der erste Tab ist quasi eine Übersicht nach Jahren und dann die weiteren Tabs die Eingaben in den Jahren (Artikel, Bestand, Einkaufspreis usw). Die...
  4. Installation schlägt fehl - Fehler in OfficeClickToRun.exe

    in Sonstiges
    Installation schlägt fehl - Fehler in OfficeClickToRun.exe: Hallo, ich habe ein Problem beim Installieren von Office Ich erhalte die folgende Fehlermeldung: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ OfficeClickToRun.exe - Anwendungsfehler Die Anwendung...
  5. Bei meinem Outlook (new) fehlen wichtige Funktionen!

    in Microsoft Outlook Hilfe
    Bei meinem Outlook (new) fehlen wichtige Funktionen!: Hallo, wie der Titel bereits andeutet, habe ich Probleme mit Outlook. Zum Beispiel ist es mir nicht möglich, Add-ins zu installieren. Es gibt keinen Button dafür, und auch wenn ich über die...
  6. Ständige Passwortabfrage und Kalendersyncronisations Fehler

    in Microsoft Outlook Hilfe
    Ständige Passwortabfrage und Kalendersyncronisations Fehler: Guten Tag, ich bin neu in diesem Forum und hoffe nach vergeblicher Suche im Microsoft Forum hier Hilfe zu bekommen. Nach einem Wechsel von Win 10 auf 11 Anfang dieses Jahres habe ich folgende 2...
  7. Formel mit INDEX, MATCH und MAX gibt Fehler #NAME!

    in Microsoft Excel Hilfe
    Formel mit INDEX, MATCH und MAX gibt Fehler #NAME!: Hallo zusammen, ich habe mit Hilfe von Copliot eine Formel gebaut, die 2 Werte aus einer Tabelle 1 in einer Tabelle 2 prüfen soll und wenn die Konstellation vorkommt, soll das größte Wert dieser...
  8. Wert Fehler

    in Microsoft Excel Hilfe
    Wert Fehler: Hallo zusammen, sicher gibt es schon diverse Beiträge, leider habe ich keinen gefunden, der mein Problem los. Ich habe mal einen Auszug meiner Tabelle angehängt. Leider kriege ich in einigen...
  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