連結させたDataGridから複数行の値を抽出

解決


ヨシノ  2006-01-28 03:35:18  No: 129906

開発環境VB6.0  ACCESS2000  WindowsXP

DataGrid1とDataGrid2があります。

accessで作ったTBLグループとTBLメンバーというテーブルから
下記のSQLで連結させてDataGrid1の中のIDをクリックするとそれに連動してDataGrid2の一覧もIDと連動して表示が変わるのですが、その変わった
DataGrid2の中のメールアドレス全てをテキスト1.textに出したいのですが、
どういった処理をすれば良いのか分かりません。

    SQL = "SHAPE {SELECT * FROM TBLグループ} " _
            & "APPEND ({SELECT * FROM TBLメンバー} AS メンバー " _
            & "RELATE ID TO ID)"

    Set rs = New ADODB.Recordset
            rs.Open SQL, Con, adOpenStatic, adLockOptimistic
            rs.StayInSync = True

    Set DataGrid1.DataSource = rs
    
    Set DataGrid2.DataSource = rs.Collect("メンバー")

    
    Dim str_mailadr As String

    Do Until Rs.EOF

〜〜〜〜ここの処理が分かりません〜〜〜

    Loop
  
    テキスト1.Text = str_mailadr

ちなみに、TBL配信先グループの中のIDと連結させているTBLメンバーの
メールアドレスはTBLグループのID一つにつき、10件位です。

申し訳ありませんが、よろしくお願いします。


特攻隊長まるるう  2006-02-01 05:37:02  No: 129907

SQL文を見るといわゆる階層化レコードセットのようですが。
過去ログ検索『階層』とかすれば参考になるコードがあるのでは?


ヨシノ  2006-02-02 03:51:33  No: 129908

ご助言ありがとうございます。
過去ログを検索してみましたが、初心者なもので自分の技術では見つけられませんでした。
なので、下記コードでDataGrid2のメールアドレスをクリックすると一つずつTAB区切りでテキスト1に出す事に成功しました。

Private Sub DataGrid2_Click()
    DataGrid2_flg = 1
End Sub

Private Sub DataGrid2_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
    
    Dim i, j As Integer
    Dim str_mailadr As String
   
        If DataGrid2_flg = 0 Then
            Exit Sub
                End If
                    DataGrid2_flg = 0
            If txt配信先.Text = "" Then
        txt配信先.Text = DataGrid2.Columns(1).Text
    Else
        txt配信先.Text = txt配信先.Text & vbTab & DataGrid2.Columns(1).Text
                End If
                
End Sub

解決したわけではなかったのですが、これで解決にさせていただきます。


ヨシノ  2006-02-02 03:52:15  No: 129909

すいません、解決にチェック入れてませんでした・・・


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加