在具有不同标准的报告上两次引用相同的信息

时间:2012-10-10 08:41:45

标签: sql database vba ms-access

我的报告旨在显示哪些股票需要转换。

在报告中,我有源产品代码和结果产品代码(源产品转换为1个或多个结果产品)

我也希望对两种产品都有描述,这就是我遇到问题的地方。

(产品代码和说明全部存储在名为products / stock的表中)

我设法将源产品的描述放得很好,将信息拖到报告上并选择两个表的链接方式。

但是,现在当我将另一个描述框拖到报表上时,它假定我想要与之前相同的关系,并且只显示产品/库存中的相同描述。

这不是我想要的,因为我现在希望它显示新产品的描述!

我尝试过使用此代码,与报表上的文本框相关联,但它告诉我该值是否为Null?

Private Sub Report_Open(Cancel As Integer)

Dim strResultDesc As String

strResultDesc = DLookup("[Description]", "[products/stock]", "[Product Code] = '" & Me.txtResultPC & "'")

Me.Text57.Value = strResultDesc

End Sub

Screenshot of Form

上面的随机矩形是应该包含描述的文本框。

Screenshot in design view

这是报告编制方式的屏幕截图。

The field list (as requested)

请求的字段列表的屏幕截图。

报告的记录来源:

SELECT [Stock Conversion Items].SCID AS [Stock Conversion Items_SCID],
  [Stock Conversion Items].[Result PC],
  [Stock Conversion Items].Quantity,
  [Stock Conversion].[Source PC],
  [Stock Conversion].Status,
  [Stock Conversion].SCID AS [Stock Conversion_SCID],
  [products/stock].Description,
  [Stock Conversion].[Created By],
  [Stock Conversion].Quantity AS [Quantity_Stock Conversion]
FROM [products/stock] INNER JOIN ([Stock Conversion] 
  INNER JOIN [Stock Conversion Items]
    ON [Stock Conversion].[SCID] = [Stock Conversion Items].[SCID]) 
    ON [products/stock].[Product Code] = [Stock Conversion].[Source PC]
  WHERE ((([Stock Conversion].Status)="NEW"));

1 个答案:

答案 0 :(得分:1)

您需要将products/stock表的另一个“副本”添加到查询中,并加入到结果产品中。

在查询设计器中,如果右键单击上部窗格的背景并选择显示表.. ,则可以多次选择同一个表。再次添加products/stock表;它会得到一个像products/stock_1这样的名字。然后,创建从Stock Conversion Items表到新表的联接,从Result PC字段到SCID字段。

Description字段从products/stock_1拖到下方窗格,然后关闭查询设计器。

现在,字段列表将显示两个说明字段:products/stock.Descriptionproducts/stock_1.Description。第二个字段包含结果产品说明。