Hallo,
ich hoffe ich bin hier richtig.
Ich hab folgendes Problem:
Ich habe eine Tabelle1 und eine Tabelle 2. Tabelle 1 ist die Haupttabelle in der alle Daten mittels Formular eingetragen werden. In Tabelle2 stehen nur Adressen mit Kontaktdaten. (Strasse, PLZ, Stadt, ASP, Telm, Fax & Mail) in etwa 10-20 Datensätze.
Da ich nicht alle diese Daten immer in jedem Datensatz in Tabelle1 eingeben mag, wollte ich per Kombinationsfeld einen Datensatz aus Tabelle2 auswählen und die restlichen Daten zu diesem Datensatz aus Tabelle2 automatisch in den Datensatz der Tabelle1 eimntragen lassen.
ich hoffe das ist einigermaßen verständlich ausgedrückt.
Ich probier schon seit Tagen daran rum, ohne sichtbaren Erfolg :-(
Für Hilfe wäre ich sehr dankbar
Hallo,
das Vorhaben ist ersatzlos überflüssig und falsch. Warum willst Du Daten 2x speichern ?
Du brauchst in Tabelle1 nur den Primärschlüssel (als Fremdschlüssel) des gewünschten Datensatzes zu speichern. Die Auswahl erfolgt mit dem Kombifeld.
In einer Abfrage mit beiden Tabellen hast Du jederzeit auch alle passenden Daten beider Tabellen zur Anzeige.
Es ist ja Sinn einer Datenbank Daten nur einmalig zu haben. Dein Vorhaben würde den elementarsten Grundregeln einer Datenbank widersprechen.
Zeige bitte mal ein Bild der Beziehungen, die hoffentlich angelegt sind.
Ich hoffe das hilft
Hallo,
das muss ich Dir leider ziemlich vermiesen, sorry. ;D
der Aufbau der DB ist eher eine Katastrophe. Das Datenmodell unbrauchbar und von Normalisierung ist da nichts zu sehen. Hier fehlen noch einige Tabellen. Was sollen überhaupt die vielen Felder mit Rechnungsdatum1, Rechnungsnummer1, Rechnungsdatum2, Rechnungsnummer2 usw.
Alle Felder die mit gleichem Namen und einer Zahl hinten sind Aufzählungsfelder, die in einer DAtenbank nichts zu suchen haben.
Du solltest Dich dringend mit den Grundlagen zur Entwicklung relationaler Datenbanken beschäftigen, das wird so nichts.
Welche Felder willst Du denn wohin übertragen ?
Hier mal noch 2 Links zu den Grundlagen:
https://www.hdm-stuttgart.de/~riekert/lehre/db-kelz/
https://www.access-tutorial.de/
Hab ich mir schon gedacht :D :'(
Den Sinn bzw. mein Vorhaben zu erklären, würde wohl hier den Rahmen sprengen.
Daher trotzdem vielen Dank !
@Parzelle387
ZitatHab ich mir schon gedacht
Heisst das, dass du dich jetzt von Access verabschiedest oder dass du dich jetzt
richtig reinkniest?
Ersteres wäre schade, bei Letztgenanntem bekommst du hier sicher kompetente
Unterstützung, wenn du die gegebenen Ratschläge dann befolgst/umsetzt.
ZitatDen Sinn bzw. mein Vorhaben zu erklären, würde wohl hier den Rahmen sprengen.
Hauptsache du hast eine solche Erklärung, besser Beschreibung, am besten wirklich
aufgeschrieben.
Eine Datenbank(anwendung) bzw. primär das Datenmodell (Tabellen/Beziehungen),
soll die, der Anwendung zu Grunde liegende Realität abbilden. Die kennst zunächst
nur du und du musst anhand der o.a. Beschreibung überprüfen ob das so ist.
Ein Beispiel: Ein Kunde kann eine unbekannte Anzahl von Rechnungen bekommen,
da kannst du doch die Rechnungsnummern nicht als Spalten in die Tabelle einfügen.
Da müsstest du bei jeder zusätzl. (wieviel du da hast kann man nicht sehen) Rechnung
neue Spalten an die Tabelle anfügen, und da ist dann bei 255 Feldern Schluss.
Das ist Exceldenke, und selbst da würde ich das nicht so machen.
gruss ekkehard
;)
Nein verabschieden tue ich mich nicht. Ich muss dann wohl noch mal komplett von
vorn anfangen mit neuen Gedankengängen.
Mal gespannt ob es gelingt.
Werde hier wohl noch ein öfter reinschauen ;D
Vielleicht kann mir jemand einen Tipp geben.
Wenn ich bis zu max 10 Rechnungen über ein Formular in eine Tabelle eintragen will. Mit insgesamt 10-12 Felder pro
Rechnung (Rechndatum, Rechnungsnummer, Rechnungsaussteller, Betrag etc...)
Wie kann ich das dann am besten lösen ausser für jede Rechnung 10 Felder anzulegen und das dann für jede Rechnung, also wieder 10 Mal :-[
Hallo,
die Rechnungen kommen in eine extra Tabelle. Jede Rechnung einen Datensatz.
Diese Tabelle benötigt dann einen Fremdschlüssel zum Mandanten.
Du kannst dann 5 Rechnungen erfassen, oder 10, oder 100, diese Tabelle ändert sich nie.
Im Grunde kannst Du die Tabelle rechnungen schon so verwenden. Du musst nur die Felder mit der Zahl (...2, ....3, usw.) hinten löschen. Die Felder die mit der ..1 übrig bleiben werden umbenannt, dass die 1 hinten weg ist.
Eine weitere Rechnung ist dann einfach ein weiterer Datensatz.
OK, ich glaub soweit verstanden.
Wenn ich aber 8 Rechnungen von einem Mandanten bekomme, diese trage ich über ein Formular in die Tabelle ein, welche mit dem Mandanten verknüpft ist. Jetzt bekomme ich in 2 Wochen wieder 5 Rechnungen von dem gleichen Mandanten....
Da müsste ich doch für jeden "Rechnungsstapel" einen Datensatz haben, das wenn ich auf die "ersten 8" Rechnungen zugreifen muss, diese finde ????
Oder denke ich zu kompliziert ?
Hallo,
kommmen Deine Rechnungen stapelweise ?
Und wie unterscheidest Du dann die Stapel ?
Hängt das von einem Auftrag (oder ähnlich) ab ?
Es ist schwierig mein Vorhaben zu erklären.....
Wir bekommen mehrere Rechnungen von den Mandanten. Diese Menge (sagen wir mal jetzt 6 Stck) werden "weiterverarbeitet". Und zwar alle 6 gemeinsam als 1 Vorgang. Wenn von den verarbeiteten Rechnungen dann Rückmeldungen kommen (betrifft dann alle 6 Rechnungen) müssen diese Infos entsprechend zugeordnet werden. Und der Mandant wird am Ende informiert, was mit seinen Rechnungen passiert ist.
Die Mandanten schicken halt immer nicht nur eine Rechnung, sondern sammeln sodass wir immer 1-2 mal im Monat einen "Stapel" Rechnungen bekommen.
Genauere Details möchte ich ungern hier öffentlich posten.
Hallo,
dann lege eine Tabelle "Vorgang" an. Mit einem Datumsfeld und einem Fremdschlüsselfeld zum Mandanten.
Die Rechnungstabelle erhält dann einen Fremdschlüssel zum Vorgang (nicht zum Mandanten). Im Formular zeigst Du dann den Vorgang an und in einem Unterformular die zum Vorgang gehörenden Rechnungen.
Ändert aber nichts an der Tatsache, das meine Rechnungstabelle 10x 10 Felder enthalten muss, oder ??
Der Unterschied für mich ist der, das ich jetzt einen "Umweg über eine weitere Tabelle 'Vorgang' mache.
Oder ich hab es nicht verstanden. :)
ZitatTatsache, das meine Rechnungstabelle 10x 10 Felder enthalten muss
Wenn der Kunde mal fleißig ist und Dir 57 Rechnungen schickt - was machst Du dann außer den ganzen Kram umbauen? Wenn man wegen einiger zusätzlicher Daten umdesignen muss, ist die Datenbank Zeitvertreib, aber keine Lösung.
Eine Rechnung => ein Datensatz. So klappt das auch mit Stapeln.
ZitatGenauere Details möchte ich ungern hier öffentlich posten.
Im Zweifelsfall holst Du Dir innerbetrieblich fachliche Unterstützung oder aber Du hebst erst selber Dein Fachniveau an, bevor Du Aufgabenstellungen annimmst, die (nachhaltig?) genutzt werden sollen.
Deine Firmengeheimnisse will hier keiner kennen lernen.
Hallo,
Eberhard hat zwar das Wesentliche bereits gesagt, aber:
ZitatOder ich hab es nicht verstanden.
Ja, Du hast es nicht verstanden. Du brauchst 10 Felder in der Rechnungstabelle, egal wie viele Rechnungen es gibt, denn
eine Rechnung ist
ein Datensatz.
Zitat"Umweg über eine weitere Tabelle 'Vorgang' mache.
Das ist kein Umweg, sondern der in diesem Zusammenhang für eine Datenbank
einzig richtige Weg, nix rüber und nix nüber.
Naja, das mit den 57 Rechnungen ist wohl bisschen übertrieben.
Dann werd ich das mal in angriff nehmen, mal gucken wie weit ich komme :)
Hallo,
Die 57 sollte nur zum Ausdruck bringen, dass die Anzahl der Rechnungen völlig bedeutungslos ist.
Hab schon verstanden.
Ich bin auch schon kräftig bei. Hab schon diverse Tabellen umgebaut.
Hab jetzt eine Tabelle Mandanten,damit verknüpft die Tabelle Vorgang damit wiederum möchte ich die Tabelle Rechnungen verknüpfen, was mir noch nicht wirklich gelingt, jedenfalls als 1:n Beziehung nicht. Beziehungstyp ist immer undefiniert.
Können die "Beziehungsfelder" auch Feldtyp Datum sein ??
Weil meine Vorgangsnummer eigentlich das Tagesdatum ist.
Hallo,
ZitatKönnen die "Beziehungsfelder" auch Feldtyp Datum sein ??
Nein, das solltest Du nicht tun.
Verwende einen Autowert in der Vorgangstabelle als Primärschlüssel.
Das solltest Du in jeder TAbelle machen. Der Fremdschlüssel ist dann Zahl, Longinteger, dann klappt das auch mit den Beziehungen.