gpt4 book ai didi

ms-access - 表字段说明 - MS Access

转载 作者:行者123 更新时间:2023-12-05 00:00:06 36 4
gpt4 key购买 nike

我环顾四周,发现了一些关于如何从字段的“描述”框中获取描述的 VBA 代码,但没有找到如何在表单属性中使用它的方法。

我希望出现一个 ControlTip,其中包含从数据库中的描述中带来的该字段的描述,而不必重写所有描述;我希望有一段可以添加到所有控制提示的复制粘贴代码?

类似的东西(但显然不是)

ControlTipText:  Me.ThisControl.ThisControlFieldDescription

任何人都知道代码,或者即使有一个?

编辑:
description = Forms("frmTrials").Controls("txtBox").StatusBarText
MsgBox description

以上用于显示状态栏文本。但是我想用事件表单填充“frmTrials”,用当前事件控件填充“txtBox”;这样,当控件变为事件状态时,我可以将 StatusBarText 放入“描述框”文本字段(或控件提示等)中。我试过
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/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com