使用数据库中的数量生成多条记录

时间:2018-12-12 23:37:34

标签: sql database ms-access

我有两个桌子

OrderTable: orderID<auto>, productName, qty

ItemTable: itemID<auto>, orderID, productName, location<default "shop">

OrderTable与ItemTable 一对多关系

我希望能够通过创建订单来生成商品记录。

例如,我在OrderTable上键入以下内容

orderID 1, productName paint, qty 3

这将在ItemTable上创建三个记录

itemID 1, orderID 1, productName paint, location shop
itemID 2, orderID 1, productName paint, location shop
itemID 3, orderID 1, productName paint, location shop

我尝试使用内部联接repeat record asked on StackOverflow 但是该解决方案不会产生不同的itemID,因此无法跟踪库存中的单个项目。

我没有看到其他可能的设计。要跟踪每个单独的项目,我必须使用项目级别的记录。通过键入订单和数量自动生成项目是很自然的。

我正在为此项目使用 Microsoft Access

1 个答案:

答案 0 :(得分:0)

使用代码在循环结构中运行INSERT sql操作。这样做的危险是,如果用户不小心多次单击按钮-如果代码位于按钮Click事件中,则可能会创建重复的条目。因此,此代码示例非常简单,并且不涉及防止重复。棘手的部分实际上是弄清楚将代码放入哪个事件。

确实应该保存产品ID而不是描述性名称,并且位置可能相同。

如果ItemID是自动编号类型,它将自动生成。

For x = 1 to Me.tbxQty
    CurrentDb.Execute "INSERT INTO ItemTable(OrderID, ProductID, Location) " & _
                      "VALUES(" & Me!OrderID & "," & Me!ProductID & ",'shop')"
Next

如果要使用订单项明细表,则产品和数量不应在OrderTable中。应该有OrderDate和CustomerID。