Sto provando a interrogare un nome definito in un ambito del foglio di lavoro con SQL utilizzando ODBC.Qual è il nome della tabella per un nome definito nell'ambito di un foglio di lavoro?
so già che questo funziona:
SELECT * FROM [worksheet1$] -- Query a whole worksheet
SELECT * FROM [worksheet1$A1:C10] -- Query A1:C10 of a worksheet
SELECT * FROM myname -- Query a workbook scoped defined name
noti che myname
è cartella di lavoro ambito e non foglio di lavoro ambito.
mi sarei aspettato che qualcosa di simile nelle formule di Excel lavora per il nome della tabella ODBC così:
SELECT * FROM worksheet1!myname -- Query a worksheet scoped defined name
Tuttavia, questo non funziona, ho provato alcune variazioni di sintassi di questo.
È possibile e se lo è, qual è la sintassi da utilizzare?
Nota per gli sviluppatori Delphi: la sintassi A1:C10
provoca problemi TADOQuery
, è necessario impostare ParamCheck
-False
in modo che questo funzioni.
Aggiornamento:
Sto utilizzando la versione Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
12.00.6606.1000
che viene fornito con Microsoft Office 2007
.
Ho verificato che i componenti di database di Delphi che sto usando si comportano allo stesso modo di Microsoft Query e Microsoft Access 2007.
Si presume che '[foglio di lavoro1 $ myname]' non funzioni? – eggyal
Hai provato questo solo da Delphi o anche da uno degli altri prodotti MS Office? Ad esempio, MS Access? –
@eggyal Funziona, ma solo nella versione 14 (e più recente) del driver ODBC come ho scoperto per tentativi ed errori. –