1

我正在尝试创建一个函数,该函数将确定活动表单控件中保存的值,然后将值传递给表单条件,如下所示:

Public Function fc_id() As Long

    fc_id = (Screen.ActiveControl.Caption)

End Function

Public Sub sShowForm()

DoCmd.OpenForm "F_Details", , , "c_id = " & fc_id

End Sub

然后我从被点击的表单控件中调用该函数:

sShowForm

详细信息表单打开但它是黑色的,并且没有错误消息。

如果我使用数值,则等价的值是多少

(屏幕.ActiveControl.Caption)

4

1 回答 1

0

暂时更改您的程序以找出您从中得到什么Screen.ActiveControl

Public Sub sShowForm()
    'DoCmd.OpenForm "F_Details", , , "c_id = " & fc_id
    MsgBox Screen.ActiveControl.Name
End Sub

你可能没有得到你所期望的。例如,如果您使用命令按钮运行sShowForm(),则命令按钮是ActiveControl. 无论情况是否如此,请检查您实际得到的结果。

如果当前表单(运行 VBA 代码的表单)包含绑定到c_id表单记录源中的字段的文本框,您可以删除该函数并直接在OpenForm选项中引用该文本框。例如,如果c_id是一个数字字段并且文本框被命名为txtc_id...

DoCmd.OpenForm "F_Details", , , "c_id = " & Me.txtc_id

如果c_id是文本类型,请在文本框值周围添加引号...

DoCmd.OpenForm "F_Details", , , "c_id = '" & Me.txtc_id & "'"
于 2013-09-22T17:49:30.813 回答