1

Excel クエリに関する知識が明らかに不足しています。各ワーカーの注文した記事を含むカスタム ラベルを印刷する必要があります。

私の例では、2 つのテーブルがあります。

      [tabWorkers]
      ID        Name
      1         John
      2         Patrick


      [tabOrders]
      ID        Article   Amount
      1         Shoe      2
      1         T-Shirt   5
      2         T-Shirt   3

私はtabWorkerをループしています。それぞれの作業について、私のtabOrdersテーブルをクエリしたいと思います: SELECT * FROM tabOrders WHERE ID=1

私が欲しいものの構文例:

    Dim row As Range 
    For Each row In [tabWorkers].Rows 
      myID = row.Columns(row.ListObject.ListColumns("ID").Index).Value

      Write( row.Columns(row.ListObject.ListColumns("Name").Index).Value & " has ordered...<p>" )

      For Each (Article, Amount) In "SELECT * FROM tabOrders WHERE ID ='" & myID & "'")
        Write( Amount & " x " & Article & "<br>" )
      Next

    Next 
4

1 に答える 1

0

以前にこのソリューションを大規模なデータセットで使用したことがありますが、タブのデータが適切に定義されている限り、うまく機能します

基本的に ADO への参照を設定し、ワークシートへの接続を定義します。各ワークシート名の末尾にある $ を覚えておいてください:)

Dim cn as ADODB.Connection
Dim rs as ADODB.Recordset
Dim strSQL as String

Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name

cn.Open

strSQL = "Select Distinct [Name] From [tabWorkers$] Order by [Name]"

Set rs = New ADODB.Recordset
rs.Open cn, strSQL, adOpenStatic, adLockReadOnly

'// then use the recordset
for each .......

rs.Close
于 2013-01-08T11:07:47.173 に答える