Ms access 显示仅针对当前用户的记录

Ms access 显示仅针对当前用户的记录,ms-access,vba,office365,ms-office,Ms Access,Vba,Office365,Ms Office,我有一个Access数据库,我让用户在进入之前登录该数据库。成功完成登录后,会将其用户名保存为TempVars(“用户”)。我有两张桌子。存储用户ID、用户名、密码和各种联系信息的用户表。我还有一个保存资产记录的数据表。用户名将在数据表的用户名字段中指定,该字段与用户表中的用户名字段存在关系 我想做的是让它只有当前登录的用户才能在表单中看到自己的记录。我是一个新的访问VBA,所以我无法自己解决这个问题 好吧,我想我已经弄明白了。我将表放入一个查询中,从而停止了添加参数弹出窗口。您应该通过使用VB

我有一个Access数据库,我让用户在进入之前登录该数据库。成功完成登录后,会将其用户名保存为TempVars(“用户”)。我有两张桌子。存储用户ID、用户名、密码和各种联系信息的用户表。我还有一个保存资产记录的数据表。用户名将在数据表的用户名字段中指定,该字段与用户表中的用户名字段存在关系

我想做的是让它只有当前登录的用户才能在表单中看到自己的记录。我是一个新的访问VBA,所以我无法自己解决这个问题


好吧,我想我已经弄明白了。我将表放入一个查询中,从而停止了添加参数弹出窗口。

您应该通过使用VBA(和SQL)完全控制表单的记录源来处理此问题。这需要一些编程技巧

说来话长。以下是简短的版本:

选择表单,并添加加载事件(代码)

代码应该类似于

Private Sub Form_Load()

    dim strSQL as string 

    strSQL = "SELECT * FROM the_table WHERE UserID=" & your_user_variable

    debug.print strSQL 

    Me.RecordSource = strSQL

End Sub

您应该通过使用VBA(和SQL)完全控制窗体的记录源来处理此问题。这需要一些编程技巧

说来话长。以下是简短的版本:

选择表单,并添加加载事件(代码)

代码应该类似于

Private Sub Form_Load()

    dim strSQL as string 

    strSQL = "SELECT * FROM the_table WHERE UserID=" & your_user_variable

    debug.print strSQL 

    Me.RecordSource = strSQL

End Sub

在查询中,使用bang表示法引用临时变量:

Where SomeProperty = TempVars!User

虽然您可以采用VBA方式,但如果仅通过SQL就可以解决,我当然不推荐使用VBA。在查询中,您使用bang表示法引用tempvar:

Where SomeProperty = TempVars!User

虽然您可以使用VBA,但如果可以单独通过SQL解决,我当然不推荐使用它。好的,我已将其添加到表单加载中。现在,当我转到表单时,它显示了一个带有文本输入的对话框。输入注释并单击“确定”不会显示记录,单击“取消”只会打开表单并显示所有记录。好的,如果我输入用户名,它只会填充该用户。我只需要弄清楚如何自动执行。你必须用处理当前数据的变量替换当前用户id。当然是userid。你没有吗?我已经用Tempvars(“用户”)替换了它。我也试过TempVars!检查我的修改后的答案,我添加了一些代码,可以在控制台中打印SQL指令(和您的变量)。这将有助于你理解发生了什么。凯,我已经把它添加到表单中。现在,当我转到表单时,它显示了一个带有文本输入的对话框。输入注释并单击“确定”不会显示记录,单击“取消”只会打开表单并显示所有记录。好的,如果我输入用户名,它只会填充该用户。我只需要弄清楚如何自动执行。你必须用处理当前数据的变量替换当前用户id。当然是userid。你没有吗?我已经用Tempvars(“用户”)替换了它。我也试过TempVars!检查我的修改后的答案,我添加了一些代码,可以在控制台中打印SQL指令(和您的变量)。这将帮助你了解发生了什么