水平选项卡,从导航按钮中的表单中获取文本值



我有"主页","水平导航",其中包括许多导航按钮,在navigationbutton7下,我有员工FRM,我需要在我处于家庭形式的情况下接下来或上一个。p> ID嵌入了员工FRM中,因此当我在主页上时,雇员FRM而不是在本国表格上卸载时,VBA代码没有给出正确的ID。

我尝试过!home!navigationsubform!id,但这会出现错误,因为任何其他navigationbutton8或9中的任何ID都会给出另一个结果,我不感兴趣地知道其他按钮中其他表格的ID。

我担心的是在员工FRM中的ID与主页表格文本之间具有链接。

从下面

Dim MyIDS As Integer
' this is giving only the first ID number all the time.
MyIDS = Me.ID 
' this is giving error.
MyIDS = Forms![Home]![NavigationSubform].[Form]![employeesfrm]![ID]
' this is giving error.
MyIDS = Forms![Home]![NavigationSubform]![Navigationform]![studentsfrm]![ID] 
' this one works but if I am on another Navigation button,
' lets say 8 not 7, I am not interested in the number.
MyIDS = Forms![Home]![NavigationSubform].Form![ID]

我需要这个数字,对于我的书签,如果我直接在员工身上,它可以正常工作,但不在家庭表格上

在此处输入图像描述

我不确定我完全理解您要实现的目标,但是在家庭表单上拥有一个无绑定的文本框,然后在oncurrent事件中员工表格集

Me.Parent!EmpID = ID

如果您正在使用它来尝试回到与其他子形式之前的相同记录,那么您还需要一种方法来检测您要回到这个子形式,否则,Oncurrent事件将再次使您再次回到第一个记录。因此,您可能需要一个主表单上的复选框(chkgotobookmark,默认值false),以便navigationbutton7(这是加载员工子形式的内容,对吗?)可以勾选此框。然后,员工表格的Oncurrent活动将是:

If Me.Parent!chkGoToBookmark = True And Not IsNull(Me.Parent!EmpID) Then
    Me.RecordsetClone.FindFirst "ID=" & Me.Parent!EmpID
    Me.Bookmark = Me.RecordsetClone.Bookmark
Else
    Me.Parent!EmpID = ID
End If

请注意,如果您直接使用员工形式,则对Me.Parent的任何引用都会导致错误,因此您可能需要陷入困境。

非常感谢。我被卡住了,我正在与所有人分享我的解决方案,但是,水平形式是痛苦的,真的要转到选项卡控件,我的问题是书签,如果您处于同一形式,则很容易处理书签,但是当形式相同时是在主(家庭)形式的内部,这是导航控制,这并不容易,我所做的就是以下内容:在主表单上创建了一个TXT,称为TXTV,这将从我的水平按钮内的表单中托管我的ID,以及我使用以下的卸载和加载事件,

私有子form_unload(取消作为整数)

dim rs as dao.recordset

If Not IsNull(Me.Parent!txtv) Then
    Set rs = CurrentDb().OpenRecordset("bookmarktb", dbOpenDynaset)
    With rs
        .FindFirst "[Variable] = 'CustomerIDLast'"
        If .NoMatch Then
            .AddNew        'Create the entry if not found.
                ![Variable] = "CustomerIDLast"
                ![Values] = Me.Parent!txtv
                ![Description] = "Last customerID, for form " & Me.Name
            .Update
        Else
            .Edit          'Save the current record's primary key.
                ![Values] = Me.Parent!txtv
            .Update
        End If
    End With
    rs.Close
End If
Set rs = Nothing

私人sub form_load()

昏暗的变量为变体 Dim Striiz作为字符串

varID = DLookup("Values", "bookmarktb", "[Variable] = 'CustomerIDLast'")
If IsNumeric(varID) Then
    With Me.RecordsetClone
        .FindFirst "[ID] = " & strIIZ & varID & strIIZ
        If Not .NoMatch Then
            Me.Bookmark = .Bookmark
        End If
    End With
End If

结束子

不要忘记请添加e.parent.txtv = id的当前事件因此,它将用主表单更新ID。

我认为我将在分解数据库后会受苦,因为我听说Findfirst如果数据库被拆分,则无法正常工作。我不确定,但是它应该与合并的batabase一起工作,

相关内容

  • 没有找到相关文章

最新更新