Lập trình VBA trong Excel kết nối CSDL trong mạng LAN và Internet

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Lập trình kết nối CSDL trong máy tính phần lớn chúng ta quen kết nối tới CSDL nằm tại máy có file chương trình chạy, hoặc trong mạng LAN, ít người biết tới kết nối qua Internet, có thể từ trước chúng ta không có giải pháp nào cho việc này…

Video này tôi hướng dẫn mọi người dùng ADO kết nối tới CSDL Access trong mạng LAN, với các CSDL khác như Excel, Foxpro, SQL Server…. cũng tương tự, chỉ khác phần khai báo ConnectionString. Đây là đoạn video hướng dẫn căn bản và đơn giản tối đa để những người mới học lập trình CSDL có thể thực hành và làm ngay được.

Các CSDL Access, Excel, Foxpro, Paradox,… chỉ có thể chia sẻ qua mạng LAN và có những hạn chế về bảo mật, không thể chia sẻ qua Internet. Trong video này tôi đưa ra một giải pháp mới với Add-in A-Tools cho phép chúng ta kết nối CSDL qua Internet với những loại CSDL mà bình thường không thể làm được.

Hy vọng video giúp ích được nhiều người bước đầu tiếp cận vào lập trinhg CSDL trong Excel và những người đã làm và tìm ra được giải pháp mới cho việc kết nối CSDL qua internet vào Excel.

lSyoR1XFte8, list: PLZi2tdQERHM09nzkoiavJO4pHcED1NmOQ

[B]'Cách làm kết nối CSDL qua LAN bằng ADO[/B]
Sub GetDataFromADO_Recordset()
    Dim cnn As New ADODB.Connection
    Dim RST As ADODB.Recordset
    Dim cFileName As String

cFileName = "\192.168.1.115Access DatabasesExample.mdb"
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cFileName

Set RST = cnn.Execute("select * from dmkh")

Range("A5").CopyFromRecordset RST

RST.Close
    Set RST = Nothing
    cnn.Close
    Set cnn = Nothing
End Sub

Sub ExxecuteCommandWithADO()
    Dim cnn As New Connection
    Dim RST As Recordset
    Dim cFileName As String, X As Long

'Folder "\192.168.1.115Access Databases" is share full
    cFileName = "\192.168.1.115Access DatabasesExample.mdb"
    'Connect to Access database
    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & cFileName

cnn.Execute "DELETE FROM dmkh WHERE MA_KH LIKE 'NEW%'", X
    cnn.Execute "INSERT INTO dmkh (MA_KH,TINH_TP) VALUES ('NEW 102','HN')", X
    Set RST = cnn.Execute("SELECT * FROM dmkh", X)

'Close connection and free memory
    RST.Close
    Set RST = Nothing
    cnn.Close
    Set cnn = Nothing
End Sub

[B]'Cách làm kết nối CSDL qua internet bằng A-Tools[/B]
Sub GetRecordSetFromServer()
    Dim Xnet As New BSNetwork
    Dim cnn As BSConnection
    Dim RST As ADODB.Recordset

If Not Xnet.Connected Then
        If Not Xnet.Connect("bluesofts.dyndns.org", "user") Then Exit Sub
    End If

Set cnn = Xnet.OpenConnection("MDB")   
    Set RST = cnn.ExecSql("SELECT * FROM DMKH")

Range("G6:M1000").ClearContents
    Range("G6").CopyFromRecordset RST

RST.Close
    Set RST = Nothing
    cnn.Close
    Set cnn = Nothing
    Set Xnet = Nothing
End Sub

Sub DoExecuteCommandINSERT()
    Dim Xnet As New BSNetwork
    Dim cnn As BSConnection
    Dim X As Long

If Not ConnectToServer Then Exit Sub
    Set cnn = Xnet.OpenConnection("MDB")

X = cnn.ExecSqlCmd("INSERT INTO dmkh (MA_KH,TINH_TP) VALUES ('NEW 102','HN')")
    MsgBoxW2 "Records affected: " & X, , "INSERT"

cnn.Close   
    Set cnn = Nothing
    Set Xnet = Nothing
End Sub

Ở phút thứ "16:55" soạn thảo code bị nhầm RST.Clone, đúng phải là RST.Close

[URL='https://bluesofts.net/Products/AddIns/A-Tools/Help/atools_Programming.rar']Download tài liệu hướng dẫn và mã nguồn ví dụ trong video

www.giaiphapexcel.com/diendan/threads/l%E1%BA%ADp-tr%C3%ACnh-vba-trong-excel-k%E1%BA%BFt-n%E1%BB%91i-csdl-trong-m%E1%BA%A1ng-lan-v%C3%A0-internet.109032/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm