Sto cercando di creare un QueryTable in un foglio di calcolo Excel utilizzando Python comtypes biblioteca, ma ottenere un errore piuttosto uninformative ...problema usando la libreria Python comtypes per aggiungere un QueryTable per Excel
in VBA (in un modulo all'interno della cartella di lavoro), il seguente codice funziona bene:
Sub CreateQuery()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ws As Worksheet
Dim qt As QueryTable
Set ws = ActiveWorkbook.Sheets(1)
Set con = New ADODB.Connection
con.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\to\Db.mdb;")
Set rs = New ADODB.Recordset
rs.Open "Select * from [tbl Base Data];", con
Set qt = ws.QueryTables.Add(rs, ws.Range("A1"))
qt.Refresh
End Sub
Ma il seguente codice Python:
import sys
import comtypes.client as client
def create_querytable():
constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Path\\to\\Db.mdb"
conn = client.CreateObject("ADODB.Connection", dynamic = True)
rs = client.CreateObject("ADODB.Recordset", dynamic = True)
SQL = "Select * from [tbl Base Data];"
conn.Open(constring)
rs.Open(SQL, conn)
excel = client.CreateObject("Excel.Application", dynamic = True)
excel.Visible = True
ws = excel.Workbooks.Add().Sheets(1)
qt = ws.QueryTables.Add(rs, ws.Range["A1"])
qt.Refresh()
rs.Close()
conn.Close()
lancia il messaggio di errore inutile:
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
create_querytable()
File "C:/Documents and Settings/cvmne250/Desktop/temp.py", line 17, in create_querytable
qt = ws.QueryTables.Add(rs, ws.Range["A1"])
File "G:\ISA\SPSS\comtypes\lib\comtypes\client\lazybind.py", line 160, in caller
File "G:\ISA\SPSS\comtypes\lib\comtypes\automation.py", line 628, in _invoke
COMError: (-2147352567, 'Exception occurred.', (None, None, None, 0, None))
Qualche idea su cosa sta succedendo qui?
Grazie!
Eli, lo spazio in più è stato rimosso era lì per far apparire le cose corrette sull'anteprima. Ora sono curioso: sono bloccato, ma la politica aziendale utilizza IE6, che richiede lo spazio per sembrare giusto - era proprio su altri browser senza di esso? – mavnn
Mi sembra ancora buono in Firefox 3.0.7 – tgray
Si potrebbe anche voler aggiungere un tag Visual Basic o VBA alla domanda ... – tgray