Je suis en train de créer un QueryTable dans une feuille de calcul Excel à l'aide de la bibliothèque Python comtypes, mais obtenir une erreur plutôt uninformative ...problème en utilisant la bibliothèque de Python pour ajouter un QueryTable à Excel
En vba (dans un module dans le classeur), le code suivant fonctionne très bien:
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
Mais le code Python suivant:
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()
Lance le message d'erreur 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))
Toutes les idées sur ce qui se passe ici?
Merci!
Eli, l'espace supplémentaire que vous avez retiré était là pour faire les choses semblent correctes sur l'aperçu. Je suis maintenant curieux: je suis coincé mais la politique de l'entreprise en utilisant IE6 qui nécessite l'espace pour regarder à droite - était-il regarder sur d'autres navigateurs sans elle? – mavnn
Il me semble encore bien dans Firefox 3.0.7 – tgray
Vous pouvez également ajouter un tag Visual Basic, ou VBA à la question ... – tgray