

Excel VBAのADODBでSheetの情報をSELECT文で取得しています。

もとのデータは以下の通りです。  
[TableA]  
![画像の説明をここに入力](https://i.stack.imgur.com/BiiZU.png)

[TableB]  
![画像の説明をここに入力](https://i.stack.imgur.com/U1jB8.png)

そしてコードは以下のとおりです。

[code]

    Dim myCon As Object
        Dim myRS As Object
        Set myCon = CreateObject("ADODB.Connection")
        Set myRS = CreateObject("ADODB.Recordset")
    
    
         With myCon
              .Provider = "Microsoft.ACE.OLEDB.12.0"
              .Properties("Extended Properties") = "Excel 12.0;HDR=YES;IMEX=1"
              .Open ThisWorkbook.FullName
         End With
         myRS.Open "SELECT A.ID, A.Name, B.CountryName FROM ([TableA$A1:C10] AS A LEFT JOIN [TableB$A1:B10] AS B ON A.CountryID = B.CountryID)", myCon, 1, 1
         Dim myVar As Variant
         'myVar = myRS.GetRows
         'myVar = WorksheetFunction.Transpose(myVar)
         Worksheets("Result").Cells.Clear
         Worksheets("Result").Range("A1").CopyFromRecordset myRS
    
[/code]

ここでご質問したいことは  
実行しているSELECT分の結果にFROM句で指定しているもとのデータの行番号を表示したいです。  
以下の結果で「TableAの行番号」、「TableBの行番号」と記載されている列に行番号がほしいです。

どのようにするか、またそもそも実現できるのかご教授ください。  
SQL ServerではROW_NUMBER()を使うことができますが、VBAのADODBではどうやるか…

また用途としては、内容に不備があった場合に「どの行」に不備があるかを通知したいためです。  
よろしくおねがいします。

[![画像の説明をここに入力](https://i.stack.imgur.com/FbUxF.png)](https://i.stack.imgur.com/FbUxF.png)


CC BY-SA 4.0
2019-12-08T00:32:34.590
61230
2019-12-10T06:58:52.287
2019-12-08T07:02:35.577
12388
12388
question
vba
ADODBによるSelect文で行番号も取得したい


SQLの中にTABLE AとBそれぞれサブクエリをかませて仮に行番号用のIDを振る形はいかがでしょうか  
AccessなどRow_Number()を使用できないDBでもサブクエリを作成して行番号を取得するためのSQLなどはサンプルが検索できます。  
ただ、サブクエリ乱発は可読性は落ちると思います。

自分ならば 一旦 バッファ用のシートにSelect * from で全件出してdictionaryなどで結合すると思います。


CC BY-SA 4.0
2019-12-10T06:58:52.287
61294
2019-12-10T06:58:52.287
36498
61230
answer