Code lỗi khi chạy trên win 64-bit (2 người xem)

  • Thread starter Thread starter findev
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

findev

Thành viên mới
Tham gia
6/9/09
Bài viết
2
Được thích
0
Em có đoạn code viết trong access 2007 như sau :
Option Compare Database

Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function MessageBoxW Lib "user32" (ByVal hwnd As Long, ByVal lpText As String,
ByVal lpCaption As String, ByVal wType As Long) As Long

Public Function msgBoxOK(ByVal PromptUni As Variant, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal TitleUni As Variant = vbNullString) As VbMsgBoxResult

'BStrMsg, BStrTitle : La chuoi Unicode
Dim BStrMsg, BStrTitle
'Hàm StrConv Chuyen chuoi ve ma Unicode
BStrMsg = StrConv(PromptUni, vbUnicode)
BStrTitle = StrConv(TitleUni, vbUnicode)

msgBoxOK = MessageBoxW(GetActiveWindow, BStrMsg, BStrTitle, Buttons)
End Function

Public Function msgBoxYESNO(ByVal PromptUni As Variant, Optional ByVal Buttons As VbMsgBoxStyle = vbYesNo, Optional ByVal TitleUni As Variant = vbNullString) As VbMsgBoxResult

'BStrMsg, BStrTitle : La chuoi Unicode
Dim BStrMsg, BStrTitle
'Hàm StrConv Chuyen chuoi ve ma Unicode
BStrMsg = StrConv(PromptUni, vbUnicode)
BStrTitle = StrConv(TitleUni, vbUnicode)

msgBoxYESNO = MessageBoxW(GetActiveWindow, BStrMsg, BStrTitle, Buttons)
End Function

Khi chạy trên Win7 32 bit thì không vấn đề gì, nhưng khi chuyển sang máy khác(64bit) thì Compile bị lỗi (Hai hàng bôi đỏ)
Em mới nghiên cứu món này nên không rõ lắm-+*/-+*/, các bác chỉ cho em sửa đoạn code này với,
Mong nhận được sự giúp đỡ của các bác!!!Cảm ơn nhiều!!
 
Em có đoạn code viết trong access 2007 như sau :

Khi chạy trên Win7 32 bit thì không vấn đề gì, nhưng khi chuyển sang máy khác(64bit) thì Compile bị lỗi (Hai hàng bôi đỏ)
Em mới nghiên cứu món này nên không rõ lắm-+*/-+*/, các bác chỉ cho em sửa đoạn code này với,
Mong nhận được sự giúp đỡ của các bác!!!Cảm ơn nhiều!!

Đoạn code trên là hồi tôi viết cho Office 32 bit. Nếu Win64 bit và Office 32 bit thì vẫn chạy bình thường. Còn nếu Office 64 bit thì phải khai báo khác. Sau từ khóa Declare phải thêm SafePtr.
 
Đoạn code trên là hồi tôi viết cho Office 32 bit. Nếu Win64 bit và Office 32 bit thì vẫn chạy bình thường. Còn nếu Office 64 bit thì phải khai báo khác. Sau từ khóa Declare phải thêm SafePtr.
Úi, may quá, gặp đúng thầy đúng thợ, đoạn code này em copy ở đâu cũng chả rõ nữa
Đa tạ thầy Tuân nhiều!

Đoạn code trên là hồi tôi viết cho Office 32 bit. Nếu Win64 bit và Office 32 bit thì vẫn chạy bình thường. Còn nếu Office 64 bit thì phải khai báo khác. Sau từ khóa Declare phải thêm SafePtr.
À mà Thầy Tuấn type nhanh quá nên lẫn, phải là PtrSafe, em check bị lỗi, search mãi hoá ra là cần đảo lại :)
Em cảm ơn!

Anh Tuấn và các bác cho em hỏi thêm tý :
1.Đoạn code sau :
Option Compare Database Sub InputAuditTrail(CurrentModule As String, CurrentAction As String)

Dim rsAudit As Recordset
Set rsAudit = CurrentDb.OpenRecordset("tblAuditTrail", dbOpenTable)
rsAudit.AddNew
rsAudit("Times") = Now()
rsAudit("UserID") = USERID
rsAudit("Username") = USERNAME
rsAudit("ComputerName") = Environ("ComputerName")
rsAudit("module") = CurrentModule
rsAudit("Action") = CurrentAction
rsAudit.Update
rsAudit.Close

End Sub
Function này khi chạy trong office 2003 thì ngon lành, nhưng convert sang 2007 thì khi gọi function này lại không chạy được.

2.Thêm nữa khi em khởi động access thì nó thường hỏi Enable Content, nếu chỉ dùng một máy thì em vào option tích chọn enable macro thì ok, nhưng share cho máy khác dùng thì vẫn bị hỏi, liệu có cách nào để setting một lần, thì share trên server chung cho máy khác sẽ không bị xuất hiện message này nữa không ạ?

Em amatuer, có gì các bác chỉ bảo giúp, em cảm ơn!!!
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom