Zum Inhalt springen

Daten in Access von anderer DB importieren


philipp-schoene

Empfohlene Beiträge

Ich soll als Zivi etwas für die Buchhaltung programmieren. Es geht darum Daten einzulesen und in leicht veränderbarer Struktur in eine Datenbank zu schreiben.

Ich habe keine Erfahrung mit VBA, habe nur vor einiger Zeit mal mit Visual Basic gearbeitet. Deswegen kenne ich die Objekte, mit denen ich arbeiten muss, nicht so gut.

Also der erste Schritt wäre das importieren der Daten. Meine Idee ist, dass ich eine Quelle in einem Dialog wähle und diese dann importiert wird. Mit fehlt leider jeglicher Ansatz. Kann mir bitte dabei jemand helfen?

Vielen Dank schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Import muss nciht ständig sein. Es läuft so ab:

  • Daten werden aus der Buchhaltung in eine Datenbank (Datenbank A) exportiert
  • Die Datenbank soll mit einer anderen Datenbank (Datenbank B) importiert und verarbeitet werden
  • Die Daten dienen zum Controlling. Also wird etwa 4 Mal im Jahr importiert.

Also soll Datenbank A unverändert bleiben. Sie stellt nur die Daten bereit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, die Lösung ist nicht die, die ich mir vorstelle. Denn die Quelldatenbank wird sich immer wieder ändern. Ich lasse das aber nun erstmal so.

Wie würdet ihr die Daten nun übertragen? Ich möchte als nächsten Schriit die erstmal unbearbeitet kopieren, später muss ich Daten Lesen und dementsprechend Werte in der Tabelle schreiben. Da für mich alles neu ist, möchte ich in kleinen Schritten vorgehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, die Lösung ist nicht die, die ich mir vorstelle. Denn die Quelldatenbank wird sich immer wieder ändern. Ich lasse das aber nun erstmal so.

Willst Du denn nun aktuelle Daten aus Datenbank A in Deiner Access Tabelle in Datenbank B haben oder die des Importdatums, das geht ja beides oder verstehe ich Dich völlig falsch?

Ich begreife die gesamte Idee glaube ich nicht, willst Du wirklich insgesamt 3 Datenbestände haben, das kann ich mir kaum vorstellen? In welcher Form liegt die Ursprungsdatenbank denn vor, ein Server, eine Access Datenbank, die im Netzwerk liegt oder wie muss man sich das vorstellen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich begreife die gesamte Idee glaube ich nicht, willst Du wirklich insgesamt 3 Datenbestände haben, das kann ich mir kaum vorstellen?

Ich schließe mich an. Generell ist es zu vermeiden unterschiedliche Datenstände zu haben. Wenn man nur einen Lesezugriff auf die Daten benötigt, dann ließe sich das über Views oder entsprechende Zugriffsrechte des DBMS regeln. Müssen Schreibzugriffe gemacht werden, dann empfiehlt sich entsprechende Transaktionsmechanismen des DBMS zu nutzen und die Änderungen in einem Log abzulegen. Bei entsprechender Logtiefe lässt sich auch der alte Datenstand wieder konstruieren.

Generell würde ich Access nicht als Datenhaltung verwenden (irgendwo in der MS Knowledgebase wurde davon abgeraten). Nutze Access nur für die GUI und entsprechende Abfragen. Die "GUI-User" können wie bekannt unter Access mit den Tabellen arbeiten, die Daten selbst sollten zentral auf einem Server mit einem rollenbasiertem Zugriffssystem abgelegt werden.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich schließe mich an. Generell ist es zu vermeiden unterschiedliche Datenstände zu haben. Wenn man nur einen Lesezugriff auf die Daten benötigt, dann ließe sich das über Views oder entsprechende Zugriffsrechte des DBMS regeln. Müssen Schreibzugriffe gemacht werden, dann empfiehlt sich entsprechende Transaktionsmechanismen des DBMS zu nutzen und die Änderungen in einem Log abzulegen. Bei entsprechender Logtiefe lässt sich auch der alte Datenstand wieder konstruieren.

Generell würde ich Access nicht als Datenhaltung verwenden (irgendwo in der MS Knowledgebase wurde davon abgeraten). Nutze Access nur für die GUI und entsprechende Abfragen. Die "GUI-User" können wie bekannt unter Access mit den Tabellen arbeiten, die Daten selbst sollten zentral auf einem Server mit einem rollenbasiertem Zugriffssystem abgelegt werden.

Phil

Die Datenbank soll dazu dienen die Rohdaten aus der Buchhaltungssoftware zu verarbeiten und als Bericht auszugeben.

Ich importiere die Daten nun per Macro aus der alten Datenbank. Da ich nun drei Tabellen in eine packen muss, brauche ich einen neue Spalte anhand der die sog. Mandanten auseinandergehalten werden. Wie Füge ich diese Spalte mit der entsprechenden Mandantennummer (1,2,3) ein? Kann ich das mittels einer Abfrage in Access machen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da ich nun drei Tabellen in eine packen muss, brauche ich einen neue Spalte anhand der die sog. Mandanten auseinandergehalten werden. Wie Füge ich diese Spalte mit der entsprechenden Mandantennummer (1,2,3) ein?

Wie wäre es wenn Du einen Select über Deine 3 Tabellen auf der Datenbank absetzt und das Resultset entsprechend verarbeitest. Dann kannst Du aich in C++ / C# usw direkt arbeiten

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

In SQL habe ich schonmal was mit PHP und MySQL gemacht. Zwar nicht viel, aber noch eher also in Access.

Ich weiß aber nicht so genau, wie ich das nun machen soll.

Ich kann ja noch was sagen wo es ungefähr hingehen soll:

  • Es sollen aus den Zahlen Berichte gebildet werden (Quartal und Jahr)
  • Manche Zahlen sollen zusammengefasst werden (welche und wo, erfahre ich später)

Ich habe das Gefühl, dass die Geschäftsführung selbst nicht so genau weiß wie das geht und was sie haben wollen. Also bleibt es für alle Spannend. Ich werde nur noch bis Ende Oktober hier sein und auch nicht nur Controlling machen, also drängt die Zeit auch ein wenig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

du kannst ALTER TABLE ADD COLUMN via DB.Execute oder DoCmd.RunSQL ausführen oder das ganze in ein makro packen. makros sind aber - und dem werden sicher einige zustimmen - meistens pfui.

s'Amstel

Ich habe, und das ist schon Jahre her, in der Schule mal VB gemacht. Ich kenne die ganzen Objekte nicht und bin deswegen auch im Moment überfordert. Also, amstelchen, tendierst du zu VBA?

Wäre nett, wenn du mir helfen könntest. Deine Idee klingt gut, ich weiß aber nicht, wie ich beginnen soll.

Vielen Dank euch schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

tendierst du zu VBA?

ich tendiere, wenn zwischen makros und VBA zu wählen ist, zu 95% zu VBA.

bitte mal z.b. das und das lesen. da wird das ganze samt syntax erklärt.

Deine Idee klingt gut, ich weiß aber nicht, wie ich beginnen soll.

im zweifelsfalle eine google-suche nach RunSQL sowie DB.Execute anstrengen.

empfehlenswert ist es jedenfalls, sich ein *aktuelles* buch über access/VBA-programmierung zuzulegen und mal am abend im bett durchzublättern.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum setzt Du nicht in einer Sprache Deiner Wahl einfach ein DML Statement einfach an die original Datenbank ab und bearbeitest das daraus resultierende Resultset (select * from tabelle join ..... where ....)?

Du willst nur einen Report (Bericht) erzeugen. Ich würde den passenden Select als View in der original Datenbank hinterlegen und wenn es unbedingt für den Benutzer nur eine Tabelle und Access sein soll, diese dann in Access z.B. via ODBC anbinden und meinen Report darüber bauen.

Alternativ verknüpfst Du die Tabellen in Access und erzeugst über einen View in Access die passende Reporttabelle und wertest diese dann aus.

Natürlich kannst auch ein Reporttool wie Crystal Reports, List&Label o.ä. verwenden, oder das ganze mit PHP und z.B. XML:Fo selbst bauen, so dass Du ein PDF bekommst.

Im Grunde: SQL Select absetzen, Resultset auswerten und darstellen

Wo ist das Problem?

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also die Daten der letzten Jahre sollen erhalten bleiben. Also kann ich nicht einfach Berichte generieren. Ich muss eine Tabelle haben, die Jedes Jahr um weitere Daten ergänzt wird. Da ich die Daten nicht so importieren kann, muss ich die erst mit der Mandatenspalte ausstatten.

Sprache meiner Wahl: Sagt doch einfach mal wo ich das im Editor hinschreiben muss? Wenn ich z. B Modul1 öffne, bin ich immer in "Allgemein" "Deklarationen" des VB-Editor. Da, so habe ich mal gelernt kommt aber kein Programmcode hin. Es fehlt also ein Objekt? Muss ich einen Button erstellen und dann das das Ereignis verarbeiten?

Noch eine Verständnisfrage: Wozu braucht man die Module?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also die Daten der letzten Jahre sollen erhalten bleiben. Also kann ich nicht einfach Berichte generieren. Ich muss eine Tabelle haben, die Jedes Jahr um weitere Daten ergänzt wird. Da ich die Daten nicht so importieren kann, muss ich die erst mit der Mandatenspalte ausstatten.

Es ist denkbar schlecht, Daten redundant zu halten !

Wenn Du eine Datenbank hast, in der die Daten eh schon vorhanden sind, dann nimm diese, ohne sie zu kopieren. Das Prinzip eines Views, einer spezieller Sicht auf Deine Daten. Nach Deiner Beschreibung besitzt Du "eine" (1) Datenbank, in die Daten gehalten werden. Desweiteren sind dort auch der Verlauf Deiner Daten, sprich die vom letzten, vorletzten ... Jahr gespeichert. Du musst sie eben nur mit Hilfe der DML, sprich einem SQL Select auslesen. Wie das nun konkret geht, liegt einmal an dem DBMS, das mir meine Glaskugel nicht verrät und an den Fähigkeiten des eingesetzten Treiber bzw. Sprache.

Da Du Access nehmen möchtest, musst Du eine Verbindung zu Deiner Datenbank haben, sprich ODBC, DAO, ADO, o.ä. Diese Information teilst Du auch nicht mit.

Aus diesem Grund können meine Antworten nur generell sein: Erstelle Dir in irgendeiner Form, z.B. mit einem View eine Sicht auf Deine Daten (unter mySQL Create View meintollerview (select * from .....)) und füge den als Verknüpfung in Access ein und erstelle daraus eben den Report.

Damit Du nicht unbedingt den Weg über Access und VBA gehen musst, habe ich Dir als Alternative Crystal Reports empfohlen oder eben die Möglichkeit alles selbst zu entwickeln z.B. in PHP mit XML:Fo

Aber wie gesagt, ohne dass wir eine genauere Problembeschreibung kennen, ist es nicht möglich Dir zu helfen.

Als Beispiel: Was sind Mandanten bei Dir? Rein datenbanktechnisch kann ich dies als ein Feld sehen, das in jeder Tabelle existiert, aber auch dass für jeden Kunden eine eigene Datenbank existiert, das würde aber Deiner Aussage "einer" Datenbank widersprechen.

Da Du von "Mandanten" redest, kann ich aufgrund meiner beruflichen Erfahrung auf Microsoft Dynamics (ehemals Navision) raten (!). Liege ich damit richtig? In diesem Fall spielt es eine sehr wichtige Rolle, wo die Datenbank liegt. Liegt sie in einem MS SQL Server oder auf den eigenen Dynamics Server?

Sprache meiner Wahl: Sagt doch einfach mal wo ich das im Editor hinschreiben muss?

Wenn ich z. B Modul1 öffne, bin ich immer in "Allgemein" "Deklarationen" des VB-Editor. Da, so habe ich mal gelernt kommt aber kein Programmcode hin. Es fehlt also ein Objekt? Muss ich einen Button erstellen und dann das das Ereignis verarbeiten?

Noch eine Verständnisfrage: Wozu braucht man die Module?

Wie wäre es, wenn Du Dich zunächst einmal mit der Sprache, hier VBA, auseinander setzt und ggf. mal ein Buch (siehe Post von @Amstelchen) liest, bevor Du anfängst. Aus diesem Grund hatte ich Dir geraten, vielleicht nicht Access zu verwenden, sondern eine Sprache (Deiner Wahl) in der Du sicherer und fitter bist.

Um Dir Deine Fage zu dem Modul zu beantworten: Siehe ein Modul als Klasse, in der Du z.B. wie @Amstelchen geschrieben hatte, ein DBExecute über einen bestimmten ODBC Treiber des Systems durchführst. Damit Du in anderen Codestücken nicht den kompletten Code wiederholen musst, bietet sich an, gerade solche Fragmente, die generell sind als Klasse innerhalb eines Moduls abzulegen und immer zu verwenden (siehe hierzu: Objektorientierte Programmierung ? Wikipedia)

HTH Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich gleube hier wurde in Sachen Redundanz Dinge nicht richtig verstanden:

Also die Datenbank A wird jeweils aus der Buchhaltungssoftware exportiert. Sie enthält immer die Jahresdaten eines Jahres (2006, 2007, ...) Nun wird Anfang 2007 die Datenbank A mit den Daten von 2006 in meine Datenbank B importiert. Zu Beginn von 2008 wird dann die Datenbank A mit dem Inhalt von dem Jahr 2007 importiert. Und so weiter. Also datenbank A ist immer ein Übertragungsmedium und wird immer wieder gelöscht. Die Daten sollen in Datenbank B gesammelt werden und nur da. Also liegen die Daten nicht Redundant vor.

Access möchte ich nicht unbedingt nehmen. Mein Chef sagt ich soll Access nehmen. (Er ist auch ein Access-Fan). Es spricht auch wenig dafür, dass ich eine eigene Lösung nehme. Das Projekt soll wiederverwendbar sein und ich bin nur noch drei Monate hier. Der Betrieb hat mir zwei Bücher in die Hand gedrückt: "Das große Buch der Access 95 Programmierung" und "Power Tools Access 2.0". Hier arbeite ich aber mit Office 2003.

Vielleicht hilft nochmal eine Begriffserklärung: Mandant heißt, dass in der Buchhaltung drei Bereiche geführt werden. Diese sollen aber in der Geschäfstführung zusammengefasst werden. Da aber die Mandanten in den drei Tabellen teilweise gleiche Kontonummern haben muss man ein weiteres Fld hinzufügen, das die gleichen Nummern unterscheidet. Das ist dann die neue Spalte die ich zunächst in alle drei importierten Tabellen einfügen möchte. Falls ein Missverständnis enstanden ist: Es gibt eine Datenbank in der je zwei Tabellen pro Mandant drin sind. Also ingesamt sechs Tabellen. Eine Tebbele des Mandanten stellt die Konten dar und die andere die Ein und Ausgaben. Mich interessieren im Moment nur die Konten.

Microsoft Dynamics gibt es hier nicht. Die Datenqulle ist sage KHK, eine Buchhaltungssoftware. Das Programm exportiert, wie oben beschrieben die Jahresdaten in eine Access-Datenbank (*.mdb) Die möchte ich dann in meine Datenbank B (auch *.mdb) importieren. Hier existiert zwar ein SQL-Server, aber der ist für meine Sache unrelevant!

Ich sagte ja eingangs, dass mit VB nciht ganz fremd ist. Aber durch die ingegration bin ich etwas irritiert. Ist es also richtig, wenn dass ich nun ein Formular machen sollte auf dem z. B. ein Button ist. Und dieser wird wie in VB mit den VBA Befehlen gefüttert?

mit den Modulen/Klassen möchte ich mich erst später beschäftigen, da ich mich erstmal im den Rest kümmern möchte.

Danke für eure langen beiträge. Ich blicke nun schon etwas besser durch. Falls noch Fragen sind. Fragt bitte!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also die Datenbank A wird jeweils aus der Buchhaltungssoftware exportiert. Sie enthält immer die Jahresdaten eines Jahres (2006, 2007, ...) Nun wird Anfang 2007 die Datenbank A mit den Daten von 2006 in meine Datenbank B importiert. Zu Beginn von 2008 wird dann die Datenbank A mit dem Inhalt von dem Jahr 2007 importiert. Und so weiter. Also datenbank A ist immer ein Übertragungsmedium und wird immer wieder gelöscht. Die Daten sollen in Datenbank B gesammelt werden und nur da. Also liegen die Daten nicht Redundant vor.

Generell stelle ich hier das Konzept der Software in Frage, denn man sollte diese Daten nicht jedes Jahr löschen (da gibt es unter anderem auch gesetzliche Vorschriften).

Ich formulieren ganz konkret: Existieren innerhalb der Buchungssoftware die Datensätze? D.h. kann ich zurzeit nach schauen was 2004 gelaufen ist?

Wenn ja, dann sind die Daten dort vorhanden und du solltest sie nicht in Access duplizieren. Der "Export" kann ja auch nur eine Kopie sein. Wenn Du z.B. den Export vom gleichen Buchungsjahr mehrfach wiederholen kannst, dann müssen die Daten in der Originaldatenbank vorhanden bleiben, denn sonst könntest Du nicht mehrfach das gleiche exportieren.

Schau hierzu Dir die Datenbank nativ an, sprich guck' direkt auf die Tabellen.

Access möchte ich nicht unbedingt nehmen. Mein Chef sagt ich soll Access nehmen. (Er ist auch ein Access-Fan). Es spricht auch wenig dafür, dass ich eine eigene Lösung nehme. Das Projekt soll wiederverwendbar sein und ich bin nur noch drei Monate hier. Der Betrieb hat mir zwei Bücher in die Hand gedrückt: "Das große Buch der Access 95 Programmierung" und "Power Tools Access 2.0". Hier arbeite ich aber mit Office 2003.

Mein Vorschlag: Sinnvolle Lösung. Wiederverwertbarkeit impliziert nicht zwingend Access.

Vielleicht hilft nochmal eine Begriffserklärung: Mandant heißt, dass in der Buchhaltung drei Bereiche geführt werden. Diese sollen aber in der Geschäfstführung zusammengefasst werden.

Dieses Prinzip nennt man Datawarehouse. Du möchtest im Grunde ein Datawarehouse erstellen

Da aber die Mandanten in den drei Tabellen teilweise gleiche Kontonummern haben muss man ein weiteres Fld hinzufügen, das die gleichen Nummern unterscheidet. Das ist dann die neue Spalte die ich zunächst in alle drei importierten Tabellen einfügen möchte. Falls ein Missverständnis enstanden ist: Es gibt eine Datenbank in der je zwei Tabellen pro Mandant drin sind. Also ingesamt sechs Tabellen. Eine Tebbele des Mandanten stellt die Konten dar und die andere die Ein und Ausgaben. Mich interessieren im Moment nur die Konten.

Sorry, wenn ich das so hart sage, aber diese Beschreibung ist völlig nutzlos. Wie sieht das Datenbankmodell dahinter aus, sprich die Relationen zwischen den Daten. Wie sieht das Modell für n-Mandanten aus? Nach Deiner Beschreibung existieren somit pro Mandant immer 2 Tabellen. Bist Du Dir sicher, dass dies so ist. Schau bitte einmal in der Originaldatenbank nach und nicht im Export!

Bitte poste für die genannte Problematik einmal das ERD, damit man sehen kann, wie die Tabellen, die Du benötigst verknüpft sind und wie die Relation ist.

Microsoft Dynamics gibt es hier nicht. Die Datenqulle ist sage KHK, eine Buchhaltungssoftware. Das Programm exportiert, wie oben beschrieben die Jahresdaten in eine Access-Datenbank (*.mdb) Die möchte ich dann in meine Datenbank B (auch *.mdb) importieren. Hier existiert zwar ein SQL-Server, aber der ist für meine Sache unrelevant!

Und welche Datenbank liegt hinter KHK? Wenn man mal bei Google schaut, was Du hättest längst tun können, dann würdest Du sehen, dass es für KHK (wenn es das ist was ihr einsetzt) einen ODBC Treiber gibt.

Bitte fang nicht an irgendwie etwas per Drag&Drop zusammen zu klicken, sondern, gerade wenn es wieder verwertbar sein soll, ein Konzept zu erarbeiten.

Für Dein weiteres Vorgehen empfehle ich Dir:

Schau auf der Tabellenstruktur nach, ob Daten wirklich beim Export gelöscht = entfernt werden, wenn nein (wovon ich ausgehe), dann mache keine Kopie der Daten in Access, sondern arbeite via ODBC auf den Originaldaten.

Wenn Du die ODBC Quelle angebunden hast, dann schaue Dir die Organisation der Daten an und versuche sie zu verstehen, so dass Du einen Select für Deine konkrete Abfrage formulieren kannst, der Dir die relevanten Daten liefert. Führe diesen Select über die ODBC Schnittstelle aus und schaue Dir das Resultset an, was geliefert wird, ob das Deinen Wünschen entspricht.

Nun hast Du 2 Möglichkeiten, dies ist aber abhängig von der KHK Datenbank. Den formulierten Select kannst Du als View in der Datenbank ablegen, über die ODBC sieht dies dann wie eine Tabelle aus. Oder wenn, die Datenbank keine Views unterstützt, füge die im Select benutzen Tabellen als verknüpfte Tabellen in eine beliebige Access Datenbank ein, dann hinterlegst Du den Select als Abfrage in Access.

Zum Schluss erstellst Du einen Bericht der die Daten des Views / Abfrage entsprechend zum Drucken aufbereitet. Du solltest die Abfrage im Hinblick auf Wiederverwertbarkeit so gestallten, dass z.B. das Buchungsjahr / Mandant usw flexibel über Parameter eingestellt werden können.

Bitte formuliere Deine Posts präziser. Es ist im Grunde spielt es für Deine Beschreibung keine Rolle, was Du für Mandanten oder sogar was für Daten Du hast, sondern nur wie diese organisiert sind. Ebenso beschränkt sich Dein Problem darauf, dass Du eine Verbindung zur Datenbank haben musst, ein Select absetzt und eben die Daten darstellst.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Betrieb hat mir zwei Bücher in die Hand gedrückt: "Das große Buch der Access 95 Programmierung" und "Power Tools Access 2.0". Hier arbeite ich aber mit Office 2003.

was ja durchaus aktuelle fachliteratur ist (nach access 95 gabs 97, dann 2000, 2002) ;)

ich gebe zu, die basics haben sich nur marginal geändert, trotzdem: zwischen 95 und 2003 liegen 8 jahre und 3 releases. vielleicht solltest du deinen chef mal drauf ansprechen, auch wenn du nur mehr 3 monate für ihn arbeitest.

Ist es also richtig, wenn dass ich nun ein Formular machen sollte auf dem z. B. ein Button ist. Und dieser wird wie in VB mit den VBA Befehlen gefüttert?

ja, buttons in access werden mit VBA gesteuert (sogenannte ereignisprozeduren, z.b. MeineSchaltflaeche_Click()).

mit den Modulen/Klassen möchte ich mich erst später beschäftigen, da ich mich erstmal im den Rest kümmern möchte.

kümmere dich vorzugsweise zuerst um die daten und inhalte, und lass jedes gefrickel mit formularen aussen vor.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vorerst die Antwortauf Flashpixx:

Zitat vom Chef: "Die Buchhaltung ist mir heilig!" Also man soll mit der Access keine Verbindung zu Sage KHK aufbauen. Das muss ich dann akzeptieren. Sprich ich muss Pedundanzen erzeugen. Ich habe nie gesagt, dass es meine Meinung ist.

Mir ist klar, dass ich Kopien in Sage selbst noch habe. Dies habe ich schon ausgeklammert. Wenn die oben das so wollen, dann ist das so. Ich muss mich nach dem richten.

Inzwischen habe ich einen Ansatz in Access gefunden. Der Import klappt nun auf VBA-Ebene. Das ist für mich ein großer Schritt.

Den Begriff "Datawarehouse" kenne ich nicht. Aber wenn du meinst, dass es das ist, ok. :-)

Meinst du mit ERD die Beziehungen? Da gibt es keine! die wurden in der Exportdatei keine eingestellt.

Folgende Tabellen habe ich als Rohdaten: KHK_Konten_DL_2007, KHK_Konten_HA_2007, KHK_Konten_PP_2007, KHK_Werte_DL_2007, KHK_Werte_HA_2007, KHK_Werte_PP_2007. Mehr sind es nicht.

nun zu Amstelchen:

Der Chef ist gerade in Urlaub, wenn er wieder da ist, werde ich mal nachfragen.

Ich habe in dem ImportButton z. b. den Import in VBA geschrieben. Da es drei Tabellen sind könnte man doch die in eine Klasse fassen und dann der Klasse die sich ändernen Daten übergeben. Aber das ist ein Thema mit dem ich mich nicht mehr so auskenne.

Mein Aktueller Stand: Ich importiere die Tabellen und füge die Mandantenspalte mit Werten ein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vorerst die Antwortauf Flashpixx:

Zitat vom Chef: "Die Buchhaltung ist mir heilig!" Also man soll mit der Access keine Verbindung zu Sage KHK aufbauen. Das muss ich dann akzeptieren. Sprich ich muss Pedundanzen erzeugen. Ich habe nie gesagt, dass es meine Meinung ist.

Mir ist klar, dass ich Kopien in Sage selbst noch habe. Dies habe ich schon ausgeklammert. Wenn die oben das so wollen, dann ist das so. Ich muss mich nach dem richten. [....]

Den Begriff "Datawarehouse" kenne ich nicht. Aber wenn du meinst, dass es das ist, ok. :-)

Ein genereller Ansatz dazu: Nichts ist unmöglich und man muss auch nicht das so hinnehmen. Ich würde mich da wirklich in ein Gespräch mit meinem Chef begeben und ihm das im Detail schildern. Zum Thema Datawarehouse (das Du sicher einmal bei Wiki nachschlagen hast). Warum verkaufst Du ihnen nicht ein Datawarehouse Konzept und mach exemplarisch dies an deinem Beispiel der Buchungen fest:

  1. Lass Dir nen neuen User in KHK anlegen, der nur Daten lesen kann
  2. installier den ODBC Treiber
  3. Verknüpfe die Tabellen die Du brauchst
  4. erstelle Deine Auswertunge mit nen paar schönen Bildchen z.B. hänge an Access noch Excel dran
  5. geh zu Deinem Chef, installiere in seinem Beisein den ODBC Treiber und mach die Access Datenbank auf und zeige ihm was man machen kann

Meinst du mit ERD die Beziehungen? Da gibt es keine! die wurden in der Exportdatei keine eingestellt.

Folgende Tabellen habe ich als Rohdaten: KHK_Konten_DL_2007, KHK_Konten_HA_2007, KHK_Konten_PP_2007, KHK_Werte_DL_2007, KHK_Werte_HA_2007, KHK_Werte_PP_2007. Mehr sind es nicht.

Ich bitte Dich zu informieren was ein ERD ist. Ohne dass Du Beziehungen zwischen Deine Tabellen erkennst, kannst Du sie nicht auswerten. Denn wie hängen z.B. Konten_HA und Werte_DL zusammen? Deswegen die Bitte schau Dir die Originaltabellen an und mit Visio kannst Du Dir die Beziehungen z.B. graphisch darstellen lassen (sofern dass die Datenbank das unterstützt)

Ich habe in dem ImportButton z. b. den Import in VBA geschrieben. Da es drei Tabellen sind könnte man doch die in eine Klasse fassen und dann der Klasse die sich ändernen Daten übergeben. Aber das ist ein Thema mit dem ich mich nicht mehr so auskenne.

Mein Aktueller Stand: Ich importiere die Tabellen und füge die Mandantenspalte mit Werten ein.

Dazu meine Frage was willst Du? Sollen wir Dir jetzt die VBA Befehle und die einzelnen Schritte diktieren, damit Du unsere Leistung als Deine verkaufen kannst?

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...