2012-04-10 4 views
2

Ich arbeite daran, SQL in Excel mit VBA mit dem folgenden Skript (zensiert, um einige DB-Info zu schützen, aber die Teile des Skripts arbeiten) Wenn ich zur Kompilierung gehen bekomme ich die Laufzeit 430 Fehler: Klasse keine Automatisierung unterstützen oder nicht erwartete SchnittstelleGeting Error 430: Automatisierungsfehler

ich verwende Excel 2007 VBA 6.5 und SQL 2005

Hier unterstützt ist das Skript

Sub GetDataFromADO() 

    Dim objMyConn As ADODB.Connection 
    Dim objMyCmd As ADODB.Command 
    Dim objMyRecordset As ADODB.Recordset 

    Set objMyConn = New ADODB.Connection 
    Set objMyCmd = New ADODB.Command 
    Set objMyRecordset = New Recordset 

    objMyConn.ConnectionString = "Provider=SQLOLEDB;SERVER=M$#$%#@@$1;DATABASE=i*&^*;Trusted_Connection=yes;HDR=yes" 
    objMyConn.Open 

    Set objMyCmd.ActiveConnection = objMyConn 
    objMyCmd.CommandText = "use i*&^* select * from $#%.^&_d**^%_p**^^l where year(d****_date) = 2012 and month(d***_date)= 03 and deal_id < 5*******0 order by d***_id" 
    objMyCmd.CommandType = adCmdText 
    objMyCmd.Execute 

    ActiveSheet.Range("A2").CopyFromRecordset (objMyRecordset) 

End Sub 
+1

Ich habe Schwierigkeiten zu sehen, wie dieses Skript funktionieren kann. Zum einen stimmt die Verbindungszeichenfolge mit nichts [hier] überein (http://www.connectionstrings.com/sql-server-2005). Welche Zeile gibt den Kompilierungsfehler? – Fionnuala

Antwort

2

Sie die objMyRecordset initialisiert haben, aber nie Fülle Daten hinein. Dann versuchen Sie, Daten aus objMyRecordset in Ihre Excel-Datei zu importieren, die nicht funktionieren.

Stellen Sie zuerst sicher, dass Sie das Re-Cord-Set gefüllt haben, und lassen Sie dann nur das CopyFromRecordset aufrufen.

Verwandte Themen