Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

vbs - Oracle DB to xls

Frage Entwicklung Datenbanken

Mitglied: KikiMiki

KikiMiki (Level 1) - Jetzt verbinden

17.11.2009 um 12:32 Uhr, 4344 Aufrufe, 6 Kommentare

Hallo,

dank der Hilfe im Forum hier hab ich eine vbs welche mir ein SQL-Statement auf unserer MYSQL DB ausführt und das Ergebnis in xls importiert. Ist das auch für eine Oracle DB möglich?
Hier der von mir benutzte Code:

01.
Option Explicit 
02.
 
03.
'---- CursorTypeEnum Values ---- 
04.
Const adOpenForwardOnly = 0 
05.
' Const adOpenKeyset = 1 
06.
' Const adOpenDynamic = 2 
07.
' Const adOpenStatic = 3 
08.
 
09.
'---- LockTypeEnum Values ---- 
10.
Const adLockReadOnly = 1 
11.
' Const adLockPessimistic = 2 
12.
' Const adLockOptimistic = 3 
13.
' Const adLockBatchOptimistic = 4 
14.
 
15.
'---- CursorLocationEnum Values ---- 
16.
' Const adUseServer = 2 
17.
Const adUseClient = 3 
18.
 
19.
'---- ConnectModeEnum Values ---- 
20.
' Const adModeUnknown = 0 
21.
Const adModeRead = 1 
22.
' Const adModeWrite = 2 
23.
' Const adModeReadWrite = 3 
24.
' Const adModeShareDenyRead = 4 
25.
' Const adModeShareDenyWrite = 8 
26.
' Const adModeShareExclusive = &Hc 
27.
' Const adModeShareDenyNone = &H10 
28.
' Const adModeRecursive = &H400000 
29.
Dim objExcel, objWb, SkriptPfad 
30.
Dim objSheet 
31.
Dim Conn, RS 
32.
Dim rowCount, i, headerSet 
33.
Dim x 'Zähler für Statusbar 
34.
 
35.
 
36.
MsgBox "Mit dem OK-Button wird der Import gestartet."& vbCrLf & "Je nach SQL-Statement kann der Import mehrere Minuten dauern!" ,64, "Info" 
37.
 
38.
 
39.
x = 0 'Anfangswert für Zähler - Anzahl importierter Datensätze 
40.
 
41.
 
42.
rowCount = 1 
43.
 
44.
SkriptPfad = WScript.ScriptFullName 'Pfadermittlung 
45.
SkriptPfad = Left(SkriptPfad, Len(SkriptPfad) - Len(WScript.ScriptName))  'Pfadermittlung 
46.
 
47.
 
48.
Set objExcel = CreateObject("Excel.Application")  
49.
Set objWb = objExcel.Workbooks.Open(SkriptPfad & "Report.xls")'öffnet die angegebene xls 
50.
 
51.
 
52.
 
53.
objExcel.Visible = False 'die geöffnete xls ist während dem Import nicht sichtbar 
54.
objExcel.Sheets("Datenbasis").Select 'wählt die angegebene Mappe der zuvor geöffneten xls 
55.
objExcel.Range("Datenbasis!$1:$65536").ClearContents 'löscht alle Inhalte von angegebener Mappe 
56.
 
57.
'Angabe des Tabellenblattes 
58.
Set objSheet = objExcel.ActiveWorkbook.WorkSheets("Datenbasis") 'Import in angegebenes Tabellenblatt 
59.
 
60.
Set Conn = CreateObject("ADODB.Connection") 
61.
Conn.Provider = "MSDASQL" 
62.
Conn.Mode = adModeRead 
63.
Conn.CursorLocation = adUseClient 
64.
Conn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _ 
65.
          "SERVER=100.10.19.173;UID=read_user;PWD=geheim;Port=3310;database=kunden_db" 
66.
          
67.
 
68.
Set RS = CreateObject("ADODB.Recordset") 
69.
RS.CursorLocation = adUseClient 
70.
'verwendete SQL-Anweisung 
71.
RS.Source = "SELECT * from Kundentabelle;" 
72.
Set RS.ActiveConnection = Conn 
73.
RS.CursorType = adOpenForwardOnly 
74.
RS.LockType = adLockReadOnly 
75.
RS.Open           
76.
 
77.
Do While Not RS.EOF 
78.
'objExcel.StatusBar = x & " Datensätze aus Kundendatenbank importiert" 'Text für Statusbar 'macht nur Sinn bei objExcel.Visible = True 
79.
'Die Spalenüberschriften einfügen Bezug aus dem SQL-Statement 
80.
	If( headerSet = 0 ) Then 
81.
		For i = 0 to RS.Fields.Count - 1 
82.
		  objSheet.Cells(rowCount, i+1).Value = RS.Fields.Item(i).Name 
83.
		Next 
84.
		headerSet = 1 
85.
    End If 
86.
'Die dazugehörigen Werte einfügen 
87.
	For i = 0 to RS.Fields.Count -1  
88.
	  objSheet.Cells(rowCount+1, i+1).Value = RS.Fields.Item(i).Value 
89.
	Next 
90.
    rowCount = rowCount + 1 
91.
	RS.MoveNext 
92.
	 
93.
x = x + 1 
94.
Loop 
95.
'objExcel.Statusbar = False 'Statusbar bereinigen 'macht nur Sinn bei objExcel.Visible = True 
96.
 
97.
 
98.
objExcel.Sheets("Kunden").Select 'wählt die angegebene Mappe der zuvor geöffneten xls 
99.
objExcel.Cells(12, 5) = Date & " / " & Time & " Uhr"  
100.
objExcel.Cells(13, 5) = x & " Datensätze" 
101.
 
102.
 
103.
RS.Close 
104.
Set RS = Nothing 
105.
 
106.
Conn.Close 
107.
Set Conn = Nothing 
108.
 
109.
 
110.
objExcel.Visible = False  
111.
 
112.
objExcel.ActiveWorkBook.Save  
113.
objExcel.Quit 
114.
 
115.
 
Mitglied: Biber
17.11.2009 um 13:13 Uhr
Moin KikiMiki,

natürlich ist es möglich.

Benötigst du das denn auf einem Rechner, auf dem ein (=irgendein) Oracle-Client installiert ist oder liegt nur der Original-MS-Oracle-Dünnbrett-Treiber vor?

Grüße
Biber
Bitte warten ..
Mitglied: KikiMiki
17.11.2009 um 13:17 Uhr
Hi Biber
Bin jetzt nicht so der Proooofi
Über Toad for Oracle greif ich auch unsere DB...

Hilft dir das weiter?
Bitte warten ..
Mitglied: Biber
17.11.2009 um 13:39 Uhr
Moin KikiMiki,

wenn TOAD installiert ist, dann gibt es wahrscheinlich auch eine richtig einstellte tnsnames.ora.
Aus dieser kannst du dann die Feinheiten abtippen.

Das grobe Raster für Egal-welchen-Oracle-Zugriff findest du ansonsten auf Connectionstrings.

Grüße
Biber
Bitte warten ..
Mitglied: KikiMiki
17.11.2009 um 14:02 Uhr
Hi Biber

bezogen auf meinen geposteten Code, welche Passagen muss ich ändern?
Ist der Aufbau der gleiche und nur die Verbindungsparameter müssen geändert werden?
Bitte warten ..
Mitglied: Biber
17.11.2009 um 14:41 Uhr
Moin KikiMiki,

es sollte mit der gleichen Mimik funktionieren, lediglich die Zeilen 61-65 sollten mit den Daten der Oracle-Connection gefüllt werden.

Da es (soweit es ersichtlich) nur um Lesezugriffe geht, ist kein größerer Änderungsaufwand ableitbar.

Grüße
Biber
Bitte warten ..
Mitglied: Bacaaardi
17.11.2009 um 15:05 Uhr
Hallo,

irgendwie check ich das nicht


01.
Conn.Provider = "MSDASQL"  
02.
Conn.Mode = adModeRead  
03.
Conn.CursorLocation = adUseClient  
04.
Conn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _  
05.
          "SERVER=100.10.19.173;UID=read_user;PWD=geheim;Port=3310;database=kunden_db" 
Kann ich exakt die gleiche Syntax nehmen?
Nur Server, UID, PWD,POrt und databese mit den entsprechenden Werten ersetzten?
Brauch ich keine zusätzlichen Werte, heißt auch alles Gleich z.B. UID oder UserID?

Bei Conn.Provider was muss da stehen wenn es eine Oracle DB ist?

Damit mein Skript über die MySQL überhaupt lief musste ich mysql-connector-odbc-5.1.5-win32.msi installieren
Brauch ich auch was für dei Oracle DB?
Bitte warten ..
Ähnliche Inhalte
Datenbanken
ORACLE DB Abfrage
Frage von MarabuntaDatenbanken5 Kommentare

Hallo, ich habe folgende Tabelle: Jetzt brauche ich eine Abfrage, um das vorletzte Datum auszugeben. Vorher: Zwischenstand: In den ...

Datenbanken
Fehler bei der Oracle DB-Sicherung
Frage von dbox3Datenbanken1 Kommentar

Hallo liebe Gemeinde, ich habe auf meinem Server 2008r2 eine Sicherung der Oracle-DB eingerichtet, die längere Zeit problemlos lief, ...

Microsoft Office
Abfrage durch vba von Oracle-DB, Fehlermeldung
Frage von famsprengeMicrosoft Office

Hallo zusammen, ich versuche mit Excel-vba eine Abfrage von einer Oracle-Datenbank durchzuführen. Der Code läuft durch bis zum Öffnen ...

Webentwicklung
Problem mit IIS 7 und Oracle DB Anbindung
gelöst Frage von Leo-leWebentwicklung9 Kommentare

Hallo zusammen, ich versuche gerade einen W2K3 Webserver mal auf einen noch vorhandenen W2K8 R2 Server zu verschieben. Insgesamt ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...