Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 使用基于1个表的Access 2010表单在链接表中输入数据_Ms Access - Fatal编程技术网

Ms access 使用基于1个表的Access 2010表单在链接表中输入数据

Ms access 使用基于1个表的Access 2010表单在链接表中输入数据,ms-access,Ms Access,首先,我是一个彻头彻尾的傻瓜!我正在尝试创建一个Access DB,用于在整个过程中处理订单。因此,我基于每个单独的流程创建了表。仅包含基本信息的订单数据位于tblCurrentOrders中。其他每个进程都通过OrderNumber字段链接到tblCurrentOrders。流程的第一步是在tblPlanner表中输入到期日信息。显然,在tblPlanner中输入数据之前,不存在OrderNumber(如果我能做到这一点,其他表也是如此) 我想创建一个基于表单的tblCurrentOrders

首先,我是一个彻头彻尾的傻瓜!我正在尝试创建一个Access DB,用于在整个过程中处理订单。因此,我基于每个单独的流程创建了表。仅包含基本信息的订单数据位于tblCurrentOrders中。其他每个进程都通过OrderNumber字段链接到tblCurrentOrders。流程的第一步是在tblPlanner表中输入到期日信息。显然,在tblPlanner中输入数据之前,不存在OrderNumber(如果我能做到这一点,其他表也是如此)

我想创建一个基于表单的tblCurrentOrders,它只显示tblPlanner(新订单)中没有相应条目的记录,然后我想能够在子表单中输入tblPlanner信息。我已经尝试过用基于tblPlanner的子表单创建基于tblCurrentOrders的表单,但我不知道如何只显示新订单。我还尝试将表单基于只显示新订单的查询,但我不知道如何使基于tblPlanner的子表单工作


请帮忙

嗯,链接表的最简单方法是在启动新订单时在tblPlanner中创建订单号。然后添加一个标志和时间戳,以确定它是否已“发布”

编辑

由于您提供了更多的细节,我将编辑我的响应,以便更紧密地与您所期望的方法保持一致

创建“新订单”是一个多步骤的过程。因此,通常最好在调用VBA代码的窗体上创建一个命令按钮。这将允许您控制每个步骤并确保其正确

步骤A:首先,您希望:

1) 创建一个控件窗体(如果尚未创建),该窗体允许您放置命令按钮,这些按钮将启动不同的VBA代码或打开不同的显示窗体

2) 在控制表单上,创建一个列表框,允许您选择现有订单号

3) 在控制窗体上,创建一个命令按钮以打开使用所选列表框OrderNumber的订单。当该订单打开时,它将填充该订单号的tblCurrentOrders数据,并用tblPlanner数据填充子表单。(只要它们链接正确。)

4) 在控制窗体上,创建一个命令按钮以打开订单窗体,其中包含一组仅为“新订单”的记录。请参见下面步骤C中更详细的过程

5) 在控件窗体上,创建一个命令按钮以启动VBA代码,该代码将创建一个“新订单”。这是一个多步骤流程,在步骤B中详细介绍

6) 创建任何其他按钮或控件,允许您在完成过程中监控或推进“订单”。(要将所有部件安装到位,这是一项艰巨的工作。)

步骤B:当您按下命令按钮创建“新订单”时,您希望创建VBA代码,该代码将:

1) 在tblCurrentOrders表中创建新记录

2) 在新记录上创建唯一的OrderNumber。通常最好控制这个数字的生成,不要让它只是一个系统生成的序列号。但是你想要什么都可以,只要它是独一无二的

3) 在新tblCurrentOrders记录中将ReleasedFlag设置为false

4) 确保您的ReleasedTimeStamp为空。(或任何您想要的值。)

5) 您可能需要一个CreatedTimeStamp,可以用日期
Now()
填充它

6) 填充任何其他需要填充的“初始化”字段。(如缺货状态、退货标志、短路标志等)

7) 在tblPlanner表中创建新记录

8) 将为tblCurrentOrders记录创建的唯一OrderNumber复制到新tblPlanner记录的OrderNumber字段中。这将创建一个链接,供您与子查询和子窗体一起使用

9) 现在,您可以使用此新订单号打开订单

步骤C:当您按下命令按钮打开一组仅为“新订单”的记录时:

命令按钮需要启动查询以查找“…tblCurrentOrders,它只显示记录,而不显示tblPlanner(新订单)中的相应条目”: 您只需要选择ReleasedFlag设置为false的tblCurrentOrders

`SELECT * FROM tblCurrentOrders WHERE ReleasedFlag = false`
所以当你说:“…然后我希望能够在子表单中输入tblPlanner信息”。。。您可以基于tblCurrentOrders OrderNumber字段创建链接到tblPlanner的子表单

这完全取决于您是否注意到,当您说“…records而不包含tblPlanner中的相应条目…”时,您真正的意思是:records而不包含tblPlanner中发布的条目。这意味着:为了让记录存在于tblCurrentOrders中,它必须在tblPlanner中创建相应的空白(或起始)记录。因此,现在可以显示链接到未发布的tblCurrentOrders记录的空白tblPlanner记录

然后,一旦您的数据输入人员完成了对新订单的胡闹,他们就可以“释放”订单(通常通过单击释放命令按钮)。此时,您可以将ReleasedTimeStamp设置为
Now()
,并在tblCurrentOrders中将ReleasedFlag设置为True。它不再是正式的“新订单”,现在是您系统中的实时订单

您正处于创建自主订单输入系统的冰山一角。建立一个好的体系的复杂性是巨大的。祝你好运把一切都弄清楚。只需记住使用时间戳和ID字段,这样您就可以返回并取消可能发生意外的操作


希望这一切都有帮助。:)

这是非常有益的,我非常感谢你的帮助。我想我想走一条简单的路线(在需要时在tblPlanner中创建您的订单号)