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 . 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ẫuOK! 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.
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>
toidjtjmtoi > 06-03-20, 08:35 PM
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 ạ
<labelControl id="Username" getLabel="GetLabel" />
Public Sub GetLabel(control As IRibbonControl, ByRef label)
Select Case control.Id
Case "Username"
label = GetUsername()
End Select
End Sub
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 IRibbonControl, ByRef label)
Select Case control.Id
Case "Username"
label = GetUsername()
End Select
End Sub
Public Sub GetLabel(control As IRibbonControl, ByRef label)
Select Case control.Id
Case "Username"
label = GetUsername()
End Select
End Sub
toidjtjmtoi > 08-03-20, 12:58 AM
ongke0711 > 08-03-20, 09:26 AM
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
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
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
MẬt khẩu đăng nhập là 1 nhé a
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 IRibbonControl, ByRef 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
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
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 IRibbonControl, ByRef 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
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