Dùng ADO để kết nối Excel và các ứng dụng khác

Liên hệ QC

levanduyet

Hãy để gió cuốn đi.
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,798
Được thích
4,704
Giới tính
Nam
Nói về ADO, nhiều bạn cho rằng nó có gì đâu !
Vâng, ở đây tôi xin giới thiệu các bạn từng bước để chương trình các bạn sẽ ngày càng linh động hơn.
ADO là gì? Các bạn có thể hiểu đây là một kỹ thuật giúp chúng ta kết nối với các cơ sở dữ liệu và chúng ta có thể dùng cùng một câu lệnh để thực hiện cho cùng một mục đích trên các CSDL khác nhau.
Trích từ www.vovisoft.com
Visual Basic 6 cho ta sự lựa chọn về kỹ thuật khi lập trình với database, hoặc là dùng DAO như trong hai bài trước, hoặc là dùng ADO (ActiveX Data Objects).

Sự khác biệt chính giữa ADO và DAO là ADO cho phép ta làm việc với mọi loại nguồn dữ kiện (data sources), không nhất thiết phải là Access database hay ODBC. Nguồn dữ kiện có thể là danh sách các địa chỉ Email, hay một file text string, trong đó mỗi hàng là một record gồm những fields ngăn cách bởi các dấu phẩy (comma separated values).

Nếu trong DAO ta dùng thẳng tên của MSAccess Database thì trong ADO cho ta nối với (connect) một database qua một Connection bằng cách chỉ định một Connection String. Trong Connection String có Database Provider (thí dụ như Jet, ISAM, Oracle, SQLServer..v.v.), tên Database, UserName/Password để logon một database .v.v.. Sau đó ta có thể lấy về (extract) những recordsets, và cập nhật hóa các records bằng cách dùng những lệnh SQL trên các tables hay dùng những stored procedures bên trong database.
Trước khi các bạn muốn làm việc với ADO các bạn phải tham chiếu đến nó trước:
vidu.jpg


Sau đây là đoạn code kết nối, các bạn thử đọc xem có thể hiểu gì không?
Mã:
Public Sub ConnectToDatabase()
Const msMODULE As String = "MainModule"        'Module name
Const sSOURCE As String = "ConnectToDatabase"        ' Sub name
Dim sConnect As String
Dim lAttempt As Long
Dim sSQL As String
    On Error GoTo ErrorHandler
        
    'Kiểm tra xem connection đã được tạo chưa
    If bConnected Then
        MsgBox "The connection has creased!", vbOKOnly, "Notice"
        GoTo ErrorExit
    End If
    'Create the SConnect Path
    sConnect = "DSN=WareHouseDB;UID=admin;PWD=;"

    Set gcnAccess = New ADODB.Connection
    With gcnAccess
        .Mode = adModeReadWrite
        .ConnectionTimeout = 100
        .CursorLocation = adUseClient
        .ConnectionString = sConnect
        .Open
    End With
    bConnected = True
    'Đóng connection
    gcnAccess.Close
ErrorExit:
    Application.Calculation = xlCalculationManual
    Exit Sub

ErrorHandler:

    'Cố gắng kết nối 3 lần trước khi không thực hiện kết nối nữa
    If lAttempt < 3 And gcnAccess.Errors.Count > 0 Then
        If gcnAccess.Errors(0).NativeError = 17 Then
            lAttempt = lAttempt + 1
            Resume
        End If
    End If
    If bCentralErrorHandler(msMODULE, sSOURCE, , False) Then
        Stop
        Resume
    Else
        Resume ErrorExit
    End If

End Sub
Chúng ta sẽ tiếp tục trong phần sau.
Các bạn hãy tìm hiểu xem ADO là gì? ADO có thể giúp được gì cho bạn?
Hay các bạn có thể Google và "ADO", "Tutorial"

Lê Văn Duyệt
 
Tài liệu đọc thêm ADO

Tôi xin upload tài liệu để các bạn đọc thêm.

Lê Văn Duyệt
 

File đính kèm

  • Data Access With ADO.rar
    248.7 KB · Đọc: 1,201
Bài viết của anh Duyệt rất hay và bổ ích.
À mà hình như em thấy việc tạo DSN bằng tay hơi bất tiện cho người sử dụng, cảm phiền bác hướng dẫn luôn anh em cách tạo DSN bằng code.

Thân!
 
levanduyet đã viết:
Vâng được. Tôi sẽ post bài tối nay

Lê Văn Duyệt
Anh Duyệt!
Ngày hôm nay đã thuộc tháng 7 rồi, chưa thấy bài của anh đâu. Em đang quan tâm tới mấy bài về ADO của anh đây.
 
Web KT
Back
Top Bottom