0

現在、Access(2010)複数の注文アイテムとGROUPING BY注文番号を取得するクエリを使用しています。たとえば、下にアイテムcustomerを注文したかもしれませんが、私のクエリでは、これらの個々のアイテムすべてを 1 つの行にグループ化し、各アイテムをそれぞれの列に配置します。目的は、クエリがサードパーティ ソフトウェアにフォーマット でエクスポートされるため、個々の注文番号が 1 行に含まれていることです。5order number 123.csv

複数のレコード/アイテムを組み合わせているため、説明フィールドが文字に基づいて切り捨てられるときに問題が発生しています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

それをクエリとして書かないでください。複雑すぎて気にすることはできませんが、VBA と直接テキスト アクセスを使用すると非常に簡単です。Microsoft Scripting Runtime (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 に答える
0

以下は、私たちが使用していたサンプルデータベースの写真です。必要なすべての情報を備えたパーツと、ベンダーと一致するパーツが含まれています。使用されるクエリは、部品がベンダー部品と一致するすべての行を表示します。
ここに画像の説明を入力

[AskMeForMyPart] などを角かっこで囲んで、その特定の部分に基づいてクエリをプルさせることもできます。 ここに画像の説明を入力ここに画像の説明を入力

于 2013-07-01T19:27:16.677 に答える