MS Access创建新订单和订单行



我有一个Customer表、一个Order表、一张Orderline表和一张Product表。它们都有一个Autonumber字段作为主键,Orderline有一个对Order表上Order ID的外键引用:

ORDER
-----
Order ID - Autonumber  
Customer ID - Number  
...
ORDERLINE
---------
OrderLine ID - Autonumber  
Order ID - FK to Order  
Product ID - FK  to Product  
Quantity  
PRODUCT
-------
Product ID - Autonumber  
Product details...  

我有一个可以选择客户的表格,然后是Orderline表中的记录列表,以及我从该子表格中引用的查询,其中列出了Order IDOrderline IDProduct IDProduct details。。。

我有两个问题。

  1. 所有订单都会出现,我只想要与此订单关联的订单(当表单第一次加载时,应该为零)。

  2. 当我输入要添加到新订单中的Product ID时,我希望出现一个新的Order ID,(自动递增)和一个新订单行ID, (Autoincremented) and the details of the product that I have selected, corresponding to the产品ID `我已经输入了,但我收到了以下错误消息:

您请求的对表的更改未成功,因为它们会在索引、主键或关系中创建重复的值。更改包含重复数据的字段中的数据,删除索引,或重新定义索引以允许重复条目,然后重试

问题是,当我尝试创建新记录时,表应该为我创建唯一的键,当我直接进入每个表并输入一个新的记录时,自动编号确实有效,并且确实创建了一个唯一的键-只是当它试图同时创建Order IDOrderline ID时,它似乎失败了。

我应该说,我在这方面花了好几天的时间,搜索了无数的搜索引擎,观看了YouTube上关于创建订单的一系列视频,但都无济于事。我相信,任何了解Access的人都能帮助我,因为如果这是SQL中的一个问题,我可以在几分钟内帮助任何处于类似情况的人。

创建子窗体时,必须指定父窗体和子窗体之间的关系。与您为表创建的关系相同。然后只有Access会为您筛选记录。

关于你的问题。您应该在[订单]表中创建一个新的[订单]记录,您将在其中输入/选择[客户id、员工id、订单详细信息等]

一个订单可以有多个项目,因此您的[order_items]表(我假设orderline是您用于该表的术语)存在

  • order_id
  • product_id(order_id,product_id复合密钥)
  • 数量
  • 价格
  • 等等

现在,当您想要开始接受订单时,您需要创建一个绑定到tbl_order的新表单。在frm_order中,您将有一个子订单,该子订单绑定到tbl_oder_items(在您的情况下为orderline)

frm_order和frm_oder_items应该具有关系。通常当您拖动表格创建子窗体时,ACCESS会要求设置关系。如果手动创建子窗体:

  • 选择子窗体
  • 转到属性表
  • 选择链接主字段:orderid
  • 选择链接子字段:orderid

现在,当您打开frm_order时,它将显示tbl_order_items表中的所有记录(换句话说,订单列表中的所有产品)。

tbl_order_item/orderline表也通过product_id字段引用产品表。

在frm_order_items中插入一个组合框,并将其绑定到product_id。组合框的行源将是

select product_id, product_name from tbl_product

将出现此错误消息:'您请求对表进行的更改未成功,因为这些更改会在索引、主键或关系中创建重复值。更改包含重复数据的字段中的数据,删除索引,或重新定义索引以允许重复条目,然后重试">

当您尝试为同一订单添加两次产品时。相反,你应该增加产品的数量。

试试这个,让我们知道它的进展。

相关内容

  • 没有找到相关文章

最新更新