Ich habe eine dbf-Datei als Grundlage für eine odb-Datenbank.
Ich bekomme Daten in Form von Excel-Tabellen, in denen aber nur einige Felder der Datenbank enthalten sind
Wie gehe ich am einfachsten vor um, die Felder der Datenbank zu befüllen mit den Daten aus Excel.
In eine Abfrage mit den benötigten Feldern, kann ich über Copy-Paste (aus Excel) leider nicht gesammelt die Felder je Datensatz befüllen. Hier werden immer nur die Daten in das gerade aktive Feld eingefügt.
Mit einem Formular habe ich es auch versucht. Ergebnis leider auch wie bei der Abfrage
Danke vorab.
Datenbankfelder mit Daten aus Excel-Tabelle befüllen
Moderator: Moderatoren
Re: Datenbankfelder mit Daten aus Excel-Tabelle befüllen
Hallo kernm23,
Du hast in Excel eine Tabellenform. Ich gehe einmal von Spaltenbenennungen dafür aus.
Du kopierst die Daten aus Calc, gehst in die Base-Datei und fügst die Daten in den Tabellencontainer ein. Dann erscheint der Import-Assistent.
Du wählst eine Tabelle aus, an die die Daten angehängt werden sollen.
Du wählst im nächsten schritt aus, welche Daten zueinander passen. Da Du in Base mehr Felder hast als in Calc verschiebst Du die Felder, die nicht belegt sind, nach unten (Pfeiltasten).
... und dann die Daten einfügen lassen.
Gruß
Robert
Du hast in Excel eine Tabellenform. Ich gehe einmal von Spaltenbenennungen dafür aus.
Du kopierst die Daten aus Calc, gehst in die Base-Datei und fügst die Daten in den Tabellencontainer ein. Dann erscheint der Import-Assistent.
Du wählst eine Tabelle aus, an die die Daten angehängt werden sollen.
Du wählst im nächsten schritt aus, welche Daten zueinander passen. Da Du in Base mehr Felder hast als in Calc verschiebst Du die Felder, die nicht belegt sind, nach unten (Pfeiltasten).
... und dann die Daten einfügen lassen.
Gruß
Robert
Re: Datenbankfelder mit Daten aus Excel-Tabelle befüllen
Hallo Robert,
danke für den Tipp.
Es handelt sich allerdings nicht um neue Datensätze die anzuhängen sind, sondern um fehlende bzw. falsche Daten bei schon vorhandenen Datensätzen.
Ich bin nun so vorgegangen, dass ich die dbf-Datei als calc-Tabelle geöffnet habe und dort die Daten eingefügt habe. Ist aber auch umständlich, da keine untereinanderliegende Datensätze bzw. nebeneinander liegende Felder.
danke für den Tipp.
Es handelt sich allerdings nicht um neue Datensätze die anzuhängen sind, sondern um fehlende bzw. falsche Daten bei schon vorhandenen Datensätzen.
Ich bin nun so vorgegangen, dass ich die dbf-Datei als calc-Tabelle geöffnet habe und dort die Daten eingefügt habe. Ist aber auch umständlich, da keine untereinanderliegende Datensätze bzw. nebeneinander liegende Felder.
Re: Datenbankfelder mit Daten aus Excel-Tabelle befüllen
Hallo kernm23,
irgendwo dran musst Du aber doch die Datensätze erkennen, die dann gelöscht werden sollen, oder? dBase ist ja nun nichts mit Primärschlüssel, aber wenn Du einfach die neuen Daten einliest und dann das ganze sortierst, dann hast Du das alles in Base und kannst da die falschen Datensätze löschen. Oder werden gar nicht einmal komplette Datensätze sondern nur Teile von Datensätzen geliefert?
Gruß
Robert
irgendwo dran musst Du aber doch die Datensätze erkennen, die dann gelöscht werden sollen, oder? dBase ist ja nun nichts mit Primärschlüssel, aber wenn Du einfach die neuen Daten einliest und dann das ganze sortierst, dann hast Du das alles in Base und kannst da die falschen Datensätze löschen. Oder werden gar nicht einmal komplette Datensätze sondern nur Teile von Datensätzen geliefert?
Gruß
Robert
Re: Datenbankfelder mit Daten aus Excel-Tabelle befüllen
Für den Routinebetrieb (wenn dauernd neue Korrekturwerte zu importieren wären) würde ich ein Makro vorziehen, aber um nur einmalig WErte abzugleichen genügt doch Calc und SVERWEIS().
Sofern es richtig ist das alle KOrrekturdatensätze bereits in der Datenbank vorhanden sind z.B. so:
-kopiere den Inhalt der Datentabelle in eine Calc-Datei in die Tabelle "Datenbankwerte" (beginnend in A1, ohne Überschriften)
-kopiere die Korrekturwerte in Tabelle "Korrekturwerte" (beginnend in A1, ohne Überschriften)
-schreibe in A1 einer dritten Tabellle die Formel: =Datenbankwerte.A1
-SChreibe in B1 die Formel: =WENN(ISTNV(SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2));Datenbankwerte.B1;SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2))
-ziehe die Formeln soweit nach unten wie benötigt
-kopiere den Inhalt der dritten Tabelle zurück in die Datenbank
Gruß
Stephan
Sofern es richtig ist das alle KOrrekturdatensätze bereits in der Datenbank vorhanden sind z.B. so:
-kopiere den Inhalt der Datentabelle in eine Calc-Datei in die Tabelle "Datenbankwerte" (beginnend in A1, ohne Überschriften)
-kopiere die Korrekturwerte in Tabelle "Korrekturwerte" (beginnend in A1, ohne Überschriften)
-schreibe in A1 einer dritten Tabellle die Formel: =Datenbankwerte.A1
-SChreibe in B1 die Formel: =WENN(ISTNV(SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2));Datenbankwerte.B1;SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2))
-ziehe die Formeln soweit nach unten wie benötigt
-kopiere den Inhalt der dritten Tabelle zurück in die Datenbank
Gruß
Stephan
- Dateianhänge
-
- Datenaufbereitung.ods
- (7.91 KiB) 134-mal heruntergeladen
Re: Datenbankfelder mit Daten aus Excel-Tabelle befüllen
ja, das ist richtig. Es sind bereits alle Korrekturdatensätze in der DB enthalten. Und die gelieferten Korrekturdaten sind leider unvollständige Datensätze.
Re: Datenbankfelder mit Daten aus Excel-Tabelle befüllen
Dann entferne sie zunächst wieder.Es sind bereits alle Korrekturdatensätze in der DB enthalten.
dann musst Du die Formel etwas erweitern, damit wo KOrrekturdaten fehlen die Originaldaten übernommen werden:Und die gelieferten Korrekturdaten sind leider unvollständige Datensätze.
=WENN(ISTNV(SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2));Datenbankwerte.B1;WENN(ISTLEER(SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2));Datenbankwerte.B1;SVERWEIS(A1;$Korrekturwerte.$A$1:$B$2;2)))
Gruß
Stephan