【发布时间】:2015-01-26 16:51:40
【问题描述】:
我必须为我的工作开发这个数据库,其中一个原因是我有 4 种不同类型的成员需要用于系统:学生、家长、导师和教练。每个都有不同的关联信息,因此它们都有自己的表。另一个表是“笔记”表,我希望能够为每个成员附加无限数量的笔记。
因此,对于每个表格,都有一个格式化的自动编号。对于学生来说,这个数字应该是 S#### 的递增顺序。人数无关紧要,学生人数将远远少于 9,999 人,所以我相信这就是我所需要的。然后还有针对父母的 P####,依此类推。
之所以需要这样,是因为数据库还包含调查问题和回复。我的想法是,调查回复可以通过 member_ID、年份和任期来唯一标识(因为它们只在特定时间开放)。问题是如果没有在查询中找到格式化的自动编号,那么 ID 将重复且不唯一。
所以我的问题是,格式自动编号不起作用吗?我是否必须使用一些 VBA 来构建我自己的自动编号字符串,以便在查询和其他表查找中继续使用?
编辑:所以 HansUp(下)建议使用成员表提供的主列表。我已经设置了这个,因为我没有想到替代方案。基本上流程是这样的:
- 数据库用户点击“新生”
- “新学生”表单和“新成员”一起打开。
- “新成员”表单创建一个新 ID # 并分配 S 组,设置生存能力
- 然后将连接的 ID 传递给“新生”表单
- 如果正常,则提交所有更改
- 如果取消,则
DoCMD.Undo用于新学生和新成员。
这样可以吗?我不确定如何将该撤消语句传递给“新成员”表单...
【问题讨论】:
-
@hansup 我已经考虑过了,但它增加了我试图避免的复杂性,因为这意味着 ID 在数据库中不是唯一的,这让我很紧张。我的目标是让每个成员都有一个唯一的 ID,如果我有办法链接自动编号并使它们在表之间连续...
-
@HansUp 所以你是说有另一个表具有自动编号和其他表用作查找的成员类型?我想这会起作用,除非我不确定如何将它作为一种形式来实现。这是否意味着我需要让数据库用户添加一个新成员和类型,然后分配该成员并键入必要的信息?
-
@HansUp 没关系!这绝对不是不合适的,这就是我现在前进的方式,直到我得到一个更好的主意。它在 VBA 中创建了一个复杂性,如果取消新用户需要删除该新 ID,但除此之外它很简单,只需在表单之间传递值。我想我可以通过做一些并非完全不可能的额外步骤来做到这一点。如果我没有更好的解决方案,那么您的想法就是一个!
-
一个成员可以有多个角色,例如家长和教练?如果是这样,并且您仍然打算将角色字母和自动编号存储在一个字段中,那么父母/教练是否会在相应的表中具有 P00123 和 C00124 之类的内容,或者您是否希望它们作为 P00123 和 C00123 代替?跨度>
-
不,一个成员不可能属于多个组(如果这样做,他们将作为具有唯一 ID 的单独个人输入以保持完整性)。
标签: ms-access key ms-access-2007