我在主窗体中使用datahseet子窗体,用于通过主窗体在表中添加的条目的实时视图。此子表单过滤加载事件的数据并检查用户的Windows用户名并将其与数据进行比较,它应该只显示各个所有者的数据。这意味着它将过滤名称字段并仅显示相应用户所做的条目(无法用户编辑彼此的条目)。它适用于我在本数据表格式中使用的以下代码' s vba:
Option Compare Database
Option Explicit
Dim GetUserName As String
Dim GetEmpID As String
Dim RecCount As String
Public Sub GetValues()
Dim obj1 As Object
Set obj1 = CreateObject("WScript.Network")
GetUserName = DLookup("[BAFUser]", "BAF_User", "[BRID] = '" & obj1.UserName & "'")
RecCount = DCount("[ID]", "Mau_con", "[AdvisorName] = '" & GetUserName & "'")
Set obj1 = Nothing
End Sub
Private Sub Form_AfterInsert()
Call Form_Load
End Sub
Private Sub Form_Load()
Call GetValues
If RecCount > 0 Then
Dim strOpen As String
strOpen = "[AdvisorName] = '" & GetUserName & "'"
Me.Filter = strOpen
Me.FilterOn = True
Me.Recordset.MoveLast
End If
End Sub
它会在加载时过滤数据,但是当新用户登录并登录时会出现问题,然后它将跳过if循环并且将正常工作,我尝试在新用户首次输入之后重新查询表单&我也尝试在插入事件后调用form_load,但两者都不起作用。
但是一旦我们关闭它并重新打开它就会过滤数据。 克服这个问题的最佳方法是什么? 请询问是否需要任何其他信息。 在此先感谢。