首页 > 解决方案 > 代码无法在 Access 2017 中将值从一种形式传递到另一种形式

问题描述

我有一个名为MortalityDataEntertyform4包含字段的表单GoatID

我想编写代码以打开表单并使用表单中的值Goatforsalelist3填充字段。GoatID2GoatIDMortalityDataEntertyform4

我尝试了以下打开表单的代码,但值没有被传输:

Private Sub Command189_Click()
    Dim strFrmName As String
    strFrmName = "GoatForSaleList3"
    DoCmd.OpenForm strFrmName
    With Forms(strFrmName)
        Text165.Value = Me.Text78.Value
    End With
End Sub

标签: vbams-accessms-access-2010ms-access-forms

解决方案


控件前需要点:

.Text165 = Me.Text78

.Value没有必要,尽管使用起来无伤大雅。

如果表单绑定到数据并且文本框绑定到字段并且表单未打开到新记录行,则代码将更改现有记录中的值。因此,要么将表单 DataEntry 属性设置为 Yes,要么在 OpenForm 方法中指定 acFormAdd:

DoCmd.OpenForm strFrmName, , , , acFormAdd

然后进一步确保现有数据不被更改:

If .NewRecord Then .Text165 = Me.Text78

另一种方法是使用 OpenArgs 将值传递给第二个表单,然后第二个表单代码使用 OpenArgs 设置其字段/控件值。


推荐阅读