Kết nối Excel vào MISA SME 2017

Liên hệ QC

quangnguyentbb

Thành viên mới
Tham gia
17/10/18
Bài viết
21
Được thích
5
Chào các tiền bối,
Em mới tập tọe học VBA và có mong muốn dùng VBA để kết nối vào lấy dữ liệu trên phần mềm MISA SME 2017
Em có copy từ trên google và thay đổi thông tin máy chủ; database; id; pass tuy nhiên khi chạy code lại bị lỗi
Rất mong sự trợ giúp từ các tiền bối.
(Đây là ảnh lỗi)
1539788368664.png
Ảnh cơ sở dữ liệu
1539788873693.png
Mã:
Sub ketnoivoimisa()
     ' Carl SQL Server Connection
     '
     ' FOR THIS CODE TO WORK
     ' In VBE you need to go Tools References and check Microsoft Active X Data Objects 2.x library
     '

    Dim Cn As ADODB.Connection
    Dim Server_Name As String
    Dim Database_Name As String
    Dim User_ID As String
    Dim Password As String
    Dim SQLStr As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    Server_Name = "QUANGNGUYENTBB\MISASME2017"
    Database_Name = "MISASME2017SAMPLE"
    User_ID = "sa" ' enter your user ID here
    Password = "123" ' Enter your password herea
    SQLStr = "SELECT * FROM [MISASME2017Sample].[BankID].[Bank]"
    

    Set Cn = New ADODB.Connection
    Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
    ";Uid=" & User_ID & ";Pwd=" & Password & ";"

    rs.Open SQLStr, Cn, adOpenStatic
     ' Dump to spreadsheet
    With Worksheets("DMNH").Range("a1:z500")
        .ClearContents
        .CopyFromRecordset rs
    End With
     '            Tidy up
    rs.Close
    Set rs = Nothing
    Cn.Close
    Set Cn = Nothing
End Sub
 

File đính kèm

  • Ket noi voi MISA 2.xls
    63 KB · Đọc: 31
Chào các tiền bối,
Em mới tập tọe học VBA và có mong muốn dùng VBA để kết nối vào lấy dữ liệu trên phần mềm MISA SME 2017
Em có copy từ trên google và thay đổi thông tin máy chủ; database; id; pass tuy nhiên khi chạy code lại bị lỗi
Rất mong sự trợ giúp từ các tiền bối.
Đuôi cơ sở dữ liệu là gì vậy bạn. Excel cần biết đuôi file để nhận biết định dạng cơ sở dữ liệu. Chứ cái phần mềm MISA SME 2017 để quản lí cơ sở dữ liệu có liên quan gì đến Excel truy cập cơ sở dữ liệu đâu
Bạn thử dùng Record Macro xem sao:
Chạy Record một macro rồi:
Cách 1. Vào Dữ liệu -> truy vấn mới dữ liệu -> Từ Cở Sở Dữ liệu, Chọn một CSDL phù hợp
Cách 2. Vào Dữ liệu -> Lấy dữ liệu bên ngoài -> TỪ nguồn khác -> Từ Trình Hướng Dẫn Kết Nối Dữ liệu, lựa một trình truy vấn phù hợp
(Hướng dẫn tiếng Anh - Bạn chịu khó dịch 1 tí)
Dừng Record, Vào Macro vừa record: tìm đoạn Driver=*; copy thay thế cho Driver={SQL Server}; trong code của bạn
Có thể là DSN=*; chứ không phải Driver.
Một dạng truy cập: "DSN=MS Access Database;DBQ=D:\......accdb;DefaultDir=D:\....;Drive"
 
Lần chỉnh sửa cuối:
Chắc code này để nối với misa 2012
 
Chào các tiền bối,
Em mới tập tọe học VBA và có mong muốn dùng VBA để kết nối vào lấy dữ liệu trên phần mềm MISA SME 2017
Em có copy từ trên google và thay đổi thông tin máy chủ; database; id; pass tuy nhiên khi chạy code lại bị lỗi
Rất mong sự trợ giúp từ các tiền bối.
(Đây là ảnh lỗi)
View attachment 205887
Ảnh cơ sở dữ liệu
View attachment 205888
Mã:
Sub ketnoivoimisa()
     ' Carl SQL Server Connection
     '
     ' FOR THIS CODE TO WORK
     ' In VBE you need to go Tools References and check Microsoft Active X Data Objects 2.x library
     '

    Dim Cn As ADODB.Connection
    Dim Server_Name As String
    Dim Database_Name As String
    Dim User_ID As String
    Dim Password As String
    Dim SQLStr As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    Server_Name = "QUANGNGUYENTBB\MISASME2017"
    Database_Name = "MISASME2017SAMPLE"
    User_ID = "sa" ' enter your user ID here
    Password = "123" ' Enter your password herea
    SQLStr = "SELECT * FROM [MISASME2017Sample].[BankID].[Bank]"
   

    Set Cn = New ADODB.Connection
    Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
    ";Uid=" & User_ID & ";Pwd=" & Password & ";"

    rs.Open SQLStr, Cn, adOpenStatic
     ' Dump to spreadsheet
    With Worksheets("DMNH").Range("a1:z500")
        .ClearContents
        .CopyFromRecordset rs
    End With
     '            Tidy up
    rs.Close
    Set rs = Nothing
    Cn.Close
    Set Cn = Nothing
End Sub
chỉnh lại
Mã:
 SQLStr = "SELECT * FROM [MISASME2017Sample].[BankID].[Bank]"
Thành
Mã:
 SQLStr = "SELECT * FROM [Bank]"
 
chỉnh lại
Mã:
 SQLStr = "SELECT * FROM [MISASME2017Sample].[BankID].[Bank]"
Thành
Mã:
 SQLStr = "SELECT * FROM [Bank]"
Cảm ơn tiền bối.
Em đã kết nối được dữ liệu rồi ạ :D
Bài đã được tự động gộp:

Đuôi cơ sở dữ liệu là gì vậy bạn. Excel cần biết đuôi file để nhận biết định dạng cơ sở dữ liệu. Chứ cái phần mềm MISA SME 2017 để quản lí cơ sở dữ liệu có liên quan gì đến Excel truy cập cơ sở dữ liệu đâu
Bạn thử dùng Record Macro xem sao:
Chạy Record một macro rồi:
Cách 1. Vào Dữ liệu -> truy vấn mới dữ liệu -> Từ Cở Sở Dữ liệu, Chọn một CSDL phù hợp
Cách 2. Vào Dữ liệu -> Lấy dữ liệu bên ngoài -> TỪ nguồn khác -> Từ Trình Hướng Dẫn Kết Nối Dữ liệu, lựa một trình truy vấn phù hợp
(Hướng dẫn tiếng Anh - Bạn chịu khó dịch 1 tí)
Dừng Record, Vào Macro vừa record: tìm đoạn Driver=*; copy thay thế cho Driver={SQL Server}; trong code của bạn
Có thể là DSN=*; chứ không phải Driver.
Một dạng truy cập: "DSN=MS Access Database;DBQ=D:\......accdb;DefaultDir=D:\....;Drive"
Nó là SQL Server anh ạ. Đoạn code trên có đấy ạ
Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
";Uid=" & User_ID & ";Pwd=" & Password & ";"
Bài đã được tự động gộp:

Chắc code này để nối với misa 2012
Dạ. Chuẩn anh ạ. Em sửa lại file kết nối dữ liệu vào misa 2012 để kết nối với 2017 ạ hihi
 
Web KT
Back
Top Bottom