• Thứ Ba, 01/12/2009 09:51 (GMT+7)

    Truy vấn CSDL SQL Server có tham số từ Access

    Câu hỏi :

    1.Xin hướng dẫn tạo chương trình Access để nhập vào họ và tên, chương trình sẽ tìm và hiển thị các trường liên quan như hoten, namsinh, diachi và ghichu của tên cần tìm. 

    2.Xin hướng dẫn truy vấn CSDL SQL Server 2000 có truyền tham số từ Access.
     
     



    Trả lời :
    Trong Access, bạn có thể lập trình bằng ngôn ngữ VBA và dùng các đối tượng ADO của Microsoft để truy xuất thông tin trên cơ sở dữ liệu bất kỳ rất dễ dàng. Trong lúc lập trình, ta thường phải xây dựng các lệnh truy vấn theo nội dung động (do người dùng nhập vào hay do quá trình tình toán tạo ra). Ngôn ngữ VBA (và các ngôn ngữ lập trình khác) cho phép ta thực hiện điều này dễ dàng. Ý tưởng là xây dựng biểu thức để tạo ra chuỗi miêu tả lệnh truy vấn theo nhiều tham số động (nằm trong các biến) rồi dùng chuỗi kết quả làm lệnh truy vấn cơ sở dữ liệu.

     Giả sử bạn đã tạo 1 database có tên là mydatabase, trong database này bạn đã tạo 1 bảng dữ liệu có tên là YourTable gồm nhiều record nhân sự, mỗi record có các field như hoten, namsinh, diachi, ghichu. Sau đây là qui trình điển hình để xây dựng 1 Form Access đơn giản cho phép người dùng nhập vào họ tên rồi chương trình sẽ tìm record có họ tên tương ứng và hiển thị các thông tin về record tìm được lên form:

     1. Chạy Access, mở hay tạo file *.mdb chứa chương trình sắp viết.
     2. Chọn mục Forms trong cửa sổ Object rồi ấn kép chuột vào mục Create form in Design View để tạo 1 Form ứng dụng mới.
     3. Thiết kế Form như hình 1.
     4. Đặt tên cho 4 textbox lần lượt là txtHoten, txtNamSinh, txtDiachi và txtGhichu. Đặt tên cho button là btnSearch.
     5. Nhấn phải chuột trên button rồi chọn mục Build Event để hiển thị cửa sổ Choose Builder. Chọn mục Code Builder rồi Ok để tạo thủ tục xử lý sự kiện click chuột trên button rồi viết code cho nó như sau:
     
     Option Explicit
     Option Compare Database
     'thủ tục xử lý click chuột trên button
     Private Sub btnSearch_Click()
     'khai báo các biến cần dùng
     Dim Connection1 As ADODB.Connection
     Dim rs As ADODB.Recordset
     Dim MyConString As String
     'thiết lập chuỗi ConnectionString chứa các tham số về database
     MyConString = "Provider=SQLNCLI;Server=HIEPCOMP\SQLEXPRESS; Database=mydatabase; Uid=sa;Pwd=luonghoa;Integrated Security=SSPI;"
     'Tạo connection tới database
     Set Connection1 = New ADODB.Connection
     Connection1.Open MyConString
     'tạo 1 đối tượng Recordset
     Set rs = New ADODB.Recordset
     With rs
     Set .ActiveConnection = Connection1
     'thiết lập lệnh truy vấn động theo yêu cầu
     .Source = "SELECT * FROM YourTable where hoten = N'" & txtHoten & "'"
     .LockType = adLockOptimistic
     .CursorType = adOpenKeyset
     .Open
     End With
     'hiển thị kết quả lên các textbox tương ứng
     If Not rs.EOF Then
     txtNamsinh = rs.Fields("Namsinh")
     txtDiachi = rs.Fields("Diachi")
     txtGhichu = rs.Fields("Ghichu")
     End If
     'đóng các đối tượng đã dùng
     rs.Close
     Connection1.Close
     Set rs = Nothing
     Set Connection1 = Nothing
     End Sub
     6. Chọn menu File.Close and Return... để trở về cửa sổ Access. Đóng cửa sổ thiết kế Form lại và đặt tên cho Form là frmSearch. Nhấn đúp chuột vào mục frmSearch để chạy thử Form vừa xây dựng.
     
    Chuyên mục: Lập trình