Ms access 我想根据查询用一个子表单更新两个表
我正在检修一个旧的访问数据库,它是用社会安全号码作为PKs构建的,不再被允许。因此,我要做的主要工作是正确地关联这些表格。到目前为止,它可以很好地显示信息,但不允许添加内容。具体而言: 在一个家庭中可以居住许多客户。客户可以居住在一个家庭中。这意味着一种多对多关系,所以我创建了一个名为“派驻”的联合表 客户信息1Ms access 我想根据查询用一个子表单更新两个表,ms-access,Ms Access,我正在检修一个旧的访问数据库,它是用社会安全号码作为PKs构建的,不再被允许。因此,我要做的主要工作是正确地关联这些表格。到目前为止,它可以很好地显示信息,但不允许添加内容。具体而言: 在一个家庭中可以居住许多客户。客户可以居住在一个家庭中。这意味着一种多对多关系,所以我创建了一个名为“派驻”的联合表 客户信息1 Client ID PK Lastname Firstnam Address 家庭 HouseholdID PK DateAdded 派驻服务 ResidencyID PK Hou
Client ID PK
Lastname
Firstnam
Address
家庭
HouseholdID PK
DateAdded
派驻服务
ResidencyID PK
HouseholdID FK
ClientID FK
Active
我的表格,基于查询:
SELECT [Clients information1].ClientID, [Clients information1].LASTNAME, [Clients information1].FIRSTNAM, [Clients information1].SSN, [Clients information1].MI, [Clients information1].ADDRESS, [Clients information1].CITY, [Clients information1].STATE, [Clients information1].ZIP, [Clients information1].PHONE, [Clients information1].BIRTHDTE, [Clients information1].MARSTAT, [Clients information1].RACE, [Clients information1].SEX, [Clients information1].INCOME, [Clients information1].NOINHOUS, [Clients information1].PRINCOME, [Clients information1].SEINCOME, [Clients information1].AGENCYID, [Clients information1].WARNMESS, [Clients information1].ALTS, [Clients information1].COUNTY, [Clients information1].Email, Distribution.Case, Residency.HouseholdID, Role.RoleID
FROM Role INNER JOIN (Household INNER JOIN ((([Clients information1] LEFT JOIN Distribution ON [Clients information1].ClientID = Distribution.ClientID) INNER JOIN Residency ON [Clients information1].ClientID = Residency.ClientID) ON Household.HouseholdID = Residency.HouseholdID) ON Role.RoleID = Residency.RoleID;
HouseholdID上链接父对象到子对象的子窗体基于以下查询。为了可读性,我缩短了列表(这可能是问题所在,事实上它是基于查询的。但正如我所说的,显示当前记录很好!)
当我使用此表单向住户添加新人员时,它会成功地向客户表添加新人员,但不会向居住表添加新人员。当我刷新表单时,该人员不会列出,尽管他们存在
我需要使用一个子表单条目向客户机表和派驻表添加一条记录。这不可能吗?关系已经建立(如果我有足够的声誉,我会添加一个图像)。让我试着帮助你。但首先:
Private Sub cmdAddResidency_Click()
Dim strSQL As String
DoCmd.SetWarnings False
strSQL = "INSERT INTO Residency (HouseholdID, ClientID) SELECT " & Me.lstClients.Column(0) & " AS Expr1, " & Me.lstHouseholds.Column(0) & ";"
CurrentDb.Execute strSQL
DoCmd.SetWarnings True
End Sub
1.是的,说明中的下划线是错误的。(下意识地想用空格来固定表名!)2。再次更正。我迫不及待地想得到足够的声誉来发布表单的图片。子表单是一个连续表单,列出了与住户ID相关的每个客户信息1条目。该表单设置为允许添加,以便可以在最后一个条目中键入新记录。空白的家庭ID由默认值设置为等于父窗体中选择的户头的值。4。我曾想过以编程方式这样做,这样可以让我在sub中输入两个表,但我认为我应该能够在没有.5的情况下完成。该程序的原始流程是搜索姓名或客户号,主客户窗体将弹出所选个人。该表格有几个与个人相关的标签,其中一个是“家庭清单”。然而,在这个新的居住表中,添加新家庭的流程似乎在逻辑上要求首先创建一个家庭记录,然后添加一个户主,然后再添加房子中的所有受抚养人(表单必须“记住”在多用户环境中刚刚创建的家庭)。
Private Sub cmdAddResidency_Click()
Dim strSQL As String
DoCmd.SetWarnings False
strSQL = "INSERT INTO Residency (HouseholdID, ClientID) SELECT " & Me.lstClients.Column(0) & " AS Expr1, " & Me.lstHouseholds.Column(0) & ";"
CurrentDb.Execute strSQL
DoCmd.SetWarnings True
End Sub