none
TreeView - Key

    Frage

  • Hallo einmal eine frage zum TreeView in AC2003

    Ich fülle ein TreeView aus EINER Tabelle und möchte später mit Doppelklick den Key Wert in einen Datensatz schreiben

    Funktioniert auch mit dem nachvolgendem Code nur verstehe ich diesen bereich nicht
    so geht es:

            If lngWarengruppe = 0 Then
                Set objNode = objTreeview.Nodes.Add(, , "w" & rst!Warengruppe, rst!WarengruppeBezeichnung)
            Else
                Set objNode = objTreeview.Nodes.Add(objParentNode.Key, tvwChild, "w" & rst!Warengruppe, rst!WarengruppeBezeichnung)
            End If

    So geht es Nicht

            If lngWarengruppe = 0 Then
                Set objNode = objTreeview.Nodes.Add(, , rst!Warengruppe, rst!WarengruppeBezeichnung)
            Else
                Set objNode = objTreeview.Nodes.Add(objParentNode.Key, tvwChild,  rst!Warengruppe, rst!WarengruppeBezeichnung)
            End If

    Option Compare Database
    Option Explicit
    Dim objTreeview As MSComctlLib.TreeView
    
    Private Sub Form_Load()
      Set objTreeview = Me.ctlTreeview.Object
      TreeviewRekursivFuellen , 0
    End Sub
    
    Private Sub TreeviewRekursivFuellen(Optional objParentNode As MSComctlLib.Node, Optional lngWarengruppe As Long)
      
      Dim rst As DAO.Recordset
      Dim objNode As MSComctlLib.Node
    
      If lngWarengruppe = 0 Then
        Set rst = CurrentDb.OpenRecordset("SELECT tblWarengruppe.* FROM tblWarengruppe WHERE ZuWarengruppe Is Null ORDER BY tblWarengruppe.Ausdrucksfolge")
      Else
        Set rst = CurrentDb.OpenRecordset("SELECT tblWarengruppe.* FROM tblWarengruppe WHERE ZuWarengruppe = " & lngWarengruppe & " ORDER BY tblWarengruppe.Ausdrucksfolge")
      End If
    
      Do While Not rst.EOF
        If lngWarengruppe = 0 Then
          Set objNode = objTreeview.Nodes.Add(, , "w" & rst!Warengruppe, rst!WarengruppeBezeichnung)
        Else
          Set objNode = objTreeview.Nodes.Add(objParentNode.Key, tvwChild, "w" & rst!Warengruppe, rst!WarengruppeBezeichnung)
        End If
    
        TreeviewRekursivFuellen objNode, rst!Warengruppe
        rst.MoveNext
      Loop
      Set objNode = Nothing
      rst.Close
      
      Set rst = Nothing
        
      For Each objNode In ctlTreeview.Nodes
        objNode.Expanded = True
      Next
    
    End Sub
    
    Private Sub ctlTreeview_DblClick()
      With Me.ctlTreeview.SelectedItem
        If .Expanded = True Then
          .Expanded = False
         Else
          .Expanded = True
        End If
      End With
     If Not ctlTreeview.SelectedItem Is Nothing Then
      MsgBox "Doppelklick auf " & objTreeview.SelectedItem.Key
     End If
    End Sub
    
    Donnerstag, 13. Januar 2011 12:52

Antworten

  • hi,

    Funktioniert auch mit dem nachvolgendem Code nur verstehe ich diesen bereich nicht
    so geht es:

    Steht in der Hilfe. Der Key darf nicht mit einer Ziffer beginnen.

    btw, besser:

    Private Sub ctlTreeview_DblClick()
      With ctlTreeview
        If Not .SelectedItem Is Nothing Then
          .SelectedItem.Expanded = Not .SelectedItem.Expanded
          MsgBox "Doppelklick auf " & .SelectedItem.Key
        End If
      End If
    End Sub

    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    • Als Antwort markiert MCDPone Donnerstag, 13. Januar 2011 14:18
    Donnerstag, 13. Januar 2011 13:18
    Moderator