• Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    tranthanhan1962 > 06-03-20, 05:29 PM

    (06-03-20, 04:27 PM)toidjtjmtoi Đã viết: Trời anh hiểu nhầm ý em rồi . Em đang hỏi thật mà , em muốn để lên cho nó trực quan thôi 021 . Em ko biết thật chứ có nghĩ gì đâu . Em ko có học bài bản toàn mò google thôi . Nói thật đoạn bên trên anh viết xong em đọc cũng ko hiểu nên mới cần xin anh file mẫu sad

    Ví dụ như code của anh thì sửa như này ạ 

    <?xml version="1.0" encoding="utf-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
      <ribbon startFromScratch="true">
        <tabs>
          <tab id="TabSo1" label="Quản lý Giao diện" visible="true">
            <group id="GroupSo1" label="Form">
              <button id="BT01" imageMso="PictureInsertMenu" <labelControl id="lbl0" label="txttonkho" getVisible="GetVisible" getEnabled="GetEnabled"/>  onAction="OpenForm" />
            </group>
          </tab>
        </tabs>
      </ribbon>
    OK! Sorry! Tôi cũng hiểu nhầm ý của bạn, tưởng bạn muốn đưa giá trị lên ribbon. Còn sử dụng để mở form, report, query thì giống như đoạn mã của bạn. Để dễ dàng soạn thảo XML bạn có thể tải XML Notepad 2007, tôi có giới thiệu ở phần I, ngoài ra bạn có thể dùng công cụ IDBE RibbonCreator để tạo mã XML cho Ribbon một cách trực quan sau đó get XML thành đoạn mã để chuyển vào table UsysRibbons cũng rất dễ dàng. IDBE RibbonCreator có thể chuyển thẳng ribbon vào database nếu bạn trả tiền cho nó, nhưng cũng không cần, chỉ cần tạo text file rồi chỉnh sửa sao đó tự chuyển vào cũng được.
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    toidjtjmtoi > 06-03-20, 08:35 PM

    Anh ơi tình hình là em mò được cách để nó để tên lable theo ý mình rồi nhưng nó chỉ hiển thị lúc mình mở ứng dụng lên
    Ví dụ em muốn lúc đăng nhập lại nó hiển thị tên người đăng nhập thì làm như nào ạ
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    ongke0711 > 07-03-20, 05:04 PM

    (06-03-20, 04:27 PM)toidjtjmtoi Đã viết: Anh ơi tình hình là em mò được cách để nó để tên lable theo ý mình rồi nhưng nó chỉ hiển thị lúc mình mở ứng dụng lên
    Ví dụ em muốn lúc đăng nhập lại nó hiển thị tên người đăng nhập thì làm như nào ạ

    Đã gọi là Ribbon menu thì bạn nên đặt lên đó những gì thuộc menu là tốt nhất. Nếu muốn tuỳ biến hơn nữa theo như ý tưởng thiết kế của bạn thì Ribbon menu vẫn làm được nhưng bạn nên chọn lọc những control gì để hiện trên đó cho hợp lý.
    Về việc hiển thị tên người đăng nhập thì cũng dùng Label và làm giống như bạn đã làm ở trên

    Mã PHP:
    <labelControl id="Username" getLabel="GetLabel" /> 

    Cái Sub GetLabel() như sau: trong đó có hàm GetUsername() bạn thay thế bằng hàm của bạn để lấy tên người đăng nhập.

    Mã PHP:
    Public Sub GetLabel(control As IRibbonControlByRef label)
          
        Select 
    Case control.Id
            
    Case "Username"
                label GetUsername()
        End Select
    End Sub 
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    toidjtjmtoi > 08-03-20, 12:24 AM

    (07-03-20, 05:04 PM)ongke0711 Đã viết:
    (06-03-20, 04:27 PM)toidjtjmtoi Đã viết: Anh ơi tình hình là em mò được cách để nó để tên lable theo ý mình rồi nhưng nó chỉ hiển thị lúc mình mở ứng dụng lên
    Ví dụ em muốn lúc đăng nhập lại nó hiển thị tên người đăng nhập thì làm như nào ạ

    Đã gọi là Ribbon menu thì bạn nên đặt lên đó những gì thuộc menu là tốt nhất. Nếu muốn tuỳ biến hơn nữa theo như ý tưởng thiết kế của bạn thì Ribbon menu vẫn làm được nhưng bạn nên chọn lọc những control gì để hiện trên đó cho hợp lý.
    Về việc hiển thị tên người đăng nhập thì cũng dùng Label và làm giống như bạn đã làm ở trên

    Mã PHP:
    <labelControl id="Username" getLabel="GetLabel" /> 

    Cái Sub GetLabel() như sau: trong đó có hàm GetUsername() bạn thay thế bằng hàm của bạn để lấy tên người đăng nhập.

    Mã PHP:
    Public Sub GetLabel(control As IRibbonControlByRef label)
          
        Select 
    Case control.Id
            
    Case "Username"
                label GetUsername()
        End Select
    End Sub 

    Hic e ngu quá ko làm được  021
    Cho em hỏi 

    Đoạn
    Mã PHP:
    Public Sub GetLabel(control As IRibbonControlByRef label)
          
        Select 
    Case control.Id
            
    Case "Username"
                label GetUsername()
        End Select
    End Sub 

    Đặt ở đâu thì nó lấy tên đăng nhập ạ .
    Em đăng nhập vào nó ko cập nhật tên lên Label
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    toidjtjmtoi > 08-03-20, 12:58 AM

    Em làm theo cái bài này nó hiện tên nhưng mà lúc relogin bằng tài khoản khác nó ko cập nhật 
    https://social.msdn.microsoft.com/Forums...m=exceldev
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    ongke0711 > 08-03-20, 09:26 AM

    Bạn đưa file mẫu lên xử lý cho tiện.

    Sau khi thay đổi Username, bạn chạy lệnh refresh cái Ribbon: myRibbon.InvalidateControl "Username"
    Chú ý là cái đối tượng Ribbon phải khai báo Public.
    Public myRibbon As IRibbonUI

    Hoặc tạo thêm cái sub RefreshRibbon để thực hiện.

    Mã PHP:
    Sub RefreshRibbon()
    On Error GoTo EH
    myRibbon
    .Invalidate
    On Error 
    GoTo 0
    Exit Sub

    EH
    :
      MsgBox "Khoi dong lại Access de viec thay doi có hieu luc"_
        vbCritical
    "Ribbon UI Refresh Failed"

    End Sub 
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    toidjtjmtoi > 08-03-20, 02:33 PM

    (08-03-20, 09:26 AM)ongke0711 Đã viết: Bạn đưa file mẫu lên xử lý cho tiện.

    Sau khi thay đổi Username, bạn chạy lệnh refresh cái Ribbon: myRibbon.InvalidateControl "Username"
    Chú ý là cái đối tượng Ribbon phải khai báo Public.
    Public myRibbon As IRibbonUI

    Hoặc tạo thêm cái sub RefreshRibbon để thực hiện.

    Mã PHP:
    Sub RefreshRibbon()
    On Error GoTo EH
    myRibbon
    .Invalidate
    On Error 
    GoTo 0
    Exit Sub

    EH
    :
      MsgBox "Khoi dong lại Access de viec thay doi có hieu luc"_
        vbCritical
    "Ribbon UI Refresh Failed"

    End Sub 

    https://www.mediafire.com/file/daiiqfe4p...accdb/file

    Anh làm demo giúp em file này nha , em nghịch sao nó lỗi rồi ko biết sửa sad
    MẬt khẩu đăng nhập là 1 nhé a
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    ongke0711 > 09-03-20, 05:14 PM

    (08-03-20, 02:33 PM)toidjtjmtoi Đã viết: https://www.mediafire.com/file/daiiqfe4p...accdb/file

    Anh làm demo giúp em file này nha , em nghịch sao nó lỗi rồi ko biết sửa sad
    MẬt khẩu đăng nhập là 1 nhé a

    Bạn phải tập cách viết một Function, 1 Sub cho tương đối rành đi đã. Tập viết các hàm, Sub đơn giản thôi để phân biệt viết hàm với Sub khác nhau ra sao.
    Đối với cái Ribbbon thì phải có các Sub/Function cho riêng nó để xử lý. Ví dụ như cái Sub GetLabel().
    Dưới đây là code cho module "modRibbonCallBacks. Chỉ tượng trưng vài cái Sub thôi.

    Mã PHP:
    Option Compare Database
    Option Explicit

    Global gobjRibbon As IRibbonUI  'Reference Microsoft Office xx Object Library'
    Public lngDropDownValue As Long


    Public Sub OnRibbonLoad(ribbon As IRibbonUI)
    'Callbackname in XML File "onLoad"'

        Set gobjRibbon ribbon
        gobjRibbon
    .ActivateTab "TabSo2"
    End Sub

    Public Sub OnActionButton(control As IRibbonControl)
    'Callbackname in XML File "onAction"'
        On Error Resume Next
        Select 
    Case control.ID
        
    Case "ThoatUngDung"
            DoCmd.Quit


        End Select
    End Sub

    Public Sub GetLabel(control As IRibbonControlByRef label)
        Select Case control.ID
        
    Case "Username"
            label HamlayTenthat()
        Case "Computername"
            label ComputerName
        
    Case "Ngay"
            label Date
        End Select

    End Sub

    'Open the form that is specified in the ribbon control tag property'
    Public Sub ribOpenForm(control As IRibbonControl)
        DoCmd.OpenForm (control.Tag)
    End Sub


    Public Function ComputerName() As String

        Dim objNetwork 
    As Object
        Set objNetwork 
    CreateObject("WScript.Network")

        ComputerName objNetwork.ComputerName

        Set objNetwork 
    Nothing

    End 
    Function 



    Link demo: http://www.mediafire.com/file/usg80b3l1s...accdb/file
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    toidjtjmtoi > 10-03-20, 09:04 AM

    (09-03-20, 05:14 PM)ongke0711 Đã viết:
    (08-03-20, 02:33 PM)toidjtjmtoi Đã viết: https://www.mediafire.com/file/daiiqfe4p...accdb/file

    Anh làm demo giúp em file này nha , em nghịch sao nó lỗi rồi ko biết sửa sad
    MẬt khẩu đăng nhập là 1 nhé a

    Bạn phải tập cách viết một Function, 1 Sub cho tương đối rành đi đã. Tập viết các hàm, Sub đơn giản thôi để phân biệt viết hàm với Sub khác nhau ra sao.
    Đối với cái Ribbbon thì phải có các Sub/Function cho riêng nó để xử lý. Ví dụ như cái Sub GetLabel().
    Dưới đây là code cho module "modRibbonCallBacks. Chỉ tượng trưng vài cái Sub thôi.

    Mã PHP:
    Option Compare Database
    Option Explicit

    Global gobjRibbon As IRibbonUI  'Reference Microsoft Office xx Object Library'
    Public lngDropDownValue As Long


    Public Sub OnRibbonLoad(ribbon As IRibbonUI)
    'Callbackname in XML File "onLoad"'

        Set gobjRibbon ribbon
        gobjRibbon
    .ActivateTab "TabSo2"
    End Sub

    Public Sub OnActionButton(control As IRibbonControl)
    'Callbackname in XML File "onAction"'
        On Error Resume Next
        Select 
    Case control.ID
        
    Case "ThoatUngDung"
            DoCmd.Quit


        End Select
    End Sub

    Public Sub GetLabel(control As IRibbonControlByRef label)
        Select Case control.ID
        
    Case "Username"
            label HamlayTenthat()
        Case "Computername"
            label ComputerName
        
    Case "Ngay"
            label Date
        End Select

    End Sub

    'Open the form that is specified in the ribbon control tag property'
    Public Sub ribOpenForm(control As IRibbonControl)
        DoCmd.OpenForm (control.Tag)
    End Sub


    Public Function ComputerName() As String

        Dim objNetwork 
    As Object
        Set objNetwork 
    CreateObject("WScript.Network")

        ComputerName objNetwork.ComputerName

        Set objNetwork 
    Nothing

    End 
    Function 



    Link demo: http://www.mediafire.com/file/h7rinbc5r7...accdb/file

    Thanks anh đã giúp ạ , đúng là cái phần này em ko hiểu rõ , đọc thì hiểu hàm viết gì nhưng chưa hiểu liên kết với quy tắc liên kết  . 
    Anh cho em xin lại link với nha , link bên trên em tải không được nó đòi key
    Generating new download key
    We are generating a new download key for this file. Click the button below to continue.
    CONTINUE

    Em ấn vô mà nó ko cho tải
  • RE: Hướng dẫn chi tiết thiết kế Ribbon ứng dụng Access II

    ongke0711 > 10-03-20, 09:43 AM

    (10-03-20, 09:04 AM)toidjtjmtoi Đã viết: Anh cho em xin lại link với nha , link bên trên em tải không được nó đòi key
    Generating new download key
    We are generating a new download key for this file. Click the button below to continue.
    CONTINUE

    Em ấn vô mà nó ko cho tải

    Đã cập nhật lại link.
    Chắc là do mediafire nó chặn IP lại. Có thể do có lỗi truy cập gì đó nên nó nghi nghờ.