> 写真 700 3 A2 A8,A9,A11
は
写真 700 4 A2 A8,A9,A11
ですよね。
単純に管理番号でソートすると上記は
写真 700 4 A11 A2,A8,A9 となるので、
頭にスペース付けて6文字に統一して処理している例となります。
(A2 と A11 では、A11 の方が小さい)
(見難くなってますが、RIGHTの右側にある空白は5文字分の空白です)
(テーブル名は「T_T6」としています)
標準モジュールに以下作成
Public Function KanriNoEtc(sName As String, vPrice As Variant) As String
Dim rs As New ADODB.Recordset
Dim sTmp As String
Dim iCount As Long
sTmp = ""
iCount = 0
rs.Source = "SELECT * FROM T_T6 WHERE [名前]='" & sName & "' AND [値段]=" & vPrice & " ORDER BY RIGHT(' ' & [管理番号],6);"
rs.Open , CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
While (Not rs.EOF)
If (iCount > 0) Then
sTmp = sTmp & "," & rs("管理番号")
End If
iCount = iCount + 1
rs.MoveNext
Wend
If (Len(sTmp) > 0) Then
sTmp = Mid(sTmp, 2)
End If
KanriNoEtc = sTmp
End Function
※ ADOで書いていますがDAOでもお好きな方を
レコードを得るSQL
SELECT T_T6.名前, T_T6.値段, Count(*) AS 個数, Replace(Min(RIGHT(" " & T_T6.管理番号,6))," ","") AS 管理番号, KanriNoEtc(T_T6.名前,T_T6.値段) AS その他の管理番号
FROM T_T6
GROUP BY T_T6.名前, T_T6.値段
ORDER BY Min(RIGHT(" " & T_T6.管理番号,6));
※ 単純に確認するのであれば、クエリのSQLビューに張り付けて
※ データ量が多くなると遅いと思います
組み込む時には、現Excel処理前に行っていたレコード抽出部を上記に変更し
.Cells(3+CntGyo,1)=rst![名前]
.Cells(3+CntGyo,2)=rst![値段]
.Cells(3+CntGyo,3)=rst![個数]
.Cells(3+CntGyo,4)=rst![管理番号]
.Cells(3+CntGyo,5)=rst![その他の管理番号]
とします。
お礼
返事を今まで申し訳ございません。 まだ、動作確認をしておりませんが 後ほど、ptを差し上げたいと思いますのでお待ちください。