Option Compare Database
Option Explicit
Private WithEvents mForm As Form
Private WithEvents mTextbox As Access.TextBox
Private WithEvents mHeader As Access.Section
Private WithEvents mDetail As Access.Section
Public Sub Inicializar(frm As Form)
Set mForm = frm
mForm.MouseWheel = "[Event Procedure]"
Set mHeader = mForm.Section(acHeader)
Set mDetail = mForm.Section(acDetail)
mHeader.OnClick = "[Event Procedure]"
mDetail.OnClick = "[Event Procedure]"
Dim ctrl As Control
For Each ctrl In mForm.Controls
If TypeName(ctrl) = "TextBox" Then
Set mTextbox = ctrl
mTextbox.OnEnter = "[Event Procedure]"
mTextbox.OnExit = "[Event Procedure]"
End If
Next ctrl
End Sub
Private Sub mForm_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)
If mForm.ScrollBars = 0 Then
Dim i As Long
If mForm.ActiveControl.ControlType = acTextBox Then
For i = 1 To Abs(Count)
SendMessage GetFocus, WM_VSCROLL, IIf(Count < 0, SB_LINEUP, SB_LINEDOWN), 0&
Next
End If
End If
End Sub
Private Sub mHeader_Click()
If Not mForm.ScrollBars = 2 Then
mForm.ScrollBars = 2
mForm.RibbonName = "Database"
End If
End Sub
Private Sub mDetail_Click()
If Not mForm.ScrollBars = 2 Then
mForm.ScrollBars = 2
mForm.RibbonName = "Database"
End If
End Sub
Private Sub mTextbox_Enter()
If mTextbox.TextFormat = acTextFormatHTMLRichText Then
mForm.ScrollBars = 0
Dim txt As TextBox
Set txt = Screen.ActiveControl
If txt.TextFormat = acTextFormatHTMLRichText Then
If Not mForm.ActiveControl.Parent.Name = mForm.Name Then
mForm.Parent.RibbonName = "RichText"
End If
mForm.RibbonName = "RichText"
End If
End If
End Sub
Private Sub mTextbox_Exit(Cancel As Integer)
If mTextbox.TextFormat = acTextFormatHTMLRichText Then
mForm.ScrollBars = 0
Dim txt As TextBox
Set txt = Screen.ActiveControl
If txt.TextFormat = acTextFormatHTMLRichText Then
If Not mForm.ActiveControl.Parent.Name = mForm.Name Then
mForm.Parent.RibbonName = "Database"
End If
mForm.RibbonName = "Database"
End If
End If
End Sub