forms - 添加具有相同参考 ID 的附加记录
问题描述
我在 Access 2013 中工作。我正在构建表单来指导/限制现场人员的数据输入。Vistable 保存访问记录:每次访问一条记录,包括日期、开始/停止时间、其他访问特定信息。Obstable 保存每次访问的观察结果,并且该表以 1 Vistable : Many Obstable 关系相关。
我已经建立了一个表格来输入新的访问,并且有一个用于输入相关观察的按钮。单击按钮保存访问记录,设置临时变量 (tempVisID),当打开 Obsform 时,设置 VisID 字段 = tempVisID,以便在基础表中链接父记录和子记录。
输入观察后,可以将 obsform 退出回 Visform 或添加另一个观察,与上一个不同。在这种情况下,Obstable.ID 字段应该增加,但我需要 Obstable.VisID 字段保持 = tempVisID,因为这两个观察应该链接回相同的访问记录。但是,到目前为止,我尝试过的所有操作都会引发错误或自动增加 VisID。即,如果我只是去一个新的 obs 记录,它会增加,尽管我认为它不应该(基础表中的字段是文本字段,没有索引,不是自动编号),如果我尝试使用默认值= tempVisID 或其他任何东西(到目前为止)它会抛出一个错误,说“您输入的值对此字段无效”,然后我被迫中止输入屏幕。最近的一次尝试是我使用了一个宏来 GoToRecord=New,
关于如何让 VisID 保持不变的任何建议?我很茫然,我敢肯定这是我想念的简单的东西。重要的提示。我不知道或不了解 VBA,目前没有时间尝试将其添加到我的工具箱中。我一直在使用宏和表达式。
解决方案
这就是我最终决定的。完成访问数据输入后,单击“添加观察”按钮。这个动作做了三件事:1. 设置一个 TempVar = Visit.ID(访问表的主键),2. SaveRecord 将访问记录存储在访问表中(否则我收到一个错误,说我在 Observations 中的子记录没有访问中的连接父母),以及 3. 打开 AddObservations 表单。然后使用默认值控件将 AddObservation.VisID 字段设置为上面设置的 TempVar。然后用户输入其余数据并退出表单返回访问,或单击“AddAnotherObs”按钮。因此,我的解决方法是:AddAnotherObs 只需关闭观察表单,然后立即重新打开它。由于 TempVar 没有改变,默认值重置为相同的值,允许我在同一次访问中添加第二个观察结果。我尝试的任何其他操作都会增加 Visit.ID 字段,然后生成错误,因为没有具有该 ID 的父记录(如果有,那将是错误的父记录!)。
抱歉,如果我的原始帖子没有像您可能喜欢的那样得到很好的解释。我试图让它尽可能清楚。我认为我没有达到可以发布屏幕截图之类的水平。
推荐阅读
- docker - 为生产和开发创建单独的 docker-compose 配置
- python - 在 Python 中查找包导入的第一个实例
- c++ - Makefile: no rule to make target: 如何设置正确的规则?
- sql - 具有多个过滤器的一对多关系的 SQL 查询
- python - 如何在不使用转储的情况下在 python 中编写 json 文件
- r - R - 以其他 2 列为条件的几列之间的 T 检验
- validation - gsutil 是否在云传输中进行验证?
- python - 在从 Qt 调用的 python 脚本中导入 opencv 崩溃
- vue.js - process.env.NODE_ENV 不适用于 webpack3
- css - CSS3 淡入不淡出 - 一种方式过渡