作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我环顾四周,发现了一些关于如何从字段的“描述”框中获取描述的 VBA 代码,但没有找到如何在表单属性中使用它的方法。
我希望出现一个 ControlTip,其中包含从数据库中的描述中带来的该字段的描述,而不必重写所有描述;我希望有一段可以添加到所有控制提示的复制粘贴代码?
类似的东西(但显然不是)
ControlTipText: Me.ThisControl.ThisControlFieldDescription
description = Forms("frmTrials").Controls("txtBox").StatusBarText
MsgBox description
description = Forms(Me).Controls(Me.ActiveControl).StatusBarText
最佳答案
据我了解情况,您想设置 ControlTipText
每次表单加载时动态属性。由于您在评论中指出此应用程序适用于平板设备,因此您可能更愿意在打开表单时限制处理器负载。你可以通过保存 ControlTipText
来做到这一点。属性与表单的设计。
使用您的表单名称尝试以下过程,如下所示:
SetControlTipText "YourFormName"
ControlTipText
用于复选框、组合、列表框和文本框。改第一个
Case
行以针对一组不同的控件。
Public Sub SetControlTipText(ByVal pFormName As String)
Dim ctl As Control
Dim db As DAO.Database
Dim frm As Form
Dim rs As DAO.Recordset
DoCmd.OpenForm pFormName, acDesign
Set frm = Forms(pFormName)
If Len(frm.RecordSource) > 0 Then
Set db = CurrentDb
Set rs = db.OpenRecordset(frm.RecordSource)
For Each ctl In frm.Controls
Select Case ctl.ControlType
Case acCheckBox, acComboBox, acListBox, acTextBox
If Len(ctl.ControlSource) > 0 _
And Not ctl.ControlSource Like "=*" Then
ctl.ControlTipText = _
GetDescription(rs.Fields(ctl.ControlSource))
End If
Case Else
' pass '
End Select
Next ctl
rs.Close
End If
Set ctl = Nothing
Set rs = Nothing
Set db = Nothing
Set frm = Nothing
DoCmd.Close acForm, pFormName, acSaveYes
End Sub
SetControlTipText
调用这个函数:
Public Function GetDescription(ByRef pObject As Object) As String
Dim strReturn As String
On Error GoTo ErrorHandler
strReturn = pObject.Properties("Description")
ExitHere:
GetDescription = strReturn
On Error GoTo 0
Exit Function
ErrorHandler:
strReturn = vbNullString ' make it explicit '
GoTo ExitHere
End Function
SetControlTipText
过程忽略未绑定(bind)的表单。如果绑定(bind)字段的控制源没有
Description
已分配的属性(property),其
ControlTipText
将设置为空字符串。
Description
任何表单的记录源字段的属性,您可以重新运行
SetControlTipText
更新
ControlTipText
的。
Dim frm As Object
For Each frm in CurrentProject.AllForms
SetControlTipText frm.Name
Next frm
关于ms-access - 表字段说明 - MS Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643082/
我是一名优秀的程序员,十分优秀!