Access Datensatz in verknüpften Tabellen erzeugen

Hallo,

ich habe eine Datenbank angelegt mit drei Tabellen pro (ich nenne es mal) Kundenart.
Tabelle 1: Kundenstammdaten
Tabelle 2: Buchhaltungsspezifische Daten
Tabelle 3: Technikspezifische Daten

Tabelle 1 ist mit den Tabellen 2 + 3 über die ID (Autowert in Tabelle 1) und dem Feld „StammID“ (LongInteger jeweils in Tabelle 2 + 3) mit einer 1 zu n Beziehung verknüpft. (Eigentlich 1 zu 1, da es in den Tabellen 2 + 3 jeweils nur einen zugehörigen Datensatz zur Tabelle 1 gibt.)

Ich habe nun für jede Tabelle ein Formular erstellt:
Formular Tabelle 1: Reine Kundenstammdatenerfassung und -Bearbeitung
Formular Tabelle 2: nur für Buchhaltung mit wichtigsten Informationen aus Kundenstamm
Formular Tabelle 3: nur für Technik mit wichtigsten Informationen aus Kundenstamm
Die Daten aus dem Kundenstamm sollen nicht in den Formularen 2 + 3 bearbeitet werden dürfen.

Damit ich die Daten in den Formularen 2 + 3 bearbeiten kann, muss aber beim Anlegen der Stammdaten bereits in den Tabellen 2 + 3 ein entsprechender Datensatz angelegt werden.

Leider bekomme ich das nicht hin.
Ich hatte es bereits mit einem einfachen Flag (Ja/Nein) versucht. Bei der Verwendung von maximal 2 Tabellen funktioniert es. Sobald ich die dritte Tabelle ins Spiel bringe, bekomme ich nur eine Abfrage, mit der ich keine Änderungen an den Daten vornehmen kann.

Bitte bitte, kann mir da einer weiterhelfen?

Zur Info:
Warum drei Tabellen?
Es sollen mehrere User zugleich auf die Datenbank zugreifen.
Dabei möchte ich das die Buchhaltung und die Technik sich so wenig wie möglich bei der Bearbeitung von Datensätzen in die Quere kommen.
Es kann vorkommen, dass die Buchhaltung und Technik die Tabellen für die gleiche Kundenart am Wickel haben. Es ist aber eher unwahrscheinlich das der gleiche Kunde bearbeitet wird.

Für Hilfe oder Hinweise zu meinem Problem wäre ich dankbar.

Für eure Antwort sage ich schon mal Danke im voraus.

Ricardo

Hallo,

ich habe eine Datenbank angelegt mit drei Tabellen pro (ich
nenne es mal) Kundenart.
Tabelle 1: Kundenstammdaten
Tabelle 2: Buchhaltungsspezifische Daten
Tabelle 3: Technikspezifische Daten

Tabelle 1 ist mit den Tabellen 2 + 3 über die ID (Autowert in
Tabelle 1) und dem Feld „StammID“ (LongInteger jeweils in
Tabelle 2 + 3) mit einer 1 zu n Beziehung verknüpft.
(Eigentlich 1 zu 1, da es in den Tabellen 2 + 3 jeweils nur
einen zugehörigen Datensatz zur Tabelle 1 gibt.)

Ich habe nun für jede Tabelle ein Formular erstellt:
Formular Tabelle 1: Reine Kundenstammdatenerfassung und
-Bearbeitung
Formular Tabelle 2: nur für Buchhaltung mit wichtigsten
Informationen aus Kundenstamm
Formular Tabelle 3: nur für Technik mit wichtigsten
Informationen aus Kundenstamm
Die Daten aus dem Kundenstamm sollen nicht in den Formularen 2

  • 3 bearbeitet werden dürfen.

Damit ich die Daten in den Formularen 2 + 3 bearbeiten kann,
muss aber beim Anlegen der Stammdaten bereits in den Tabellen
2 + 3 ein entsprechender Datensatz angelegt werden.

ja, das ist nun mal so, wenn sich die Tabellen in 1:n-Beziehung befinden.

Leider bekomme ich das nicht hin.
Ich hatte es bereits mit einem einfachen Flag (Ja/Nein)
versucht. Bei der Verwendung von maximal 2 Tabellen
funktioniert es. Sobald ich die dritte Tabelle ins Spiel
bringe, bekomme ich nur eine Abfrage, mit der ich keine
Änderungen an den Daten vornehmen kann.

Bitte bitte, kann mir da einer weiterhelfen?

Nimm eine Tabelle „tblKunden“, die alle Daten eines Kunden beinhaltet.

Mach für die einzelnen Bearbeiter(gruppen) je ein (oder ein dynamisch gesteuertes, von der Usergruppe abhängiges) Formular, das die jeweils relevanten Felder enthält (bzw. die relevanten Felder einblendet).

Zur Info:
Warum drei Tabellen?
Es sollen mehrere User zugleich auf die Datenbank zugreifen.
Dabei möchte ich das die Buchhaltung und die Technik sich so
wenig wie möglich bei der Bearbeitung von Datensätzen in die
Quere kommen.

Was heißt das? Derselbe DS kann nicht gleichzeitig von mehreren Usern bearbeitet werden. Wenn ein DS groß genug ist (>2kB), wird auch nur der akt. bearbeitete DS gesperrt und benachbarte sind frei zur Bearbeitung.

Es kann vorkommen, dass die Buchhaltung und Technik die
Tabellen für die gleiche Kundenart am Wickel haben. Es ist
aber eher unwahrscheinlich das der gleiche Kunde bearbeitet
wird.

—> zwei Tabellen:

tblKundenarten --1:n-- tblKunden

für tblKunden mehrere passend eingestellte Formulare für die entspr. Bereiche.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo,

Nimm eine Tabelle „tblKunden“, die alle Daten eines Kunden
beinhaltet.

Mach für die einzelnen Bearbeiter(gruppen) je ein (oder ein
dynamisch gesteuertes, von der Usergruppe abhängiges)
Formular, das die jeweils relevanten Felder enthält (bzw. die
relevanten Felder einblendet).

Do ich doch recht faul bin, ist es so, dass ich bereits das Formular für die Kundenstammdaten kopiert habe und nicht benötigte Felder entfernt habe und Felder der entsprechenden Tabelle/Usergruppe hinzugefügt habe. So habe ich dann zwei zusätzliche Formular zu dem Stammdatenformular auf Grundlage des Stammdatenformulares.

Was heißt das? Derselbe DS kann nicht gleichzeitig von
mehreren Usern bearbeitet werden. Wenn ein DS groß genug ist
(>2kB), wird auch nur der akt. bearbeitete DS gesperrt und
benachbarte sind frei zur Bearbeitung.

Das wusste ich bereits.

Es kann vorkommen, dass die Buchhaltung und Technik die
Tabellen für die gleiche Kundenart am Wickel haben. Es ist
aber eher unwahrscheinlich das der gleiche Kunde bearbeitet
wird.

—> zwei Tabellen:

tblKundenarten --1:n-- tblKunden

???
Eine Tabelle für die „Kundenart“ gibt es nicht. Unsere „Kundenart“ ist eine Trennung der Kunden nach Gemeinden. Das heißt, es gibt für jede Gemeinde 3 Tabellen (Kundenstamm, Buchhaltung und Technik), also ist die Gesamtanzahl der Tabellen in der DB „Anzahl Gemeinden x 3“.

für tblKunden mehrere passend eingestellte Formulare für die
entspr. Bereiche.

siehe weiter oben

Aber damit ist mein Problem leider immer noch nicht gelöst, da ich die Datensätze nicht in den beiden verknüpften Tabellen erzeugen kann und somit die anderen „Unter“-Formulare nicht auf die bereitsangelegten der Stammdaten-Tabelle.

Habe ich vieleicht auch einen Fehler in der Formularabfrage?
SELECT Gem1_Stammdaten.*, Gem1_Technik.* FROM Gem1_Stammdaten INNER JOIN Gem1_Technik ON [Gem1_Stammdaten].ID=[Gem1_Technik].StammID;

Danke für die schnelle Antwort
Grüße aus Wismar
Ricardo

Hallo,

naja, ich weiß auch nicht, was Du alles schon weißt und kann nur auf Deine Beschreibungen antworten…

Eine Tabelle für die „Kundenart“ gibt es nicht.

ja, drum habe ich ja auch gesagt, dass Du die brauchst…

Unsere „Kundenart“ ist eine Trennung der Kunden nach Gemeinden. Das heißt, es gibt für jede Gemeinde 3 Tabellen (Kundenstamm, Buchhaltung und Technik), also ist die Gesamtanzahl der Tabellen in der DB „Anzahl Gemeinden x 3“.

DAS ist die Wurzel aller Deiner(!) Probleme

Aber damit ist mein Problem leider immer noch nicht gelöst, da ich die Datensätze nicht in den beiden verknüpften Tabellen erzeugen kann und somit die anderen „Unter“-Formulare nicht auf die bereitsangelegten der Stammdaten-Tabelle.

Doch, damit (mit einer, bzw. zwei Tabelle(n)) WÄRE Dein Problem gelöst, wenn Du es denn umsetzen würdest.

Habe ich vieleicht auch einen Fehler in der Formularabfrage?

Nein, da nicht als solcher, Dein Fehler liegt am falschen Tabellenaufbau…

Und statt eine verknüpfende Abfrage für ein Formular zu benutzen, benutz direkt eine Tabelle für ein Formular. 1:n Beziehungen in Tabellen stellst Du mit einer HFO/UFO-Konstruktion dar.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo,

da ich mit drei Tabellen nicht so arbeiten kann wie ich es mir vorgestellt hatte, hat sich somit die ganze Sache erledigt. Schade.
Ich muss alle Daten in einer Tabelle erfassen, da die Aufteilung auf zwei Tabellen keinen Sinn macht.

Ich danke dir für deine Hilfe mich auf den rechten Pfad zubringen.

Grüße aus Wismar
Ricardo

Habe jetzt eine Tabelle mit allen Datensätzen und jeweils einem zu gehörigem Formular.
Die „Abteilungsspezifisches“ Daten werden auf dem Formular per Registerkarten getrennt.

Grüße aus Wismar
Ricardo