4

我正在使用 Microsoft 访问,我想在单击按钮时打开一个特定 ID 的表单。我可以在 Do.open form 命令中指定 id 吗?下面的代码会打开一个表单,但随后会打开一个对话框,要求输入 id 。有人有什么想法吗?

Private Sub button1_Enter()
Dim recordID As Integer
recordID = Me.CurrentRecord
DoCmd.OpenForm "Form3", , , "ID = recordID"
End sub
4

4 回答 4

7

首先,改变:

recordID = Me.CurrentRecord

至:

recordID = Me.ID

其中 Me.ID 是当前表单上的字段或控件的名称(Microsoft Access - 单击按钮时获取记录 ID)。

当你引用一个变量时,把它放在引号之外:

DoCmd.OpenForm "Form3", , , "ID = " & recordID

这对于数字 ID 来说没问题,但是对于文本和日期来说会变得更复杂一些,因为您需要分隔符。只要sometextvar不包含引号,这将很好地工作:

DoCmd.OpenForm "Form3", , , "Atext = '" & sometextvar & "'"

否则

DoCmd.OpenForm "Form3", , , "Atext = '" & Replace(sometextvar,"'","''") & "'"

日期需要 #

DoCmd.OpenForm "Form3", , , "ADate = #" & somedatevar & "#"

为避免语言环境问题,最好将格式设置为年、月、日,因此:

DoCmd.OpenForm "Form3", , , "ADate = #" & Format(somedatevar,"yyyy/mm/dd") & "#"
于 2012-11-22T11:05:15.870 回答
1

我试过我有同样的,确保你给id的名字是表格中使用的名字,而不是数据库中的名字!IE,我的 idid在 DB 中,但pc_id在我的表单中!

于 2015-02-19T18:03:31.433 回答
0

当我想从另一个表单(称为启动表单)打开表单(称为目标表单)并且我希望将目标表单中查看的记录过滤(即,限制)到仅启动表单中的当前记录和我要用于过滤记录的字段是文本(或“字符串”)数据类型:

私有子 cmdOpenDestinationForm

DoCmd.OpenForm "frmDestination",,,"[FieldName]=" & "'" & Me.ControlName & "'"

结束子

[FieldName] 指的是目标表单中的一个字段。[ControlName] 指的是 Launch 表单上的控件(如文本框)。“我”也指的是启动表单,因为这是在您单击命令按钮时打开的表单(您可以省略它)。实际上,此代码告诉 Access (1) 打开 frmDestination,(2) 搜索“FieldName”字段,直到找到与 Me.ControlName 中的值相同的记录,以及 (3) 过滤 Destination 表单以便只显示那一条记录。

棘手的部分是所有那些双引号 (")、单引号 (') 和 &符号。接下来,这后面是 &"'"。这是一个和号、一个双引号、一个单引号和另一个双引号。根据我的经验,引号符号之间不能有空格。它们必须一起运行,如图所示. 然后是另一个&符号和 Launch 表单上的控件名称,该名称具有您要在 Destination 表单的 [FieldName] 中定位的值:& Me.ControlName。并且,如前所述,您可以省略如果你愿意,我会使用它,因为它可以帮助我记住 ControlName 是 Launch 表单上的控件,而不是 Destination 表单上的控件。然后是另一个 & 和另一组双引号和单引号:“'”。

于 2021-01-26T22:09:37.200 回答
0

这个解决方案怎么样?

Private Sub Command10_Click()
On Error GoTo Err_Command10_Click
    Dim IDnr As String
    Dim stDocName As String
    Dim stLinkCriteria As String
    IDnr = InputBox("Enter ID")
    stDocName = "FORM_MASTER"
    stLinkCriteria = "[ID]=" & IDnr
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Exit_Command10_Click:
    Exit Sub
Err_Command10_Click:
    MsgBox Err.Description
    Resume Exit_Command10_Click
End Sub
于 2019-07-02T08:25:54.923 回答