Hallo zusammen,
ich habe eine grosse Excel Tabelle für meine Buchhaltung. Diese würde ich gerne nach Access importieren. Dafür habe ich für die Kategorien und Kontonamen,... getrennte Tabellen erstellt, die ich als Nachschlagespalten in die Buchungstabelle reinziehe. Soweit so gut...
Aber nun würde ich gerne die Zeilen in dem CSV-Format
Buchungstext; Betrag; Kategorie; Konto
"irgenein Text"; 500; "Lebensmittel"; "VISA"
importieren. Access erwartet aber so etwas wie
"irgenein Text"; 500; 15; 3
weil die IDs in den Nachschlagespalten entsprechend sind. Gleiches bekomme ich beim Export.
Kann man das irgendwie anpassen? Ich möchte beim IMport/Export gerne die Texte, nicht die IDs der Nachschlagespalten nutzen...
Vielen Dank
Oliver
ZitatSoweit so gut...
Nein, nicht gut, sondern schon Sch...
Auf Nachschlagefelder in Tabellen solltest Du sofort verzichten, vergleiche Die Nachteile von Nachschlagefeldern (http://www.dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern). Anfänglich geglaubte Vorteile schlagen sehr schnell in Nachteile um (Du bist schon mittendrin), und kaum ein ernsthafter Accessentwickler verwendet Nachschlagefelder in Tabellen und hat daher kein Verständnis (und keine Praxis) für dieses Problem.
Baue also ordentliche Tabellen mit sichtbaren Beziehungen. Bei Dir würde also eine M:N-Beziehung entstehen, wobei Deine besprochene Tabelle die Verknüpfungstabelle zwischen einer Kontentabelle und einer Kategorientabelle wäre.
Zum Importverfahren: Verknüpfe die CSV-Datei in Deine Datenbank, verwende dabei zur Sicherstellung eine Importspezifikation (die Du einmalig anlegen musst, siehe Anlegen einer Spezifikation (http://www.ardiman.de/datenbanken/grundlagen/tabellen.html#SEC2)).
Jetzt kannst Du die Daten der CSV-Tabelle mit drei Anfügeabfragen an die drei Zieltabellen übergeben, vergleiche Importtabelle in m:n-Beziehung auflösen (http://www.dbwiki.net/wiki/Datei:AccSampleDivideTable.zip).
Und nicht nur nebenbei: Excel und CSV sind sehr verschiedene Dinge, siehe CSV - Trallallalla (http://www.online-excel.de/excel/singsel.php?f=142).
MfGA
ebs
Hallo ebs17,
ich hätte da noch eine Frage:
Ich möchte also nun auf Nachschlagefelder verzichten. Aber wie gehe ich dann vor? Muss der Anwender dann z.B. die Kundennummer zunächst in einem anderen Feld heraussuchen, um sie dann in das entsprechende Feld einzugeben?
Gruß
compinaut
Hallo,
nachdem anzustreben ist, dass kein Benutzer direkt in die Tabellen schreibt sondern dazu Formulare geschaffen weden, sind Nachschlagefelder in den Tabellen nicht notwendig.
Das Formular setzt auf einer Tabelle auf, in der Fremdschlüsselfelder vorhanden sind.
Für diese Felder erstellt man Dropdown-Felder zur Dateneingabe.
Die Datenherkunft dieser Kombinationsfelder (Komboboxen) bildet die Primärtabelle des jeweiligen Fremdschlüssels.
Der Aufbau der 'Datenliste' hat dann so zu erfolgen, dass an der ersten Stelle der Primärschlüssel steht und an zweiter Stelle der zugehörige Text.
Das Kombifeld ist so einzurichten, dass als gebundene Spalte die erste Spalte der Datenherkunft bestimmt wird.
Zur Darstellung kann diese Spalte ausgeblendet werden (Spaltenbreite = 0) sodass der Benutzer nur den Texteintrag der 2 Spalte zu sehen bekommt.
Wird nun im Zuge der Dateneingabe ein Wert im Kombifeld ausgewählt so sieht der Benutzer den Text, in die Datenherkunft des Formulars wird jedoch der Primärschlüssel (ins Fremdschlüsselfeld) eingetragen.