Nhờ các anh chị hướng dẫn giúp Connection MySQL ODBC

Liên hệ QC
Cái này mạnh biết ... bạn cho Mạnh hỏi chút là:

1/ Có trình điều kiển nào kết nối tới *.accdb Hay *.xlsb qua LAN, Internet hay ko ?! ( Ko cài SQL Server )

2/ Còn nếu cài SQL Server thì Mạnh biết nhưng làm biếng lắm ... không thích cho nên lâu nay đang nghiên cứu Viết Server & Client đó

3/ thấy Bạn nói tới VPN cái này có rắc rối lắm không Mạnh thấy trên Windows 10 có VPN như hình sau là nó hay cái khác

4/ Nói chung có cái gì đó mà kết nối qua LAN, Internet mà không phải Share Full Folder

Thứ nhất: tất cả các kiểu kết nối (tạo VPN, kết nối tới SQL Server, mySQL...) nếu muốn qua Internet đều phải có IP tĩnh hoặc thông qua Dynamic IP để có cái IP "giả tĩnh" + mở cổng Router.
Thứ hai:
1. Trong mạng LAN, nếu không muốn share folder thì bạn cũng tạo một mạng riêng ảo (VPN) tới máy chủ cần lấy dữ liệu rồi, dùng ODBC để kết nối tới file data (Access, Excel).
3. VPN thì Windows đã có hỗ trợ. Như hình của bạn là nó đó. Các bước cần làm là phải tạo một VPN Server là tạo ở cái máy cần lấy dữ liệu. Sau đó các máy khác sẽ tạo 1 kết nối VPN tới máy có VPN Server đã tạo.
- Các hướng dẫn tạo VPN server có nhiều trên mạng, bạn có thể tìm. Link sau cũng được: http://thispc.vn/windows/tao-vpn-server-tren-windows-10.html. Bước này nhiều kỹ thuật nhưng cũng không khó, làm từng bước là ok ngay.
- Từ máy con tạo kết nối VPN đến máy chủ thì dễ hơn nhiều.
Sau khi đã kết nối VPN rồi thì dù ở bên ngoài cty máy bạn vẫn như là đang ở trong mạng LAN. Vậy thôi. Máy tôi cài Windows 7 nên không demo được.:)
 
Thứ nhất: tất cả các kiểu kết nối (tạo VPN, kết nối tới SQL Server, mySQL...) nếu muốn qua Internet đều phải có IP tĩnh hoặc thông qua Dynamic IP để có cái IP "giả tĩnh" + mở cổng Router.
Thứ hai:
1. Trong mạng LAN, nếu không muốn share folder thì bạn cũng tạo một mạng riêng ảo (VPN) tới máy chủ cần lấy dữ liệu rồi, dùng ODBC để kết nối tới file data (Access, Excel).
3. VPN thì Windows đã có hỗ trợ. Như hình của bạn là nó đó. Các bước cần làm là phải tạo một VPN Server là tạo ở cái máy cần lấy dữ liệu. Sau đó các máy khác sẽ tạo 1 kết nối VPN tới máy có VPN Server đã tạo.
- Các hướng dẫn tạo VPN server có nhiều trên mạng, bạn có thể tìm. Link sau cũng được: http://thispc.vn/windows/tao-vpn-server-tren-windows-10.html. Bước này nhiều kỹ thuật nhưng cũng không khó, làm từng bước là ok ngay.
- Từ máy con tạo kết nối VPN đến máy chủ thì dễ hơn nhiều.
Sau khi đã kết nối VPN rồi thì dù ở bên ngoài cty máy bạn vẫn như là đang ở trong mạng LAN. Vậy thôi. Máy tôi cài Windows 7 nên không demo được.:)
Cách tạo VPN Mạnh coi rất nhiều cách tuy nhiên có những cách họ hướng dẫn làm xong là lỗi ko kết nối vào được
Cách sau làm đơn giản mà ok nhất ... Link Video vào đây cho bạn nào cần tới

Mạnh còn chút chưa rõ như sau Mong Bạn chỉ cho

1/ Đã Open Port Modem thành công
2/ Đã Open Port dưới tường lửa Windows thành công
3/ VD: Mạnh có File trong: D:\Manh\Database.accdb
4/ Máy không cài SQL Server ... chỉ sử dụng những cái sẳn có của Windows + Office
5/ Không Share Full Folder
9/ ko sử dụng VPN

Vậy Mạnh muốn hỏi:

1/ Có cách nào truy xuất dữ liệu tới File D:\Manh\Database.accdb (Mục 3) thông Qua IP address LAN , Internet hay không
2/ Nếu có cách kết nối thì chuỗi khai báo kết nối tới file đó chi tiết sao ???!!
3/ Nếu được cho Mạnh xin 1 code VD
....
tại Mạnh đang tìm hiểu các kiểu kết nối để nghiên cứu Viết Server ... qua đây chọn một kiểu nào đó phù hợp nhất , đơn giản nhất thế thôi
 
Lần chỉnh sửa cuối:
Cách tạo VPN Mạnh coi rất nhiều cách tuy nhiên có những cách họ hướng dẫn làm

1/ Đã Open Port Modem thành công
2/ Đã Open Port dưới tường lửa Windows thành công
3/ VD: Mạnh có File trong: D:\Manh\Database.accdb
4/ Máy không cài SQL Server ... chỉ sử dụng những cái sẳn có của Windows + Office
5/ Không Share Full Folder
9/ ko sử dụng VPN

Vậy Mạnh muốn hỏi:

1/ Có cách nào truy xuất dữ liệu tới File D:\Manh\Database.accdb (Mục 3) thông Qua IP address LAN , Internet hay không
2/ Nếu có cách kết nối thì chuỗi khai báo kết nối tới file đó chi tiết sao ???!!
3/ Nếu được cho Mạnh xin 1 code VD
....
tại Mạnh đang tìm hiểu các kiểu kết nối để nghiên cứu Viết Server ... qua đây chọn một kiểu nào đó phù hợp nhất , đơn giản nhất thế thôi

Một ví dụ đơn giản cho cái trường hợp Client/ Server này là:
Cái nơi chứa Data cần kết nối giống như cái nhà vậy. Nếu muốn tới nhà đó và vô trong lấy đồ thì trước hết phải biết cái địa chỉ độc nhất xác định ngôi nhà đó (IP tĩnh), sau đó chủ nhà phải giao chìa khoá hoặc có người ở trong mở ra cho bạn vô. Giao chìa khoá tương tự như cho bạn cái user/pass để đăng nhập vô vậy. Còn có người nhà ở trong mở giống như hacker cài phần mềm gián điệp, mở của hậu :) hoặc cái Winsock server khởi chạy để nghe ngóng có ai gõ cửa (winsock client) thì mở cho vô đó.

Do đó nếu bạn không share folder thì giống như không giao có chìa khoá thì làm sao vô lấy data được? Share folder bạn cũng đâu cần share cho tất cả "Everyone" mà chỉ share cho 1, 2 user bạn chỉ định thôi.
Nếu không muốn share folder thì bạn phải có người bên trong tức phải có ứng dụng nghe ngóng mở của đó là: Winsock server, sql server...
Winsock thì bạn đã làm rồi, còn nếu được share folder thì bạn "Map net work drive" về máy rồi dùng ADO để kết nối:
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=\\server\share\folder\myAccessFile.accdb;

 
Một ví dụ đơn giản cho cái trường hợp Client/ Server này là:
Cái nơi chứa Data cần kết nối giống như cái nhà vậy. Nếu muốn tới nhà đó và vô trong lấy đồ thì trước hết phải biết cái địa chỉ độc nhất xác định ngôi nhà đó (IP tĩnh), sau đó chủ nhà phải giao chìa khoá hoặc có người ở trong mở ra cho bạn vô. Giao chìa khoá tương tự như cho bạn cái user/pass để đăng nhập vô vậy. Còn có người nhà ở trong mở giống như hacker cài phần mềm gián điệp, mở của hậu :) hoặc cái Winsock server khởi chạy để nghe ngóng có ai gõ cửa (winsock client) thì mở cho vô đó.

Do đó nếu bạn không share folder thì giống như không giao có chìa khoá thì làm sao vô lấy data được? Share folder bạn cũng đâu cần share cho tất cả "Everyone" mà chỉ share cho 1, 2 user bạn chỉ định thôi.
Nếu không muốn share folder thì bạn phải có người bên trong tức phải có ứng dụng nghe ngóng mở của đó là: Winsock server, sql server...
Winsock thì bạn đã làm rồi, còn nếu được share folder thì bạn "Map net work drive" về máy rồi dùng ADO để kết nối:
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=\\server\share\folder\myAccessFile.accdb;
Cái này cũng thử và biết rồi ...

Có lẻ chỉ có 2 cách sau:

1/ Cài SQL Server ( không xài cái này )
2/ Viết Server & Client xài phương thức TCP/IP
3/ Có lẻ từng bước nghiên cứu cái Server & Client - phương thức TCP/IP là phù hợp nhất với xu hướng công nghệ

4/ Hoặc từng bước vọc cái Sau xem sao:
https://docs.microsoft.com/en-us/wi...onnecting-to-wmi-remotely-starting-with-vista

hãy thử code sau xem thấy nhiều cái hay đó ... bí mật hệ thống sẻ hé mở trong VBA ( Code Mạnh copy Internet )
Mã:
Sub WMI()
    Dim oWMISrvEx       As Object   'SWbemServicesEx
    Dim oWMIObjSet      As Object   'SWbemServicesObjectSet
    Dim oWMIObjEx       As Object   'SWbemObjectEx
    Dim oWMIProp        As Object   'SWbemProperty
    Dim sWQL            As String   'WQL Statement
    Dim n               As Long     'Generic Counter

    sWQL = "Select * From Win32_NetworkAdapterConfiguration"
    Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
    Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
    For Each oWMIObjEx In oWMIObjSet
        'Put a STOP here then View > Locals Window to see all properties
        If Not IsNull(oWMIObjEx.IPAddress) Then
            Debug.Print "IP:"; oWMIObjEx.IPAddress(0)
            Debug.Print "Host name:"; oWMIObjEx.DNSHostName
            For Each oWMIProp In oWMIObjEx.Properties_
                If IsArray(oWMIProp.value) Then
                    For n = LBound(oWMIProp.value) To UBound(oWMIProp.value)
                        Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.value(n)
                    Next
                Else
                    Debug.Print oWMIProp.Name, oWMIProp.value
                End If
            Next
        End If
    Next
End Sub
 
Lần chỉnh sửa cuối:
Cái này cũng thử và biết rồi ...


4/ Hoặc từng bước vọc cái Sau xem sao:
https://docs.microsoft.com/en-us/wi...onnecting-to-wmi-remotely-starting-with-vista

[/code]

:) tôi nghĩ bạn nên đầu tư vô VB.net hoặc C# luôn đi vì nó có sẳn nhiều công cụ, thư viện mạnh hỗ trợ hơn VBA. Có nhiều công cụ thực hiện việc kết nối client/server nhưng quan trọng công cụ đó nó có thích hợp trong việc xử lý "cơ sở dữ liệu" hay chỉ giao tiếp, truyền tải các gói tin hệ thống, không có các thư viện để xử lý dữ liệu như: .Connect, .Execute, rs.Open, insert, update v.v.. Có những ngôn ngữ đối với nó việc kết nối chỉ là bước cơ bạn, code hết sức đơn giản vì nó đã hỗ trợ, ngược lại có những ngôn ngữ phải dùng các cách phức tạp hơn nhiều để thực hiện cùng một công việc. Nếu để ngâm cứu học hỏi cho biết thì được chứ dùng để phát triển một ứng dụng cụ thể (về CSDL) thì tôi nghĩ nó không hiệu quả cả về khâu phân phối, bảo trì, nâng cấp v.v..
Tôi nghĩ bạn nên ngâm cứu sâu về lập trình windows socket là giải quyết rất tốt bài toán của bạn rồi đó. Nếu muốn ngâm cứu thêm công cụ khác thì dùng Python hay delphi như bạn đã biết. Viết addin cho excel bằng các ngôn ngữ trên và cũng dùng TCP socket để giao tiếp client/ server.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom