多个主要&外键访问

时间:2014-10-01 10:02:36

标签: ms-access foreign-keys primary-key

我正在使用Access 2007。

表: - 预算线(project_id(PK),donor_code(PK),...) - 合同(project_id(FK),donor_code(FK),......)

PK =主键 FK =外键

让我们说我已经进入了合同表中的字段project_id,现在我想进入字段donor_code:我需要做什么才能确保我只能在所有的捐赠者代码中选择结合我输入的project_id而不是所有现有的预算代码?

1 个答案:

答案 0 :(得分:0)

好吧,有两个字段作为主键对我来说总是很尴尬。

我的建议是在budget_lines表中添加一个自动编号字段,并将其声明为主键。然后,您可以索引其他2个字段以确保没有重复项。

据我了解,您有一个Project表和一个Donor表,它们都链接到预算行表。然后你想把这些buddget行链接到契约。

如果您直接在表格中输入数据,我似乎无法找到解决方案。如果您通过表单输入它们,只需要一些VBA,就可以找到一些解决方法。

一种方法是使用ProjectID和Donor_Code的组合框的after_update事件来修改该对的另一个组合框的查询的行源。

代码看起来像这样:

  

Private Sub ProjectID_AfterUpdate()

     
    

如果我!ProjectID.Value是空的那么

         
   Me.DonorCode.RowSource = "SELECT BudgetLines.Donor_Code, BudgetLines.Whatever >FROM BudgetLines;"  
Else  
    Me.DonorCode.RowSource = "SELECT BudgetLines.Donor_Code, BudgetLines.Whatever  FROM BudgetLines WHERE BudgetLines.ProjectID= " & [Me]![ProjectID] & ";"  
End If  
             

End Sub