Tôi đang nâng cấp dự án trong Office 64 bit. Tuy nhiên có 1 vấn đề là khi chạy chương trình luôn nhận được thông báo lỗi FM20.dll dù đã thử bản Office 2016, 2019 (đã update). Chương trình sử dụng control trong FM20.dll đó. Đương nhiên là fix xong thì chạy bình thường. Lỗi này xảy ra từ lâu nhưng Microsoft không sửa thì phải??? Với Office 32 bit thì không xảy ra tình trạng này.
bạn hỏi kiểu đó kiêu tôi đoán à ... cái đó do bạn khai báo sử dụng
Còn cách khai báo thì tôi chỉ rôi ... code bài trên có 1 chỗ tôi copy khai báo sai ... nếu để y trang thì chạy ok còn sub khác là sai
Úp hết code bạn viết lên tôi làm mẫu cho mỗi thứ 1 cái
Option Explicit
Rem ========== Luu Y su dung
Rem 1/ Tools\References\Browse..\VBLibraryLoad.exe ==> Su dung Cho RPC As New VBLibraryLoad.cCOM
Rem ==========
Public RPC As New VBLibraryLoad.cCOM
Public LoadCOM As Object, test As Long
Rem ========== Su dung Cho Function
Public Function GetExcelConnection(ByVal Path As String)
Set LoadCOM = RPC.NewInstance("dllvb6.clsMain")
Set GetExcelConnection = LoadCOM.ConnectDataName(Path)
If Not LoadCOM Is Nothing Then Set LoadCOM = Nothing
End Function
Rem ========== Su dung Cho Sub
Public Sub GetData(StrPath, DataRange, Des())
Set LoadCOM = RPC.NewInstance("dllvb6.clsMain")
Call LoadCOM.GetData(StrPath, DataRange, Des())
If Not LoadCOM Is Nothing Then Set LoadCOM = Nothing
End Sub
Option Explicit
Rem ========== Luu Y su dung
Rem 1/ Tools\References\Browse..\VBLibraryLoad.exe ==> Su dung Cho RPC As New VBLibraryLoad.cCOM
Rem ==========
Public RPC As New VBLibraryLoad.cCOM
Public LoadCOM As Object, test As Long
Rem ========== Su dung Cho Function
[CODE]Public Function GetExcelConnection(ByVal Path As String)
Set LoadCOM = RPC.NewInstance("dllvb6.clsMain")
Set GetExcelConnection = LoadCOM.ConnectDataName(Path)
If Not LoadCOM Is Nothing Then Set LoadCOM = Nothing
End Function
Rem ========== Su dung Cho Sub
Public Sub GetData(StrPath, DataRange, Des())
Set LoadCOM = RPC.NewInstance("dllvb6.clsMain")
Call LoadCOM.GetData(StrPath, DataRange, Des())
If Not LoadCOM Is Nothing Then Set LoadCOM = Nothing
End Sub
[/CODE]
code này cái Hàm tôi khai báo do copy sai ... còn cái Sub là đúng ... vấn đề bạn hỏi cái gì trong code đó
Hàm khai báo sai là:
Mã:
Public Function GetExcelConnection(ByVal Path As String)
Set LoadCOM = RPC.NewInstance("dllvb6.clsMain")
Set GetExcelConnection = LoadCOM.ConnectDataName(Path)
If Not LoadCOM Is Nothing Then Set LoadCOM = Nothing
End Function
Khai báo lại cho đúng là
Mã:
Public Function GetExcelConnection(ByVal Path As String)
Set LoadCOM = RPC.NewInstance("dllvb6.clsMain")
Set GetExcelConnection = LoadCOM.GetExcelConnection (Path)
If Not LoadCOM Is Nothing Then Set LoadCOM = Nothing
End Function
1/ đăng Ký File DLL VB6
2/ đăng Ký File Load đó
3/ Từ VBE check File load đó
4/ Lưu ý mọi trường hợp thay đổi đường dẫn của 2 Files trên phải làm lại từ mục số 1 to 3
1/ đăng Ký File DLL VB6
2/ đăng Ký File Load đó
3/ Từ VBE check File load đó
4/ Lưu ý mọi trường hợp thay đổi đường dẫn của 2 Files trên phải làm lại từ mục số 1 to 3
1/ ban đầu keo lỗi ADODB ... cài xong hết lỗi đó
2/ xong keo lỗi sub màu vàng ... lỗi đó là chưa biết khai báo theo chỉ dẫn
3/ tôi chịu cách bạn hỏi kiểu lấp lửng ko ra ngô ra khoai thì chỉ có đoán thôi
1/ ban đầu keo lỗi ADODB ... cài xong hết lỗi đó
2/ xong keo lỗi sub màu vàng ... lỗi đó là chưa biết khai báo theo chỉ dẫn
3/ tôi chịu cách bạn hỏi kiểu lấp lửng ko ra ngô ra khoai thì chỉ có đoán thôi
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit.
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit. Dù đã add reference nó cũng không chạy. xem code mẫu trong File
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit. Dù đã add reference nó cũng không chạy. xem code mẫu trong File
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit. Dù đã add reference nó cũng không chạy. xem code mẫu trong File
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit.
Bài đã được tự động gộp:
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit. Dù đã add reference nó cũng không chạy. xem code mẫu trong File
Bài đã được tự động gộp:
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit. Dù đã add reference nó cũng không chạy. xem code mẫu trong File
Bài đã được tự động gộp:
Mình làm như bạn hướng dẫn trên 32 bit ko vấn đề nhưng 64 bit là bị lỗi mình có làm thử một dll đơn giản chỉ một hàm msgbox vẫn bị lỗi trên 64 bit. Có thể lỗi đăng kí exe ko thành công trên 64 bit. Dù đã add reference nó cũng không chạy. xem code mẫu trong File
Mạnh lang thang trên Google tìm tài liệu viết cái Server xài ( Database.accdb ) trên VB6 vô tình thấy Internet nó keo VB6 có thể viết cho Sub + Function cho Officex32 và Officex64 chạy tốt lỡ quậy rồi thì chơi tiếp .... Úp lên đây nhờ các Bạn test dùm trên Officex32 và Officex64 xem nó có chạy...
Như bài số 57 tôi có nói .... thì hôm nay gió đông nam nó thổi lên từ phía biển đông .... xin mời qua link sau nếu ai quan tâm thử chút ... xem như thế nào thui
đang rảnh + né covi Tôi hướng dẫn cho ai đó nếu đam mê VB6 Viết Hàm API 32 bit trên VB6 1/ chép Code sau vào 1 Module trên EXE của VB6 Public Declare Function SetDllDirectoryW Lib "kernel32" (ByVal pszPath As Long) As Long Public Declare Function ShowMsgBox Lib "DLLVB6.dll" (ByVal bstrMsg As...