Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Trình duyệt của bạn không được hỗ trợ

Bạn cần cập nhật trình duyệt của mình để sử dụng trang web.

Cập nhật lên Internet Explorer phiên bản mới nhất.

Làm thế nào để sử dụng ký tự đại diện trong một hình thức InfoPath truy vấn khi ràng buộc để một nguồn dữ liệu ADO

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:826992
TÓM TẮT
Microsoft Office InfoPath làm ràng buộc để Microsoft SQL Server hay Microsoft Access đơn giản. InfoPath có thể tự động tạo ra bảng đơn giản, trực tiếp truy vấn tới một cơ sở dữ liệu SQL hoặc một cơ sở dữ liệu truy cập bằng cách sử dụng Microsoft ActiveX Data Objects (ADO). Sau đó, InfoPath cho phép các kết quả của các truy vấn được hiển thị và sửa trong các hình thức.

Làm cho các truy vấn nâng cao hơn, InfoPath cho một số phương pháp lập trình có sẵn cho người dùng nâng cao hoặc các nhà phát triển. Những phương pháp lập trình cho phép người dùng nâng cao hoặc các nhà phát triển để xây dựng các hình thức có thể thực hiện một truy vấn tùy chỉnh mà sử dụng cú pháp SQL phức tạp hơn. Một ví dụ về một truy vấn tùy chỉnh thường sử dụng một nhân vật ký tự đại diện để tìm thấy hồ sơ phần khớp với tiêu chí cụ thể.

Các bước sau đây cho thấy làm thế nào để sử dụng quản lý mã trong InfoPath để thực hiện một tìm kiếm nhân vật ký tự đại diện trong một bảng SQL hoặc trong một bảng truy cập bằng cách sử dụng các ADOAdapter đối tượng.
THÔNG TIN THÊM
InfoPath cho phép bạn đúc một kết nối dữ liệu truy vấn như là mộtAdoQueryConnection đối tượng. Điều này sẽ cho bạn phương pháp để lấy và đặt thông tin về các mục sau đây:
  • Kết nối chuỗi
  • Văn bản lệnh SQL
  • Giá trị lỗi quá thời gian
Bằng cách sử dụng các AdoQueryConnectionđối tượng, bạn có thể thay đổi một lệnh SQL để thực hiện các hoạt động phức tạp hơn, chẳng hạn như một truy vấn sử dụng ký tự đại diện.

Thông tin trong bài viết này áp dụng cho cơ sở dữ liệu SQL và cơ sở dữ liệu truy cập. Các ví dụ sau sử dụng cơ sở dữ liệu Northwind được bao gồm với Microsoft Office Access 2007 và Microsoft Office Access 2010.

Tạo cơ sở dữ liệu

Nếu bạn đã không được dùng cơ sở dữ liệu mẫu Northwind từ phiên bản của InfoPath bạn, tạo cơ sở dữ liệu tại địa phương. Để thực hiện việc này, hãy làm theo những bước sau:

  1. Bắt đầu truy cập Microsoft Office.
  2. Trong cácSẵn mẫumục, chọnMẫu mẫu.
  3. Chọn các Northwind cơ sở dữ liệu, và sau đó nhấp vàoTạo.

Thiết kế một hình thức truy vấn cơ sở dữ liệu

Phần này mô tả cách thiết kế một hình thức truy vấn trong InfoPath. Ví dụ này sử dụng các nhà cung cấp bảng từ cơ sở dữ liệu Northwind. Để xây dựng một hình thức truy vấn bảng này, làm theo các bước được cung cấp cho các phiên bản của InfoPath.

InfoPath 2010

Tạo mẫu hình thức, và sau đó thiết lập ngôn ngữ mã tiêu bản mẫu để C#. Để thực hiện việc này, hãy làm theo những bước sau:
  1. Bắt đầu InfoPath Designer 2010.
  2. Trong cácNâng cao mẫu Templatesmục, chọnCơ sở dữ liệu, sau đó bấm Thiết kế mẫu.
  3. Trong thuật sĩ kết nối dữ liệu, bấm Chọn cơ sở dữ liệu.
  4. Xác định thư mục mà bạn lưu cơ sở dữ liệu Northwind, chọn tập tin Northwind.accdb và sau đó nhấp vào Mở.
  5. Trong các Chọn bảng cửa sổ, di chuyển đến dưới cùng của danh sách, chọn các Các nhà cung cấp bảng, và sau đó nhấp vào Ok.
  6. Đảm bảo rằng chỉ có các lĩnh vực sau đây đã được chọn trong các Các nhà cung cấp bảng:
    • ID
    • Công ty
    • Last_Name
    • First_Name
    • Job_Title
    • Business_Phone
  7. Nhấp vào Tiếp theo.
  8. Nhấp vào Kết thúchoàn thành thuật sĩ kết nối dữ liệu.
  9. Trong các Các lĩnh vựccửa sổ, mở rộng cácdataFieldsnút, và sau đó kéo các tiện íchd:suppliersnút hộp dưới cácChạy truy vấnnút.
  10. Khi bạn được nhắc, bấm vào để chọn Lặp đi lặp lại bảng.
  11. Trong cácCác lĩnh vựccửa sổ, mở rộng cácqueryFieldsnút, và sau đó kéo các tiện íchq: nhà cung cấp nút hộp dưới cácKỷ lụcnút. (Điều này sẽ tự động thêm một phần đó có điều khiển.)
  12. Theo cácNhà phát triểntab, bấm vàoNgôn ngữ.
  13. Trong cácNgôn ngữ lập trìnhAdran, dướiDạng mẫu mã ngôn ngữ, chọn C#, sau đó bấmOk.

InfoPath 2007

Tạo mẫu hình thức. Để thực hiện việc này, hãy làm theo những bước sau:
  1. Khởi động InfoPath 2007.
  2. Trong ngăn dẫn hướng của cácĐiền vào một mẫu hộp thoại hộp, bấm vào Thiết kế một mẫu hình thức.
  3. Trong các Thiết kế một mẫu hình thức cửa sổ, Nhấp vào Trống, sau đó bấm Ok.
  4. Trên các Công cụ trình đơn, nhấp vào Dữ liệu Kết nối, sau đó bấm Thêm. Các Dữ liệu Kết nối cửa sổ mở ra.
  5. Trong các Kết nối dữ liệu cửa sổ, nhấn vào đây để chọn các Tạo kết nối mới tới hộp kiểm tra, nhấn vào đây để chọn các Nhận dữ liệu kiểm tra hộp và bấmTiếp theo.
  6. Nhấn vào đây để chọn các Cơ sở dữ liệu (Microsoft SQL Server hoặc Microsoft Office Access chỉ) kiểm tra hộp và bấmTiếp theo.
  7. Nhấp vào Chọn cơ sở dữ liệu.
  8. Xác định thư mục mà bạn lưu cơ sở dữ liệu Northwind, chọn thư mục và sau đó nhấp vào Mở.
  9. Trong các Chọn bảnghộp thoại, di chuyển đến dưới cùng của danh sách, chọn cácCác nhà cung cấpbảng, và sau đó nhấp vàoOk.
  10. Trong các Cấu trúc dữ liệu nguồndanh sách, hãy chắc chắn rằng chỉ các tiêu đề cột sau đây đã được chọn:
    • ID
    • Công ty
    • First_Name
    • Last_Name
    • Job_Title
    • Business_Phone
  11. Nhấp vàoTiếp theo.
  12. Nhấp vào Thiết kế dữ liệu Xem trước, và sau đó Nhấp vào Kết thúc để thoát khỏi thuật sĩ thiết lập nguồn dữ liệu và xây dựng các hình thức mặc định.
  13. Trong các Nguồn dữ liệu nhiệm vụ ngăn, bấm đúp vàodataFields.
  14. Di chuyển các d:suppliers nút để các Dữ liệu xem biểu mẫu.
  15. Khi bạn được nhắc, thêm d:suppliers như một Lặp đi lặp lại bảng.
  16. Trên các Xem trình đơn, nhấp vào Quản lý Chế độ xem.
  17. Trong các Chế độ xem nhiệm vụ ngăn, bấm vào cácTruy vấn xem.
  18. Trên các Công cụ trình đơn, nhấp vào Hình thức tùy chọn.
  19. Trong các Thể loại danh sách, bấm vào Lập trình.
  20. Trong các Dạng mẫu mã ngôn ngữ hộp, bấm vào C#, sau đó bấm Ok.

Thay đổi hình thức để chạy một truy vấn tùy chỉnh

Phần này mô tả làm thế nào để tìm kiếm các hồ sơ có giá trị mà giống với chuỗi tìm kiếm của bạn nhưng không phù hợp với chuỗi chính xác. Để tìm kiếm các hồ sơ có giá trị tương tự, bạn có thể sử dụng một chuỗi ký tự ký tự đại diện và cácGIỐNG NHƯtuyên bố trong một truy vấn SQL. Khi ký tự đại diện kyù töï keát hôïp chuỗi và cácGIỐNG NHƯtuyên bố được sử dụng với nhau, họ có thể tìm thấy hồ sơ dựa trên các tiêu chí tìm kiếm nhân vật ký tự đại diện. Những hồ sơ này sau đó quay trở lại InfoPath.

Để thay đổi hình thức để chạy một truy vấn riêng của cácTiêu đề công việctrường trong InfoPath 2010 hoặc trong InfoPath 2007, hãy làm theo các bước sau:

  1. Trong chế độ thiết kế, bấm chuột phải vào các Chạy truy vấn nút, và sau đó nhấp vào Thuộc tính nút.
  2. Thực hiện những thay đổi sau:
    • Thay đổi các Hành động nút đểQuy tắc và tuỳ chỉnh mã
    • Thay đổi các Nhãn hiệuđểChạy truy vấn
    • Thay đổi các IDđểbtnQuery
  3. Bấm vào các Chỉnh sửa hình thức mã nút để áp dụng những thay đổi, và sau đó bắt đầu sử dụng các công cụ phòng thu trực quan cho các ứng dụng trình soạn thảo. Nó sẽ mở ra các btnQuery "Clicked" sự kiện xử lý.
  4. Thay thế các bình luận "/ / viết mã của bạn ở đây" với đoạn mã sau:
    //Create an XPathNavigator object for the main data sourceXPathNavigator xnMain = this.MainDataSource.CreateNavigator(); //Create an AdoQueryConnection from the main data source by "casting" the default//data connection to an "AdoQueryConnection"AdoQueryConnection cn = (AdoQueryConnection)this.DataConnections["Main connection"]; //Obtain the default SQL command for the form.string strOrigSQLCommand = cn.Command.ToString();   // Obtain the query node that you want to change.XPathNavigator xnSuppliersQuery = xnMain.SelectSingleNode("/dfs:myFields/dfs:queryFields/q:Suppliers", this.NamespaceManager); //Obtain the text that was entered for the wildcard character search, and then clear the current query parameter so that InfoPath will leave the current query parameter blank.string strJobTitle = xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(string.Empty); //Have InfoPath construct an SQL command that is based on all other field values.string strMySQLCommand = cn.BuildSqlFromXmlNodes(xnSuppliersQuery); //Save the other query items, and then clear the other query items before the next query.string strSupplierID = xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(string.Empty);string strCompany = xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(string.Empty);string strLastName = xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(string.Empty);string strFirstName = xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(string.Empty);string strBusPhone = xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).Value;xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(string.Empty); //Add Job_Title to the query so that Job_Title can support wildcard characters.if (strJobTitle != string.Empty){       if (strMySQLCommand != string.Empty)              strMySQLCommand += " AND ";        //Check whether the user entered the wildcard character (%) as part of the title.if(strJobTitle.Contains("%"))             strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "'";       else             strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "%'";               } //Construct the full query string.string strSQLQuery = strOrigSQLCommand;if (strMySQLCommand != string.Empty)strSQLQuery += " WHERE " + strMySQLCommand; //Set the command and run the query.cn.Command = strSQLQuery;cn.Execute(); //Restore all the user entries to the Query fields so that the user entries will //be available if you want to change and to rerun the query.xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(strSupplierID);xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(strCompany);xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(strLastName);xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(strFirstName);xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(strJobTitle);xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(strBusPhone); //Restore the default table command (for the next time).cn.Command = strOrigSQLCommand; //Clean upxnMain = null;cn = null;xnSuppliersQuery = null;
  5. Xây dựng dự án bằng cách bấm vào các Xây dựngmục trình đơn và sau đó nhấp vào Xây dựngtên dự án.
  6. Lưu các thay đổi, và sau đó trở về InfoPath.

Kiểm tra mã

Mẫu mã được cung cấp trong các thủ tục trước đó cho phép bạn thực hiện tìm kiếm nhân vật ký tự đại diện của cácTiêu đề công việc trường trong các Các nhà cung cấp bảng. Bằng cách cung cấp một truy vấn tìm kiếm như Bán hàng %, tất cả hồ sơ trả lại sẽ có địa chỉ liên lạc trong một vị trí bán hàng. Những địa chỉ liên lạc có thể là một đại diện, một người quản lý hoặc một tác nhân miễn là hồ sơ của họ đáp ứng các tiêu chí tìm kiếm củaBán hàng %. Địa chỉ liên lạc mà không có "Bán hàng" trong Tiêu đề công việc trường được lọc.


Kiểm chứng rằng tất cả hồ sơ trả lại có địa chỉ liên lạc ở một vị trí bán hàng, hãy làm theo các bước sau:
  1. Cho InfoPath 2010:Trên cácTrang chủtab trên Ribbon, nhấp vàoXem trước.
    Cho InfoPath 2007:Trên thanh công cụ, nhấp Xem trước, sau đó bấmHình thức.
  2. Trong các Tiêu đề công việc truy vấn trường, loại Bán hàng %.
  3. Nhấp vào Chạy truy vấn.

Các hồ sơ được trả về bởi tuỳ chỉnh truy vấn của bạn là tất cả các địa chỉ liên lạc ở một vị trí bán hàng.

IP2007, IP2010

Cảnh báo: Bài viết này đã được dịch tự động

Thuộc tính

ID Bài viết: 826992 - Xem lại Lần cuối: 08/29/2011 08:28:00 - Bản sửa đổi: 2.0

  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
  • kbhowto kbmt KB826992 KbMtvi
Phản hồi
l = ""; document.write(" osoft.com/ms.js'><\/script>");