Mehrere SQL Datenbanken per VBA über ODBC abfragen

thorsten1304

Benutzer
Beiträge
10
Hallo zusammen,

ich komme leider irgendwie nicht weiter. Ich möchte ganz gern unser Reporting automatisieren und habe dafür bereits unsere SQl Datenbanken per ODBC im Windows angebunden. Ich kann auch ohne Probleme per MS Querie oder VBA darauf zugreifen. Wie muss ich den folgenden Code anpassen, damit ich mehrere SQL-Datenbanken, die auf dem gleichen Server liegen, öffnen kann? Ich möchte eine vorhandene Select-Anweisung nutzen, welche zwei Datenbanken verknüpft und abfragt.


Code:
Sub DBreader()
 
 
 
    Dim cnt As New ADODB.Connection
 
    Dim rst As New Recordset
 
    Dim strconnectstr As String
 
    Dim qry As String
 
 
 
    strconnectstr = "Provider=MSDASQL;Driver={MySQL ODBC 5.2 Unicode Driver};Server=192.168.200.01;Database=customer_portal;User=name;Password=password;Option=3;"
 
 
 
    qry = "SELECT Count(id) FROM customer_portal.user"
 
 
    cnt.Open strconnectstr
 
 
 
    rst.Open qry, cnt
 
 
 
    Range("a5").CopyFromRecordset rst
 
 
 
End Sub
Vielen Dank vorab

Gruß Thorsten
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.846
Hallo zusammen,

ich komme leider irgendwie nicht weiter. Ich möchte ganz gern unser Reporting automatisieren und habe dafür bereits unsere SQl Datenbanken per ODBC im Windows angebunden. Ich kann auch ohne Probleme per MS Querie oder VBA darauf zugreifen. Wie muss ich den folgenden Code anpassen, damit ich mehrere SQL-Datenbanken, die auf dem gleichen Server liegen, öffnen kann?

Möglicherweise gar nicht, IIRC kannst Du, wenn der User auf DB-Ebene Rechte in beiden Datenbanken hat, da auch zugreifen.
 

thorsten1304

Benutzer
Beiträge
10
Ich habe auf alle DBs Zugriffsrechte. Wenn ich die DBs unter phpMyAdmin mit
Code:
SELECT count(DB1.id) FROM online_shop.order_info DB1, online_shop.ba_order DB2 WHERE DB1.order_id=DB2.id and email not like '%meetyoo.de' and tariff_no='BA ONLINE' and order_date>='2013-07-01' and order_date<='2013-07-31'
verknüpfe, so bekomme ich auch die gewünschten Ergebnisse. Ich möchte dies aber gern automatisiert mittels VBA im Excel lösen. Dann reicht ein Knopfdruck für die 30 notwendigen Statements.
 

akretschmer

Datenbank-Guru
Beiträge
9.846
Ich habe auf alle DBs Zugriffsrechte. Wenn ich die DBs unter phpMyAdmin mit
Code:
SELECT count(DB1.id) FROM online_shop.order_info DB1, online_shop.ba_order DB2 WHERE DB1.order_id=DB2.id and email not like '%meetyoo.de' and tariff_no='BA ONLINE' and order_date>='2013-07-01' and order_date<='2013-07-31'
verknüpfe, so bekomme ich auch die gewünschten Ergebnisse. Ich möchte dies aber gern automatisiert mittels VBA im Excel lösen. Dann reicht ein Knopfdruck für die 30 notwendigen Statements.

Ja, und? Scheitert es jetzt daran, das SQL aus dem ersten Posting durch das im zweiten zu ersetzen?
 

thorsten1304

Benutzer
Beiträge
10
Mein Grundproblem ist, dass ich nicht weiß wie ich beide Datenbanken öffne damit ich sie dann abfragen kann. Für eine DB habe ich es ja abgebildet. Ich muss doch aber irgendwo die zweite DB auch noch zuweisen, damit diese überhaupt abgefragt werden kann.
 

akretschmer

Datenbank-Guru
Beiträge
9.846
Mein Grundproblem ist, dass ich nicht weiß wie ich beide Datenbanken öffne damit ich sie dann abfragen kann. Für eine DB habe ich es ja abgebildet. Ich muss doch aber irgendwo die zweite DB auch noch zuweisen, damit diese überhaupt abgefragt werden kann.

Soweit ich weiß nein. Über die eine Verbindung kannst Du auch die andere DB abfragen.
 
Werbung:
Oben