もし、やりたいことが
指定したjanに該当するデータの新しい順にならべて2番目のデータを取得して、それをエクセルシートに貼り付けたい。
ということなら、下記のコードでいいでしょう。
Public Sub Sample()
Dim daoCn As dao.Database 'Databaseオブジェクトを扱う変数(DB)を宣言
Dim daoRs As dao.Recordset 'Recordsetオブジェクトを扱う変数(RS)を宣言
Dim strSQL As String
Dim i2 As Long
strFileName = "出勤 - コピー.accdb"
Set daoCn = DBEngine.Workspaces(0).OpenDatabase("C:\Users\tasuk\Desktop\VBA\経理\出勤\" & strFileName)
jan = "1000000000016"
i2 = 2
Cd = "個人データ.氏名,出勤データ.月日,出勤データ.番号"
Tn = "個人データ INNER JOIN 出勤データ ON 個人データ.jan=出勤データ.jan"
Sc = " 出勤データ.jan = '" & jan & "'" '検索条件の確定
strSQL = "SELECT TOP " & i2 & Cd & " FROM " & Tn & " WHERE " & Sc & " ORDER BY 出勤データ.月日 DESC" '降順でi2番目までのデータを取得
strSQL = "SELECT TOP 1 * FROM (" & strSQL & ") ORDER BY 出勤データ.月日" '上記のデータから昇順で1番目のデータを取得(結局降順でi2番目のデータ)
Set daoRs = daoCn.OpenRecordset(strSQL, dbOpenDynaset) 'DAOレコードセットオブジェクトを作成
Worksheets(4).Range("A1").CopyFromRecordset daoRs
daoRs.Close
End Sub
通報 ...