Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Kết quả 1 đến 7 của 7
  1. #1
    Ngày tham gia
    Aug 2015
    Bài viết
    0

    Menu chính của access bị mất.

    Mình sưu tầm được đoạn code trên mạng ẩn thanh tiêu đề cửa sổ, ẩn menu của access nhưng khi mình test xong thì menu chính của access bị ẩn luôn.
    Các bạn giúp mình khôi phục lại menu của access với.

    Option Compare Database
    ' ----------------------------------------------------------------
    ' Lấy độ phân giải màn hình
    Public TwipResW As Double, TwipResH As Double
    Public Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    ' ----------------------------------------------------------------
    ‘Định lại kiểu cửa sổ
    Private Const GWL_EXSTYLE = (-20)
    Private Const GWL_STYLE = (-16)

    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_SYSMENU = &H80000

    Private Const HWND_TOP = 0
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOSIZE = &H1
    Private Const SWP_FRAMECHANGED = &H20
    Private Const SWP_DRAWFRAME = SWP_FRAMECHANGED
    Private Const SWP_SHOWWINDOW = &H40
    Private Const SWP_HIDEWINDOW = &H30

    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, _
    ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, _
    ByVal nIndex As Long) As Long

    Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
    ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    ' -------------------------------------------------------------

    Sub HideAccessAll()
    Dim lngStyle As Long
    ‘Ẩn thanh tiêu đề cửa sổ
    lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
    lngStyle = lngStyle And Not &HBF0000
    Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
    ‘Định lại kích thước Max
    TwipResW = GetSystemMetrics(0)
    TwipResH = GetSystemMetrics(1)
    Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, TwipResW, TwipResH, SWP_DRAWFRAME)
    End Sub
    Sub HideAccessControlBox()
    Dim lngStyle As Long

    lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
    lngStyle = lngStyle And Not WS_SYSMENU
    Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
    End Sub
    Sub UnHideAccessAll()
    Dim lngStyle As Long

    lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
    lngStyle = lngStyle Or WS_SYSMENU
    lngStyle = lngStyle Or WS_MINIMIZEBOX
    lngStyle = lngStyle Or WS_MAXIMIZEBOX
    lngStyle = lngStyle Or &HBF0000
    Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
    Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)
    End Sub

    Private Sub Form_Open(Cancel As Integer)
    DoCmd.RunCommand acCmdAppMaximize
    HideAccessAll
    CommandBars("menu bar").Enabled = False
    CommandBars("database").Enabled = False
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    UnHideAccessAll
    CommandBars("menu bar").Enabled = True
    CommandBars("database").Enabled = True
    End Sub

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    14
    Ðề: Menu chính của access bị mất.




    Trích dẫn Gửi bởi quochoi_05
    Sub UnHideAccessAll()
    Dim lngStyle As Long

    lngStyle = GetWindowLong(hWndAccessApp, GWL_STYLE)
    lngStyle = lngStyle Or WS_SYSMENU
    lngStyle = lngStyle Or WS_MINIMIZEBOX
    lngStyle = lngStyle Or WS_MAXIMIZEBOX
    lngStyle = lngStyle Or &HBF0000
    Call SetWindowLong(hWndAccessApp, GWL_STYLE, lngStyle)
    Call SetWindowPos(hWndAccessApp, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_DRAWFRAME)
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    UnHideAccessAll
    CommandBars("menu bar").Enabled = True
    CommandBars("database").Enabled = True
    End Sub
    Theo bạn thì đoạn code này dùng để làm gì? :xinloinhe:

  3. #3
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Menu chính của access bị mất.




    Trích dẫn Gửi bởi behattieu
    Theo bạn thì đoạn code này dùng để làm gì? :xinloinhe:
    Bác làm khó mình thế!
    mình đã bảo mình sưu tầm được không biết nên nhờ các bác giúp đỡ xem hộ các đoạn code trên có đúng không? sao mà mình test thử mà không được.

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Menu chính của access bị mất.

    Đoạn lệnh mà behattieu hỏi bạn đã làm nhiệm vụ trả lại trạng thái ban đầu của Access cho bạn rồi đấy thôi. Sau khi bạn đóng form thì tất cả những gì bị ẩn trước đó đã được hiện lại. Sau khi đóng form mà Access của bạn không khôi phụ lại được menu thì hãy kiểm tra sự kiện Form_Unload xem đã được kích hoạt chưa nhé

  5. #5
    Ngày tham gia
    Mar 2016
    Bài viết
    15
    Ðề: Menu chính của access bị mất.

    Cám ơn các bạn đã trả lời.
    Mình đã tạo 1 command button để chạy hàm UnhideAccessAll nhưng vẫn không được chắc phải cài lại access thôi.

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Menu chính của access bị mất.

    Vào Tools/Customize... và đánh dấu chọn "Menu bar".

    Hoặc nhấn phải chuột ở chỗ thanh công cụ và chọn Customize...

    Hoặc đóng Access rồi mở lại 1 lần nữa.

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: Menu chính của access bị mất.




    Trích dẫn Gửi bởi muontennguoi
    Vào Tools/Customize... và đánh dấu chọn "Menu bar".

    Hoặc nhấn phải chuột ở chỗ thanh công cụ và chọn Customize...

    Hoặc đóng Access rồi mở lại 1 lần nữa.
    Cám ơn các bạn.
    Mình đã làm được sau 2 ngày mò mẫm.
    Menu bị mất nên không chọn Tools/Customize được.
    Nhấn chuột phải thanh công cụ -> customize ->Toolbars -> Properties -> Selected toolbar -> Menu bar -> Restore defaults

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •