• Thứ Tư, 07/09/2011 07:59 (GMT+7)

    Lập trình Access đọc CSDL SQL server 2000

    Câu hỏi :

    Tôi lập trình trên Access đọc CSDL SQL server 2000 nhưng không biết cách dùng Query có truyền tham số để truy cập dữ liệu. Xin hướng dẫn.



    Trả lời :

    Hầu hết các hệ quản trị cơ sở dữ liệu hiện nay (FoxPro, Excel, Access, SQL Server, MySQL, Oracle,...) đều cho phép truy xuất cơ sở dữ liệu bằng các lệnh của ngôn ngữ truy vấn SQL. Mỗi câu lệnh truy vấn SQL đều có cú pháp riêng cần phải tuân thủ gồm nhiều thành phần được xếp theo thứ tự nào đó. Thường cú pháp đầy đủ của từng lệnh SQL khá phức tạp vì chứa nhiều thành phần, nhưng chúng thường là nhiệm ý (option). Thí dụ lệnh Select sau cho phép xác định các record trong bảng dsnv mà có họ "Nguyễn":

    Select * from dsnv where hoten like 'Nguyễn%'

    Tuy nhiên tại thời điểm lập trình, người lập trình chưa thể xác định được dữ liệu cần xử lý (thí dụ họ Nguyễn), thông tin này thường được thiết lập động trong 1 biến chuỗi, do đó để chương trình tự động thực hiện 1 lệnh truy vấn SQL nào đó, người lập trình sẽ phải viết code gồm 2 bước:

    1. Đoạn lệnh xây dựng chuỗi miêu tả lệnh SQL từ các thông tin động đang được chứa trong các biến phần mềm.

    2. Đoạn lệnh gởi chuỗi miêu tả lệnh SQL đến server database để nó xử lý dùm.

    Thí dụ đoạn code VB 6.0 sau cho phép xây dựng động lệnh truy vấn SQL và thực thi nó:

    Dim strSQL as String

    'giả sử người dùng nhập họ vào Textbox txtHoten

    '1. xây dựng câu lệnh SQL

    strSQL = "Select * From dsnv where hoten like '" & txtHoten.Text & "%'"

    '2. đoạn lệnh gởi lệnh SQL đ1ên server

    'dùng connection mà Access đang dùng

    Set cn = CurrentProject.AccessConnection

    'tạo 1 đối tượng Recordset

    Set rs = New ADODB.Recordset

    'thiết lập lệnh truy vấn theo yêu cầu

    With rs

    Set .ActiveConnection = cn

    .Source = strSQL

    .LockType = adLockOptimistic

    .CursorType = adOpenKeyset

    .Open

    End With

    '3. xử lý kết quả trong rs
    ...

    Chuyên mục: Cơ sở dữ liệu