redbullmachtfit
Goto Top

Per VB Daten aus Excel-ODBC-Abfrage aktualisieren

Mithilfe eines VB-Programms oder VBA-Makro sollen in Excel die Daten einer ODBC-Abfrage aktualisiert werden.

Hallo! Ich möchte etwa 10 Excel-Dateien mit mehreren Tabellen regelmäßig aktualisieren.
Die enthaltenen Daten jeder Tabelle stammen aus einer ODBC-Abfrage. Es muss jedoch jede Tabelle einzeln aktualisiert werden,
da unser ERP-System sonst wegen mangelnder Lizenzen meckert.
Also, Excel-Datei öffnen, Tabelle 1 aktualisieren, wenn fertig Tabelle 2 aktualisieren usw.
Ob das ganze mit VB6, VB.NET oder als VBA funktioniert ist eigentlich egal. Wär halt super, wenn das ganze noch automatisiert abläuft.
Ach ja, die Tabellen haben verschiedene Namen (Artikel, Kunden usw.). Ich verwende Office 2007 und Windows XP.
Danke schonmal für eure Hilfe!

Content-Key: 123323

Url: https://administrator.de/contentid/123323

Ausgedruckt am: 28.03.2024 um 11:03 Uhr

Mitglied: TsukiSan
TsukiSan 24.08.2009 um 09:30:27 Uhr
Goto Top
Hallo Scarabaeus,

um was für eine Datenbank genau handelt es sich denn? Borland Paradox, Filemaker, Windows Access, IBM DB2 etc. etc. ????

Um so ein automatisiertes Programm zu erstellen, benötigt man schon etwas mehr genauere Vorstellungen, was genau gelesen/geschrieben werden soll und wohin soll das passieren.
Wie man mit VB6 oder VBS mit Exceldateien arbeitet ist sicher kein Problem, dies hier kurz aufzuführen, aber damit ist die Sache ja noch längst nicht getan.
Beispiel für VB6, wie man in ein Excelfile Daten einträgt:

Dim objXL As Object
    
Set objXL = CreateObject("Excel.Application")  
objXL.Workbooks.Add
objXL.visible = false

'trägt dir die aktuelle Zeit in die erste Spalte/Reihe ein  
objXL.cells(1, 1).Value = Time

objXL.visible = true

set objXL = nothing

so funktioniert das auch mit VBS.
Aber ohne genaueren Details ist es schwierig, ein angepasstes Programm zu schreiben. In wieweit sind deine Kentnisse in VB?
Reichen dir Programmschnipsel?

Gruß
Tsuki
Mitglied: RedBullmachtfit
RedBullmachtfit 25.08.2009 um 10:21:21 Uhr
Goto Top
Danke für deinen Beitrag, wusste nicht, dass du dass so genau wissen musst ;)
Es handelt sich soweit ich weiß um eine DB2 (D++?!) Datenbank. Wie bekomme ich das heraus?
Ich habe eine Abfrage mit Query erstellt und hole mir diese Daten immer in Excel per "Daten aktualisieren".

VB sollte einfach nur nacheinander die Daten Tabelle für Tabelle aktualisieren. Das wäre schon klasse!!!
Wenn VB anschließend noch jedes Excelfile im Ordner genauso durcharbeiten würde wäre das noch besser.
Gruß
Mitglied: TsukiSan
TsukiSan 26.08.2009 um 03:30:05 Uhr
Goto Top
Hallo Scarabaeus

ein maßgeschneitertes Programm werde ich dir nicht liefern können, da mir die Zeit fehlt. Aber ich - und das Forum auch - können dir die Schnipsel liefern, mit denen du dir dein Programm zusammenbauen kannst.
Ich würde sagen, wir bleiben bei VBS, dann brauchst du keine Developer zu installieren.
Du weißt sicher selbst, wie deine Datenbank aufgebaut ist.

Beispiel:
Kopf: PC , User, BS
Erste Zeile:Dell,User1,XP_Prof
Zweite Zeile:Dell,User2,Vista
Dritte Zeile:Dell,User3,W2k
usw.

Dann lesen wir die Datenbank aus und tragen die Werte in ein neues Excelsheet:
Dim MeineDatenbasis
i = 1

Dim objXL
Set objXL = WScript.CreateObject("Excel.Application")  
objXL.Workbooks.Add


Set FSO = CreateObject("Scripting.FileSystemObject")  
Set MyDB = FSO.OpenTextFile("C:\MeineDatenbank.DB2", 1)  

Do Until MyDB.AtEndOfStream 
    MeineDatenbasis = MyDB.ReadLine
    MeineDatenbasis = Split(MeineDatenbasis , ",")  
    
    objxl.cells(i,1) = MeineDatenbasis(0)
    
    For x = 1 to Ubound(MeineDatenbasis)
        objxl.cells(i,x + 1) = MeineDatenbasis(x)
    Next

    i = i + 1
Loop
MyDB.close

objxl.visible = true

set objxl = nothing
set MyDB = nothing
set FSO = nothing

Somit werden Daten von einer Datei nach Excel geschrieben.
Aber wie gesagt, du mußt wissen, welche Daten genau benötigt werden
und in welchem Format deine Datenbank ist. Mein Beispiel bezieht sich auf eine reine Textdatei als Datenbank.
Und wenn du dein Programm später selbst geschrieben hast, dann hast du auch etwas, auf was du stolz sein kannst face-wink

Gruß
Tsuki
Mitglied: RedBullmachtfit
RedBullmachtfit 26.08.2009 um 11:47:40 Uhr
Goto Top
Danke für deine Hilfe!
Ich bin ehrlich und dachte, dass sich einfach der Klick auf "Daten aktualisieren" für jede Tabelle automatisieren lässt.
Ich werde mich dort mal durcharbeiten!

Gruß
Scarabaeus