Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatisch Export aus Datenbanken anstoßen

Automatisch Export aus Datenbanken anstoßen
20.05.2005 10:33:31
Silvia
Hallo zusammen,
ich verarbeite aktuell die Daten, die ich über einen Export aus einer Datenbank als CSV zur Verfügung habe.
Jetzt möchte ich den manuellen Schritt (Erstellen des Exports) umgehen. Dies soll automatisch durch einen Klick auf einen Button in Excel erfolgen.
Wie kann man dies realisieren?
Gibt es einen Befehl, dem man den DB-Namen, UserNamen und vor allem einen SQL Befehl übergeben kann?
Über Hilfe wäre ich sehr dankbar.
Es muss auch keine csv Datei als Resultat herauskommen. Ich möchte die resultierenden Daten halt irgendwie verarbeiten können.
Lieben Gruß,
Silvia

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Export aus Datenbanken anstoßen
20.05.2005 10:55:23
bavariabob
Hallo Silvia,
versuch's hiermit. Du musst natürlich die Datennamen, Passwörter usw. anpassen.

Sub DatenbankImport()
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=D:\EDI\EDI_Auswertung.mdb;Mode=Share Deny Write;Extended " _
, _
"Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet" _
, _
" OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database P" _
, _
"assword="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;" _
, "Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), _
Destination:=Range("D21"))
.CommandType = xlCmdTable
.CommandText = Array("IDOC_Statistics")
.Name = "EDI_Auswertung"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = "D:\EDI\EDI_Auswertung.mdb"
.Refresh BackgroundQuery:=False
End With
End Sub

Anzeige
AW: Automatisch Export aus Datenbanken anstoßen
20.05.2005 13:50:29
Silvia
erst mal vielen Dank für die bisherigen Antworten.
ich hab mal das folgende probiert:

Sub DatenbankImport()
With ActiveSheet.QueryTables.Add(Connection:=Array( _
"OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=doersi2t;Data Source=\\fthw9g7a\PACS_ : Products;Mode=Share Deny Write;Extended " _
, _
"Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet" _
, _
" OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database P" _
, _
"assword="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;" _
, "Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), _
Destination:=Range("D21"))
.CommandType = xlCmdTable
.CommandText = "select distinct T1.dbid,T1.id_num,T1.state_num,T1.priority,T1.no_,T1.summary,T1.label,T1.found_in,T1.category,T1.keyword_1,T1.real_version,T1.mess_name,T1.remain_name from Defect T1,rr_alias_client T3,rr_alias_default T4,rr_alias_product T5 where T1.client_access = T3.dbid and T1.default_access = T4.dbid and T1.product_access = T5.dbid and (T1.dbid <> 0 and ((T1.real_version like '%VB20A%' and T1.prod_proc like '%SIRIUS%' and T1.no_ like '%ssc%'))) and  ((T3.dbid in (-1)) or (T4.dbid in (-1)) or (T5.dbid in (34204604,34303445,34151943,33907988,34204757))) order by T1.id_num ASC"
.Name = "Export"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub

Beim Ausführen kommt beim Refresh ein MS Jet Ole DB-Initialisierungsinformationsfenster
Wenn ich hier dann mein Passwort eingebe kommt folgende Fehlermeldung:
"Die Anwendung kann nicht gestartet werden. Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von einem anderen Benutzer geöffnet".
So, nun blinken in meinen Augen viele Fragezeichen.
Was kann das denn heißen?
Wird die DB nicht gefunden?
Bitte helft mir weiter...
Anzeige
AW: Automatisch Export aus Datenbanken anstoßen
20.05.2005 10:55:43
EtoPHG
Hallo Silvia,
Dazu ist am besten ein Direktzugriff via ODBC auf die Datenbank geeignet.
Du brauchst einen DSN (DataSourceName), den du über den ODBC-Manager definierst und anschliessend kannst Du via MS-Query (Menu Daten Externe Daten Neue Datenabfrage) Deinen SQL zusammenstellen.
Gruss Hansueli
AW: Automatisch Export aus Datenbanken anstoßen
20.05.2005 11:31:53
Kurt
hi,
machs so:

Sub Test()
connstring = "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=User;PWD=passwort;SERVER=datenbank"
sql_statement = "select LFDPERSONALNR, Kurzname , Dienstnummernzusatz, datum from PD_ZUTEILUNGSINFORMATION "
sql_statement = sql_statement & "where LFDORGANISATIONSEINHEITNR = 9000025 "
sql_statement = sql_statement & "and LFDDIENSTNR > 0 "
sql_statement = sql_statement & "and (substr(kurzname,1,1) = '1' or substr(kurzname,1,1) = '3' or substr(kurzname,1,1) = '4' or substr(kurzname,1,1) = '6' or substr(kurzname,1,1) = '9') "
sql_statement = sql_statement & "and datum between trunc(last_day(add_months(sysdate,-2))+1) and trunc(last_day(add_months(sysdate,-1)))"
With Sheets("Abfrage").QueryTables.Add(Connection:=connstring, Destination:=Worksheets("Abfrage").Range("A1"))
.BackgroundQuery = False
.Sql = sql_statement
.Refresh
.Delete
End With
End Sub

...und Tschüss Kurt
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige