在ms访问

时间:2017-12-21 19:50:54

标签: access-vba ms-access-2010

我在主窗体中使用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,但两者都不起作用。

但是一旦我们关闭它并重新打开它就会过滤数据。 克服这个问题的最佳方法是什么? 请询问是否需要任何其他信息。 在此先感谢。

0 个答案:

没有答案