Próbuję wysłać zapytanie do zdefiniowanej nazwy w zakresie arkusza roboczego za pomocą SQL przy użyciu ODBC.Jaka jest nazwa tabeli dla zdefiniowanej nazwy w zakresie arkusza roboczego?
już wiem, że to działa:
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
Zauważ, że myname
skoroszyt jest zawężona i nie arkuszu scoped.
Liczyłam, że coś we wzorach Excel pracuje dla nazwy tabeli ODBC, a także:
SELECT * FROM worksheet1!myname -- Query a worksheet scoped defined name
Jednak to nie działa, próbowałem kilka wersji składni tego.
Czy to możliwe, a jeśli tak, to jakiej składni należy użyć?
Uwaga dla programistów Delphi: Składnia A1:C10
powoduje kłopoty w TADOQuery
, trzeba ustawić ParamCheck
do False
, aby to zadziałało.
Aktualizacja:
Używam Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
Wersja 12.00.6606.1000
że pochodzi z Microsoft Office 2007
.
Sprawdziłem, że składniki bazy danych Delphi Używam zachowują się tak samo jak Microsoft Query i Microsoft Access 2007.
Zakłada się, że '[worksheet1 $ myname]' nie działa? – eggyal
Czy próbowałeś tego z Delphi tylko lub z jednego z innych produktów MS Office? Na przykład MS Access? –
@eggyal To działa, ale tylko w wersji 14 (i nowszej) sterownika ODBC, jak się dowiedziałem metodą prób i błędów. –