Kết quả 1 đến 7 của 7

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

  1. #1
    kanhtran Guest

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

    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:


    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

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

    Lê Văn Duyệt

  3. #3
    HSREAL.VN Guest
    Google cái ra ngay ấy mà. Nào là Create DNS ODBC nào là SourceCode, nào là Visual Basic (hoặc System DSN ODBC Selections)
    Ví dụ:
    http://www.databasejournal.com/featu...le.php/2238221
    http://www.thescripts.com/forum/thread545854.html

  4. #4
    thanducha Guest
    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!

  5. #5
    Mrhieuson Guest
    Trích dẫn Gửi bởi levanduyet
    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.

  6. #6
    huyenbeo Guest
    Trích dẫn Gửi bởi ontopoftheworld
    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.
    Bạn tham khảo thread này.
    http://www.giaiphapexcel.com/forum/s...?t=2401&page=5

    Lê Văn Duyệt

  7. #7
    longcheng Guest
    Trích dẫn Gửi bởi levanduyet
    Bạn tham khảo thread này.
    http://www.giaiphapexcel.com/forum/s...?t=2401&page=5

    Lê Văn Duyệt
    Link này bị sao sao ấy em không vào được ! Xem lại dzum nha!

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •