yamakashi2003 > 26-08-20, 07:46 PM
yamakashi2003 > 26-08-20, 10:56 PM
(26-08-20, 07:46 PM)yamakashi2003 Đã viết: Em chào các bác ạ,Ai giúp em với
Thông thường nếu em muốn tạo dòng tin nhắn trên form thì dùng lệnh msgbox
ví dụ: msgbox "ban muon thoat"
thì nó sẽ hiện ra cửa sổ msgbox và không cho chọn vào đối tượng khác (như kiểu thuộc tính popup hay modal ấy ạ) cho đến khi mình tắt cửa sổ msgbox.
Nhưng không hiểu do em chọn nhầm vào thuộc tính nào trên form mà khi hiện hộp thoại msgbox lên vẫn kích được vào form và các đối tượng khác,
nên xảy ra việc quên không tắt msgbox và hiện thêm nhiều cái khác làm treo máy
Nhờ bác nào biết chỉ giúp em bật lại thuộc tính popup/ modal của msgbox với ạ
Em xin cảm ơn
============================
Em đã tìm ra nguyên nhân rồi ạ
Đối với thông báo mà dùng hàm msgbox thì nó sẽ không cho chọn đối tượng khác, phải tắt thông báo đi mới được
Còn đối với thông báo mà em dùng hàm msgboxuni Dlookup ("......") thì sẽ có thể chọn đối tượng khác mà không cần tắt hộp thông báo
nhờ Bác nào biết chỉ giúp em cách sửa hàm msgboxuni (em khai bao trong module như bên dưới) để nó có thể không cho chọn đối tượng khác mỗi khi nó hiện ra, phải tắt nó thì mới có thể chọn đối tượng khác ạ
Em xin cảm ơn
Option Compare Database
#If VBA7 Then
Public Declare PtrSafe Function MessageBoxW Lib "user32" _
(ByVal hwnd As LongPtr, _
ByVal lpText As LongPtr, _
ByVal lpCaption As LongPtr, _
ByVal wType As Long) As Long
#Else
Public Declare Function MessageBoxW Lib "user32" _
(ByVal hwnd As Long, _
ByVal lpText As Long, _
ByVal lpCaption As Long, _
ByVal wType As Long) As Long
#End If
Public Function msgBoxUni(ByVal sMsgUni As String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal sTitleUni As String = vbNullString) As VbMsgBoxResult
msgBoxUni = MessageBoxW(0, StrPtr(sMsgUni), StrPtr(sTitleUni), Buttons)
End Function
ongke0711 > 26-08-20, 11:11 PM
(26-08-20, 07:46 PM)yamakashi2003 Đã viết: ============================
Em đã tìm ra nguyên nhân rồi ạ
Đối với thông báo mà dùng hàm msgbox thì nó sẽ không cho chọn đối tượng khác, phải tắt thông báo đi mới được
Còn đối với thông báo mà em dùng hàm msgboxuni Dlookup ("......") thì sẽ có thể chọn đối tượng khác mà không cần tắt hộp thông báo
nhờ Bác nào biết chỉ giúp em cách sửa hàm msgboxuni (em khai bao trong module như bên dưới) để nó có thể không cho chọn đối tượng khác mỗi khi nó hiện ra, phải tắt nó thì mới có thể chọn đối tượng khác ạ
Option Compare Database
#If VBA7 Then
Private Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr
Private Declare PtrSafe Function MessageBoxW Lib "user32" _
(ByVal hwnd As LongPtr, _
ByVal lpText As LongPtr, _
ByVal lpCaption As LongPtr, _
ByVal wType As Long) As Long
#Else
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function MessageBoxW Lib "user32" _
(ByVal hwnd As Long, _
ByVal lpText As Long, _
ByVal lpCaption As Long, _
ByVal wType As Long) As Long
#End If
Public Function msgBoxUni(ByVal sMsgUni As String, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal sTitleUni As String = vbNullString) As VbMsgBoxResult
msgBoxUni = MessageBoxW(GetActiveWindow, StrPtr(sMsgUni), StrPtr(sTitleUni), Buttons)
End Function
yamakashi2003 > 27-08-20, 12:08 AM
(26-08-20, 11:11 PM)ongke0711 Đã viết:Em cám ơn bác ạ(26-08-20, 07:46 PM)yamakashi2003 Đã viết: ============================
Em đã tìm ra nguyên nhân rồi ạ
Đối với thông báo mà dùng hàm msgbox thì nó sẽ không cho chọn đối tượng khác, phải tắt thông báo đi mới được
Còn đối với thông báo mà em dùng hàm msgboxuni Dlookup ("......") thì sẽ có thể chọn đối tượng khác mà không cần tắt hộp thông báo
nhờ Bác nào biết chỉ giúp em cách sửa hàm msgboxuni (em khai bao trong module như bên dưới) để nó có thể không cho chọn đối tượng khác mỗi khi nó hiện ra, phải tắt nó thì mới có thể chọn đối tượng khác ạ
Hàm này lúc trước tôi sửa lại nhưng quên để ý vụ Windows.
Thêm cái hàm API GetActiveWindows vô là xong.