背景:我有两张桌子。一个具有客户端列表和一些基本客户端属性(tblClient)。第二个有产品清单。每个客户端可以有多个产品,因此我在这里有一对多的关系,其中主键(客户端名称)是产品表中的外键。
我正在做什么:我正在寻找创建两种形式。主窗体将具有客户端的快照,并具有一个小的嵌套表,以提供所有产品的摘要。这个我已经成功完成了。我还制作了第二种形式,其中可以放入与产品相关的所有细节(匹配产品数据表)。我想要做的是在主客户端表单上有一个按钮,当单击该按钮时,只打开产品表单到客户端当前使用的产品。如果没有产品,它将打开一个空白表格,其中包含一些预先填写的信息(即客户名称)。例如,如果我正在审查客户John Doe并且他目前有产品A,B和C,我想点击一个按钮以获得John Doe特有的产品详细信息。如果他没有产品,我希望Access为我打开一个新的入门产品表格,其中已经填写了John Doe的名字以避免混淆。
我是非常新的访问,任何帮助将非常感激。
感谢, ž
答案 0 :(得分:1)
我假设您的第二张表格与表格相关联?如果是这样,请在打开时过滤记录集。
例如,按钮的OnClick事件将查看当前的ClientID并根据该ClientID打开表单。
Dim stDocName As String
Dim stOpenArg As String
'Make stDocName the name of the form you're going to open
stDocName = "frmAssignProject"
'Make stOpenArg your variable to filter on
stOpenArg = Me.ClientID
DoCmd.OpenForm stDocName, , , , , , stOpenArg
然后,在第二个表单的OnLoad事件中,根据您的OpenArg进行过滤:
private sub form_load()
Dim rs as DAO.Recordset
Me.RecordSource = "Select * From tblProducts Where ClientID = " & OpenArgs & ""
Set rs = Me.RecordsetClone
'This is where it determines if it should pull in the data from the previous form
If rs.RecordCount > 0 Then
else
Me.ClientID = Forms!frmClients.ClientID
Me.ClientName = Forms!frmClients.ClientName
etc...
end if
end sub
以上完全是" air code",它可能需要一些调整,但概念是合理的。