用于确定和传递表单控件中的值的函数

时间:2013-09-22 17:34:33

标签: ms-access access-vba

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

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

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

如果我使用数值,那么

的等价性是什么
  

(Screen.ActiveControl.Caption)

1 个答案:

答案 0 :(得分: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字段的文本框,则可以删除该函数并直接引用该文本框{ {1}}选项。例如,如果OpenForm是数字字段,并且文本框名为c_id ...

txtc_id

如果DoCmd.OpenForm "F_Details", , , "c_id = " & Me.txtc_id 是文字类型,请在文本框值...

周围添加引号
c_id