SQL.REQUEST (Hàm SQL.REQUEST)

Lưu ý:  Chúng tôi muốn cung cấp cho bạn nội dung trợ giúp mới nhất ở chính ngôn ngữ của bạn, nhanh nhất có thể. Trang này được dịch tự động nên có thể chứa các lỗi về ngữ pháp hoặc nội dung không chính xác. Mục đích của chúng tôi là khiến nội dung này trở nên hữu ích với bạn. Vui lòng cho chúng tôi biết ở cuối trang này rằng thông tin có hữu ích với bạn không? Dưới đây là bài viết bằng Tiếng Anh để bạn tham khảo dễ hơn.

Lưu ý: Bài viết này đã hoàn thành nhiệm vụ của mình và sẽ sớm không còn được sử dụng nữa. Để tránh các lỗi "Không tìm thấy trang", chúng tôi đang tiến hành loại bỏ những liên kết mà chúng tôi biết. Nếu bạn đã tạo các liên kết cho trang này, vui lòng loại bỏ chúng và chúng ta sẽ cùng nhau duy trì kết nối cho web.

Bài viết này mô tả cú pháp công thức và cách dùng hàm SQL.REQUEST trong Microsoft Excel.

Quan trọng: 

  • Bắt đầu từ Excel 2010, trải nghiệm Tải & Chuyển đổi (Power Query) cung cấp chức năng nâng cao để nhập dữ liệu từ các nguồn dữ liệu bên ngoài và thay thế hiệu quả hàm SQL.REQUEST.

  • Không hỗ trợ hàm SQL.REQUEST trong các phiên bản sau Microsoft Excel 2007.

  • Một số nội dung trong chủ đề này có thể không áp dụng cho một số ngôn ngữ.

Mô tả

Hàm SQL.REQUEST kết nối với nguồn dữ liệu bên ngoài và chạy truy vấn từ trang tính. Sau đó, hàm trả về kết quả ở dạng mảng mà không cần lập trình macro. Nếu hàm này không khả dụng, bạn phải cài chương trình bổ trợ ODBC của Microsoft Excel (XLODBC.XLA).

Cú pháp

SQL.REQUEST(connection_string,[output_ref],[driver_prompt],[query_text],[col_names_logical])

Cú pháp hàm SQL.REQUEST có các đối số sau đây:

  • Connection_string     Bắt buộc. Cung cấp thông tin, chẳng hạn như tên nguồn dữ liệu, ID người dùng và mật khẩu mà ổ đĩa đang được dùng để kết nối với nguồn dữ liệu yêu cầu và phải tuân theo định dạng của ổ đĩa. Bảng sau đây cung cấp ba chuỗi kết nối mẫu cho ba ổ đĩa.

Ổ đĩa

Connection_string

dBASE

DSN=NWind;PWD=test

Máy chủ SQL

DSN=MyServer;UID=dbayer; PWD=123;Cơ sở Dữ liệu=Pubs

ORACLE

DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame

  • Bạn phải xác định tên nguồn dữ liệu (DSN) được dùng trong connection_string trước khi thử kết nối với nó.

  • Bạn có thể nhập connection_string ở dạng mảng hoặc chuỗi. Nếu connection_string vượt quá 250 ký tự, bạn phải nhập nó ở dạng mảng.

  • Nếu SQL.REQUEST không thể truy nhập được nguồn dữ liệu bằng cách dùng connection_string, nó trả về giá trị lỗi #N/A.

  • Output_ref     Tùy chọn. Tham chiếu ô nơi bạn muốn đặt chuỗi kết nối hoàn chỉnh. Nếu bạn nhập SQL.REQUEST trên trang tính thì output_ref bị bỏ qua.

    • Hãy dùng output_ref khi bạn muốn SQL.REQUEST trả về chuỗi kết nối hoàn chỉnh (bạn phải nhập SQL.REQUEST trên trang tính macro trong trường hợp này).

    • Nếu bạn bỏ qua output_ref, SQL.REQUEST không trả về chuỗi kết nối hoàn chỉnh.

  • Driver_prompt     Tùy chọn. Xác định khi hộp thoại ổ đĩa được hiển thị và tùy chọn nào khả dụng. Hãy dùng một trong các số được mô tả trong bảng sau đây. Nếu driver_prompt bị bỏ qua, SQL.REQUEST dùng 2 làm mặc định.

Driver_prompt

Mô tả

1

Luôn hiển thị hộp thoại ổ đĩa.

2

Chỉ hiển thị hộp thoại ổ đĩa khi thông tin do chuỗi kết nối và đặc tính nguồn dữ liệu cung cấp không đủ để hoàn chỉnh kết nối. Tất cả các tùy chọn hộp thoại đều khả dụng.

3

Chỉ hiển thị hộp thoại ổ đĩa khi thông tin do chuỗi kết nối và đặc tính nguồn dữ liệu cung cấp không đủ để hoàn chỉnh kết nối. Tùy chọn hộp thoại xuất hiện mờ và không khả dụng khi không được yêu cầu.

4

Không hiển thị hộp thoại ổ đĩa. Nếu kết nối không thành công, nó trả về lỗi.

  • Query_text     Tùy chọn. Câu lệnh SQL mà bạn muốn thực hiện đối với nguồn dữ liệu.

    • Nếu SQL.REQUEST không thể thực hiện query_text đối với nguồn dữ liệu đã xác định, nó trả về giá trị lỗi #N/A.

    • Bạn có thể cập nhật truy vấn bằng cách ghép nối các tham chiếu trong query_text. Trong ví dụ sau đây, mỗi khi $A$3 thay đổi, SQL.REQUEST dùng giá trị mới để cập nhật truy vấn.

"SELECT Tên FROM Khách hàng WHERE Số dư > "&$A$3&"".

Microsoft Excel giới hạn độ dài chuỗi ở 255 ký tự. Nếu query_text vượt quá độ dài đó, hãy nhập truy vấn vào phạm vi dọc của các ô và dùng toàn bộ phạm vi đó làm query_text. Giá trị của các ô được ghép nối với nhau để tạo thành câu lệnh SQL hoàn chỉnh.

  • Column_names_logical     Tùy chọn. Cho biết tên cột có được trả về ở hàng kết quả đầu tiên hay không. Hãy đặt đối số này thành TRUE nếu bạn muốn tên cột được trả về ở hàng kết quả đầu tiên. Hãy dùng FALSE nếu bạn không muốn trả về tên cột. Nếu column_names_logical bị bỏ qua, SQL.REQUEST không trả về tên cột.

Giá trị Trả lại

  • Nếu hàm này hoàn thành mọi hành động của mình, nó trả về mảng kết quả truy vấn hay số hàng chịu ảnh hưởng của truy vấn.

  • Nếu SQL.REQUEST không thể truy nhập được nguồn dữ liệu bằng cách dùng connection_string, nó trả về giá trị lỗi #N/A.

Chú thích

  • SQL.REQUEST có thể được nhập như một mảng. Khi bạn nhập SQL.REQUEST như một mảng, nó trả về mảng phù hợp với phạm vi đó.

  • Nếu phạm vi ô lớn hơn bộ kết quả, SQL.REQUEST thêm ô trống vào mảng được trả về để tăng kích cỡ của nó lên kích cỡ cần thiết.

  • Nếu bộ kết quả lớn hơn phạm vi được nhập ở dạng mảng, SQL.REQUEST trả về toàn bộ mảng.

  • Các đối số cho SQL.REQUEST ở thứ tự khác với các đối số cho hàm SQLRequest trong Visual Basic cho Ứng dụng.

Ví dụ

Giả sử bạn muốn tạo truy vấn cơ sở dữ liệu dBASE có tên DBASE4. Khi bạn nhập công thức sau đây vào ô, mảng kết quả truy vấn được trả về với hàng đầu tiên là tên cột:

SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4"; c15; 2; "Chọn ID_Kh; Ngày_Giao từ Đơn hàng WHERE đơn_hàng_Số_lượng>100"; TRUE)

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×