初めて質問させていただきます。
データベースから取得した値を、子ノードに追加するにはどうしたらよいのでしょうか。
自分なりに考えて、以下のような処理を行ったのですが、
「コレクション内の固有のキーではありません」というメッセージが表示されてしまいます。
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
ご存知の方がいらっしゃいましたら、ご回答の程よろしくお願い致します。
> 「コレクション内の固有のキーではありません」というメッセージが表示されてしまいます。
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
魔界の仮面弁士様、さっそくご回答いただいてありがとうございました!
ご指示いただいた方法で、目的のツリーを作成することができました。
この方法で処理を進めていきたいと思います。
ご教授大変感謝致します!
また機会がありましたら、よろしくお願い致します。
| ツイート |
|