根据在另一个字段中输入的值自动填充访问中的字段

时间:2018-04-17 19:28:14

标签: vba ms-access access-vba ms-access-2013

我有一个数据库,当前包含两个表,第一个表名为" tblUser"包含有关各个用户的详细信息,第二个表名为" tblTime"包含将由每个用户输入的实际数据。

这些表包含一个名为" UserLogin"的列。和"运算符",当数据输入到tblTime时,运算符字段将等于UserLogin字段中的值。

然后我希望根据tblUser中ContactedHours字段的值在tbltime内设置ContractedHours字段。

tblUser

ID    UserLogin   ContractedHours
1     Ollie       8:00
2     Ryan        6:00

tblTime

ID    Operator   ContactedHours
1     Ollie          x
2     Ryan           y
3     Ollie          x

我已经展示了上表的示例。当此表正在进行时,tblTime的ID将是连续的,因此我无法链接这两个ID。

2 个答案:

答案 0 :(得分:0)

您不需要在两个表格中复制数据。尝试将时间表映射到用户表,而不是此方法:

tblUser

UserID    UserName   
1         Ollie      
2         Ryan   

tblTime

ID  UserID   ContractedHours
1     1          x
2     2          y
3     3          x

此方法可确保您不会有任何重复的值,并且tblTime将使用ID字段作为其键,因此您可以根据需要拥有尽可能多的UserID实例。

答案 1 :(得分:0)

我通过数据库的许多重新设计解决了这个问题,一种方法是将数据库中的字段设置为:

SELECT t.ContractedHours
FROM tblUser AS t
WHERE t.UserLogin = Operator;

到目前为止,最有效的方法是创建一个UserID字段,它是一个字母数字值,该值将始终等于另一个表的operator字段中的值。我在两个字段之间创建了一个关系,并允许ContractedHours字段自动填充。