データベースから取得した値をNodeに追加するには?

解決


こあら  2007-06-18 01:55:39  No: 136738

初めて質問させていただきます。

データベースから取得した値を、子ノードに追加するにはどうしたらよいのでしょうか。
自分なりに考えて、以下のような処理を行ったのですが、
「コレクション内の固有のキーではありません」というメッセージが表示されてしまいます。

Private Sub Form_Load()
    Dim nodx            As Node
    Dim Ko              As String      '子コード
    Dim Konm            As String      '子の名前
    Dim rs              As DAO.Recordset

    '子ノードの値を取得
    SQ$ = "SELECT A.Nendo,A.Oya, A.Ko, A.Konm "
    SQ$ = SQ$ & "From Tb_CKaim A "
    SQ$ = SQ$ & "WHERE (A.Oya='60_');"
    
    'レコードセット
    Set rs = db.OpenRecordset(SQ$, dbOpenDynaset)

    'Nodeオブジェクトを追加する。
    '親ノードを追加
    Set nodx = Me.treeview1.Nodes.Add(, , "60_", "親ノード")
    
    
    '子ノードを追加
    Do While Not rs.EOF
        Ko = rs!Ko & "_"
        Konm = rs!Konm
        Set nodx = Me.treeview1.Nodes.Add("60_", tvwChild, (Ko), (Konm))
    Loop

    Set rs = nothing

開発環境は以下の通りです。
  OS:Windows2000
  言語:VB6.0
  データベース:SQLServer

ご存知の方がいらっしゃいましたら、ご回答の程よろしくお願い致します。


魔界の仮面弁士  2007-06-18 02:44:27  No: 136739

> 「コレクション内の固有のキーではありません」というメッセージが表示されてしまいます。
Set nodx = Me.TreeView1.Nodes.Add(, , "KEY", "Text1")
Set nodx = Me.TreeView1.Nodes.Add(, , "KEY", "Text2") '★エラー
のように、同じキーを使おうとすると、そのようなエラーになります。

『絶対に重複しないキーを使う』か、または『キーを指定しない』ようにしてください。

キーを指定しなかった場合でも、ノードそのものを使って
親子関係を構築することができます。

Set nodx = Me.TreeView1.Nodes.Add(Text:="親ノード")
Me.TreeView1.Nodes.Add nodx, tvwChild, , "子ノード1"
Me.TreeView1.Nodes.Add nodx, tvwChild, , "子ノード2"
Me.TreeView1.Nodes.Add nodx, tvwChild, , "子ノード3"
nodx.Expanded = True


こあら  2007-06-18 03:13:20  No: 136740

魔界の仮面弁士様、さっそくご回答いただいてありがとうございました!

ご指示いただいた方法で、目的のツリーを作成することができました。
この方法で処理を進めていきたいと思います。

ご教授大変感謝致します!
また機会がありましたら、よろしくお願い致します。


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




  


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