Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
1つのフィールド全てのレコードを、連結して変数にしたい
投稿日時: 21/03/28 18:09:48
投稿者: mugiro7

テーブル1のCODEフィールド全てのレコードを連結し、間に「 ‖ 」を付加し変数にしたい。
 
テーブル1
ID CODE
1 1001
2 2001
3 1002
4 1003
 
変数=1001 ‖ 2001 ‖ 1002 ‖ 1003
レコード数は、1〜3000件で変動します。
 
よろしくお願いします。

回答
投稿日時: 21/03/28 22:29:57
投稿者: よろずや

<前略>
Do Until rec.EOF
ReDim strary(UBound(strary) + 1)
strary(UBound(strary)) = rec.Fields("CODE").Value
rec.MoveNext
Loop
変数 = Join(strary, " ‖ ")
<後略>
 
みたいな感じで。試してないけど。

投稿日時: 21/03/30 17:24:11
投稿者: mugiro7

よろずや様
ありがとうございます。
教えてください。
 
Preserve を追加したところ、連結できたのですが、
配列(0)が、"" になり、変数の先頭に区切り記号|が入ってしまいます。
 
配列(0)にrecの一レコード目がセットしたいのですが、方法がわかりません。
 
ReDim strary(0)
Do Until rec.EOF
ReDim Preserve strary(UBound(strary) +1)
strary(UBound(strary))=rec.Fields("CODE").Value
rec.MoveNext
Loop
hensu = Join(strary," | ")
 
どうぞ、よろしくお願いいたします。
[/quote]

回答
投稿日時: 21/03/30 22:42:56
投稿者: よろずや

ReDim strary(0)

Dim strary() As String
strary = Split("")
 
で出来たはず。

回答
投稿日時: 21/03/31 10:09:29
投稿者: hatena
投稿者のウェブサイトに移動

変数に直接追加していけばいいのでは。
 

    Dim 変数 As String
    Do Until rec.EOF
        変数 = 変数 & " ‖ "  & rec.Fields("CODE").Value
        rec.MoveNext
    Loop
変数 = Mid(変数, 4)

 
あるいは、ADOのGetStringを使うとか。(参照設定必用)
 
    Dim 変数 As String
    With New ADODB.Recordset
        .Open "SELECT ID FROM テーブル1", CurrentProject.Connection
        変数 = .GetString(adClipString, , "", " ‖ ")
    End With

投稿日時: 21/04/02 07:16:49
投稿者: mugiro7

よろずや様
hatena様
おかげさまで理解できました。
ありがとうございました。