扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Option Explicit Dim LastRecNum As Integer '记录组合框内容改变时记录的位置 Private Sub cbl退休种类显示_LostFocus() '更新记录值 Dim CurRecNum '当前记录号 With Data1.Recordset CurRecNum = .AbsolutePosition + 1 .MoveFirst .Move LastRecNum - 1 .Edit .Fields(1) = frmPick.cbl'退休种类显示 .Update '记录位置还原 .Move CurRecNum - LastRecNum End With End Sub |
Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer) DisPlayComboBox End Sub Private Sub DBGrid1_ColResize(ByVal ColIndex As Integer, Cancel As Integer) DisPlayComboBox End Sub Private Sub DBGrid1_Scroll(Cancel As Integer) Cancel = False '组合框消失 DoEvents frmPick.cbl退休种类显示.Visible = False End Sub |
Sub DisPlayComboBox() '符合条件时对组合框等应做的操作。为过程为文章的关键所在。 '当前记录所在位置 LastRecNum = Data1.Recordset.AbsolutePosition + 1 'frmPick.Caption = Data1.Recordset.Fields(1).Value With frmPick.cbl退休种类显示 '当光标或鼠标位于"退休种类"列时, If DBGrid1.Col = 1 Then '组合框出现且拥有焦点; .Visible = True .SetFocus If DBGrid1.Columns(1) = "" Then .Text = .List(0) Else .Text = DBGrid1.Columns(1) End If 'cbl退休种类显示出现的位置 '左: Dim RecordTitleWidth '记录头的宽度 RecordTitleWidth = 280 '该值不知怎获取,本处系逐步调整; .Left = RecordTitleWidth + DBGrid1.Left + GetLeftColPos Dim ColHeadHeight '列头的高度 ColHeadHeight = 220 '该值仍不知怎获取,本处系逐步调整; .Top = DBGrid1.Top + DBGrid1.Row * DBGrid1.RowHeight + ColHeadHeight .Width = DBGrid1.Columns(1).Width End If '当光标不在PickList 列时 If DBGrid1.Col <> 1 Then .Visible = False End If End With End Sub |
Function GetLeftColPos() 'DBgrid1控件中最左边可见列距实现PickList列的位置 Dim i i = DBGrid1.LeftCol GetLeftColPos = 0 If i < 1 Then Do While i < 1 '该处1的列系实现PickList的列 GetLeftColPos = GetLeftColPos + DBGrid1.Columns(i).Width i = i + 1 Loop End If If i > 1 Then Do While i > 1 '该处1的列系实现PickList的列 GetLeftColPos = GetLeftColPos - DBGrid1.Columns(i).Width i = i - 1 Loop End If End Function |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者