Access 中的多个 table 更新设计

Multiple table update design in Access

更新:如果您阅读了整个 post 并出于您自己的原因理解了它,那么答案在普通人关于数据库设计的设计概念中是模糊的,而不是 Access 的工作原理。花了几个月的时间才得到这个概念,我想把它传递下去。

首先,自动编号类型在任何保存函数或任何类型的命令结束时更新,即使是数据表视图中的键盘输入,也会更新为 table 中的记录。有多少新记录并不重要,您根本不需要对此进行编码,如果它不起作用,它就是一种形式,而不是因为您的 table 不起作用(除非有一些损坏)。在表单中,当构建您的表单时,以主 table 自动编号主键作为记录源并使用您的表单,以获得更详细的结果,基于查询的表单或使用子表单。 除了记录源之外,还要确定您的数据输入表单是否与子表单相关(如果与主表单相关,您可以使用子表单吗?还是单独的数据输入表单)

最后,在我的一对零或一对一方案中,您不必总是在table级别加入以同时更新两个table,我很困惑根据这个概念,我认为我不理解与此事相关的其他 post。但在我看来,这个论坛和许多其他论坛上的很多答案并没有完全尝试帮助其他人像 OP 一样理解,这就是为什么它令人沮丧,因为似乎没有人在任何其他方面解决我的特定问题posts,为什么连我得到的帮助都仅限于一个认真的人,向 Wolfgang 大声喊叫。

有太多 post 和 post 人从很多角度来探讨这个问题,以至于我无法真正找到我正在寻找的答案。对我有用的方法可能对您不起作用以保持数据输入连接,我使用连接和查询的组合来实现我想要的,但是如果您不了解上述某些内容,我就无法做到这一点,一旦您了解了自己的概念无休止地在论坛 post 中搜索答案,而您的搜索不涉及具体的答案。它对 post 一个问题没有太大帮助,阅读更多关于 Access 中项目和功能的名称并提出一个问题来解决一般问题,而不是太具体。您会看到 post 用户要求提供更多信息以帮助您。我明明 post 正是我想要的,但我被骂了。我希望这对每个人和所有人都有帮助 - CJ

PS 亲爱的专家,首先要感谢您的帮助,因为论坛和讨论可以节省时间,而且您的帮助是为了有用,而不是街头信誉。得到帮助或下车。我浪费时间阅读 posts,答案是 "I don't understand what you are trying to do...",然后带着敌意或怀疑质疑 OP,或者提出一些不相关的答案进一步混淆问题,这似乎是当今世界的问题,如果你想帮忙,帮忙

原文Post:

好的,根据评论,感谢任何自愿帮助解决此问题的人。

我有一个 table 和关系设计问题。

我有一个带有 pk auto 的 table,我想要一个相关的 table,相关的列递增编号,每次以绑定到的形式输入新数据时都会更新它。它需要更新自动编号 table 的键中的相关行。

---答案是在自动编号字段上加入 table。

第一个 table(主记录源)的自动编号只是一个 ID。我想我需要两个主键,因为我需要在输入表单中使用该编号更新相关记录并移至 NextRec 但更新主 table 中的 pk 并移至 NewRec ,我如何加入(参见 jpg图片)?

我想输入结果并更新现有记录,但更新相邻的 pk,以便在主 table 中创建新记录。

Tourney

更深入:

From yours

My desired form

请注意,计算 table 为即将到来的比赛 table 提供数据,其中查询显示玩家最近的成绩。我想拆分即将到来的结果以显示玩家最近的游戏历史,第二个选项卡我想一次输入一个结果或多个结果。我希望我更清楚。你可以明白为什么我遇到了挑战。不过请参阅我的表格。记录源是即将到来的游戏table,数据输入表单用于输入(ENTER GAME DATA)

-----对此的回答是一个更新查询(一个单独的表格),然后重新查询统计表格以显示输入的新比赛。

根据评论,这就是我在阅读您的描述时的想法:

因为 UpcomingGames 将首先输入,并且每个 UpcomingGame[=34= 可以输入一个 GameResult ], 这将是一个 1:1 关系。正如名称 Upcoming 所说:必须在 Result 有意义之前输入 Upcoming 数据。除非 UpcomingGame 可以取消,否则 Game 确实会有 Result,所以有无需将信息分成 2 个表。我会说,用户界面可能是这样的:

如您所见,T_NUM 列是一个自动值。在输入任何数据之前,我使用这样的查询初始化该列(然后删除该记录):

INSERT INTO Games ( T_NUM )
VALUES (1004);

这样,编号从 1005 开始。

只要用户可以删除现有记录或取消插入新记录,您就无法避免编号中的空白。如果你想至少避免后者,你需要在表单中添加一些 VBA 代码。