无法从另一个表中添加包含ID的记录

时间:2014-12-17 20:58:32

标签: vba ms-access access-vba ms-access-2007 ticket-system

我有一个类似于“帮助台”系统的数据库 - 外部用户创建请求票据,然后顾问将使用该数据库进行各种跟踪和报告。

顾问用来显示和使用最终用户请求的表单。他们从组合框中选择现有记录(请求票证)。然后,表单会填充请求的信息,顾问可以根据需要进行编辑。

然后,我在此表单上有一系列按钮,顾问可以使用这些按钮打开不同的表单(工作表)并在每个表单中输入数据。这些都是可选的,将根据请求的类型而有所不同。

这些工作表全部填充“咨询”表,而初始请求位于“请求”表中。 “请求”(1:1关系)中每条记录的“咨询”表中只有一条记录。

以下是我打开表单(工作表)的代码:

Private Sub ButtonGap_Click()
DoCmd.OpenForm "Gap Analysis", acNormal, , "[ID] = " & Me!ID, acFormEdit, acDialog
End Sub

这只是部分有效。如果“咨询”表中的现有信息的ID与“请求”(他们在开始时在组合框中选择的内容)中的ID相对应,则工作表将打开预先填充和可编辑的状态。太好了!

但是......如果“咨询”表中没有现有信息,其ID与“请求”中的ID相对应,则工作表将打开空白到新记录。此记录从“咨询”表中断的自动编号。如果有多个请求进入,则会产生问题 - 我们并不总是按顺序处理它们,因此“咨询”中的新记录ID与“请求”中的现有记录不匹配。

我确信这是一个非常简单的东西,我忽略了。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我能够找到一种方法来实现这一目标。如果我错过了什么,请告诉我!我不想破坏别的东西。 :)

我创建了一个查询来查找不匹配的记录,从而为我提供了来自Request的所有ID列表,其中没有匹配的ID。

从那里开始,我根据这些结果添加追加查询,将缺少的ID追加到咨询。

在提交请求表单时运行该查询:

Private Sub Form_AfterUpdate()
DoCmd.OpenQuery "Add Blank Consulting"
End Sub

现在,我在咨询表单上的工作表中填写了正确的ID!