Tôi đang cố gắng truy vấn tên được xác định trong phạm vi trang tính với SQL bằng ODBC.Tên bảng cho tên được xác định trong phạm vi trang tính là gì?
tôi đã biết rằng công trình này:
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
Lưu ý rằng myname
là workbook scoped và không bảng scoped.
tôi lại có thể ngờ rằng một cái gì đó giống như trong công thức Excel làm việc cho tên bảng ODBC cũng như:
SELECT * FROM worksheet1!myname -- Query a worksheet scoped defined name
Tuy nhiên điều này không làm việc, tôi đã cố gắng một số biến thể cú pháp về điều này.
Điều này có khả thi không và nếu có, cú pháp sẽ sử dụng là gì?
Lưu ý cho các nhà phát triển Delphi: Cú pháp A1:C10
gây rắc rối trong TADOQuery
, bạn phải thiết lập ParamCheck
-False
theo thứ tự để làm việc này.
Cập nhật:
Tôi đang sử dụng Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)
Version 12.00.6606.1000
mà đi kèm với Microsoft Office 2007
.
Tôi đã kiểm tra rằng các thành phần cơ sở dữ liệu Delphi Tôi đang sử dụng đang hành xử theo cách tương tự như Microsoft Query và Microsoft Access 2007.
Một giả định rằng '[worksheet1 $ myname]' không hoạt động? – eggyal
Bạn đã thử điều này từ Delphi chỉ, hoặc cũng từ một trong các sản phẩm MS Office khác? Ví dụ: MS Access? –
@eggyal Công trình này, nhưng chỉ trong phiên bản 14 (và mới hơn) của trình điều khiển ODBC khi tôi phát hiện ra bằng thử và lỗi. –