0

我目前正在处理一个Access(2010)接受多个订单项目和GROUPING BY订单号的查询。例如,acustomer可能已经订购了5项目,order number 123但我的查询将所有这些单独的项目分组到一行中,每个项目都在它自己的列中。目标是每个单独的订单号都包含在一行中,因为查询将以某种.csv格式导出到第 3 方软件。

由于我正在组合多个记录/项目,因此当描述字段根据255字符被截断时,我遇到了问题。由于在查询中工作,我看不到将文本字段更改为备忘录字段的选项,因此这无法解决问题,并且该GROUP BY子句255无论如何都会将所有文本字段都限制在字符中。

所以,我的问题是不使用当前查询中的描述字段,有没有一种方法可以使用附加表根据订购的零件号查找项目描述?提议的新表将非常简单,例如:

PART | DESC

123     Widget Z_Langs_AUS_INT<br>
567     Widget K_Langs_DOM_CAN<br>
890     Widget B_Langs_SM 

因此,查询中的理想语句将类似于IIF TABLE1.PART#ORDERED(from current query) = NEWTABLE.PART(from new table),然后获取NEWTABLE.DESC(从新表),否则为“”

如果零件号字段匹配,这将返回特定零件号的描述,否则将该字段留空,因为它可能不包含零件号。

在这一点上,我很感激任何建议。在尝试解决此问题时,我可能会遇到所有错误,因此欢迎提供新的输入。

4

2 回答 2

0

下面是我们曾经使用的示例数据库中的图片。它包含我们的零件以及您可能需要的所有信息,然后是与我们的供应商匹配的零件。使用的查询将显示我们的零件与供应商零件匹配的每一行。
在此处输入图像描述

您也可以将 [AskMeForMyPart] 或任何类似的方括号放在类似的方括号中,以根据该特定部分进行查询。 在此处输入图像描述在此处输入图像描述

于 2013-07-01T19:27:16.677 回答
0

不要把它写成查询。它太复杂了,用 VBA 和直接文本访问非常简单。添加对Microsoft 脚本运行时(scrun.dll) 的引用,对 SQL 数据使用内部查询对象,并使用类似于以下内容的代码。

Sub makeText()
    Dim rs1 As Recordset, rs2 As Recordset
    Dim oFSO As Scripting.FileSystemObject, oFile As Scripting.TextStream
    Dim txtLine As String

    Set oFSO = New Scripting.FileSystemObject

    oFile = oFSO.CreateTextFile("FileName.csv")

    Set rs1 = CurrentDb.OpenRecordset("baseQuery")

    Do Until rs1.EOF
        txtLine = rs1!OrderNumber.Value

        Set rs2 = CurrentDb.OpenRecordset("innerQuery")

        Do Until rs2.EOF
            txtLine = txtLine & "," & rs2!itemDesc.Value
            rs2.MoveNext
        Loop

        oFile.WriteLine txtLine

        rs1.MoveNext
    Loop

    oFile.Close

End Sub
于 2013-06-30T13:20:14.437 回答