Hallo an alle :)
bin wieder mal hier seit langen und hab schon wieder eine Frage.
Ich habe ein Treeview Steuerelement erstellt in dem ich Kunden Nummern darstelle und deren dazugehörigen Rechnungen anzeige.
Soweit so gut.
Nun habe ich zwei Unterformulare erstellt eines subfrmKunden (alle Daten aus der tblKunden) und eines subfrmRechnungen (alle Daten aus tblRechnungen)
Dazu zwei textboxen txtKunden und txtRechnung
Die subfrmKunde
Verknüpfen nach txtKunden
Verknüpfen von Kun_id
SubfrmRechnung
Verknüpfen nach txtRechnung
Verknüpfen von Rech_id
Private Sub tvwKundenRechnung_Click()
Dim nodSelected As MSComctlLib.Node ' a variable for the currently selected node
Set nodSelected = Me.tvwKundenRechnung.SelectedItem ' get the currently selected node
If nodSelected.Key Like "Rech=*" Then ' are we on a product node
Me.txtRechnung = Mid(nodSelected.Key, 6)
Me.subfrmRechnung.Visible = True
Me.txtKunden = Null
Me.subfrmKunde.Visible = False
ElseIf nodSelected.Key Like "FirmenName=*" Then ' are we on a category node
Me.txtKunden = Mid(nodSelected.Key, 5)
Me.subfrmKunde.Visible = True
Me.txtRechnung = Null
Me.subfrmRechnung.Visible = False
Else ' somehow this is neither a category or product node
Me.txtRechnung = Null
Me.subfrmRechnung.Visible = False
Me.txtKunden = Null
Me.subfrmKunde.Visible = False
End If
End Sub
Das ist mein Code den ich aus dem Internet habe und auf meine form angepasst habe.
Wenn ich nun auf Rechnungen also den child Node anklicke sehe ich wie es auch sein sollte die subfrmRechnung und all die dazugehörigen Infos.
Also ich klicke an die Rechnungsnummer dann erscheint die Rechnungsnummer im txtRechnung und diese wiederum zeigt mir die subfrmRechnung an.
Wenn ich nun die KundenNummer anklicke dann zeigt es im txtKunde enFirmenName=101 an und die subfrmKunde wird dann nicht angezeigt.
Wenn ich aber die KundenNummer in das txtKunden selbst eingebe dann zeig mir die subfrm das richtige an.
Habe den Code schon einige male durchgeschaut und verglichen komme aber selbst leider nicht drauf wie es funktioniert.
Wäre Euch um eine Hilfe sehr dankbar.
Lg Albert
Hallo,
auf den ersten und auf den zweiten Blick scheint der Code schon in Ordnung zu sein.
Hast du 'hinter' dem txtKunden irgendwelchen Code laufen?
Ansonst kann ich nur vermuten dass vielleicht das UF-Objekt in deinem HF anders heißt als 'subfrmKunde'
Hallo Peter,
vielen Dank für Deine Antwort hab ich gar nicht gesehen!
Na ich hatte ein problem mit dem code das ich ausbessern musste :)
Jetzt funktioniert er ggg:)
Aber da hab ich schon wieder eine neue Frage und zwar würde ich jetzt gern eine weitere Tabelle hinzufügen..
Hab auch schon probiert aber hatte noch kein Glück
Private Sub CreateBillNodes()
Dim rst As DAO.Recordset ' recordset for product data
' open the recordset for products
Set rst = CurrentDb.TableDefs!tblRechnung.OpenRecordset
' loop through the rows in the recordset
rst.MoveFirst
Do Until rst.EOF
Me.tvwKundenRechnung.Nodes.Add Relationship:=tvwChild, _
Relative:="FirmenName=" & CStr(rst!Kun_id_f), _
Text:=rst!RechNummer, Key:="Rech=" & CStr(rst!Rech_id)
rst.MoveNext
Loop
End Sub
Dieser Code ist für die zweite Tabelle die ich angefügt habe also tblKunde auf tblRechnungen.
Nun möchte ich tblRechDetails noch dazugeben.
So hätte ich es probiert aber leider kein Glück was ist den da falsch oder was habe ich vergessen??
Private Sub CreateInDetailNodes()
Dim rst As DAO.Recordset ' recordset for product data
' open the recordset for products
Set rst = CurrentDb.TableDefs!tblRechDetails.OpenRecordset
' loop through the rows in the recordset
rst.MoveFirst
Do Until rst.EOF
Me.tvwKundenRechnung.Nodes.Add Relationship:=tvwChild, _
Relative:="RechNummer=" & CStr(rst!Rech_id_f), _
Text:=rst!RechNr, Key:="Rechnungsbetrag=" & CStr(rst!Rech_Det_id)
rst.MoveNext
Loop
' rst.Close
' Set rst = Nothing
End Sub
Leider kenn ich mich noch nicht so gut aus mit treeview codes drum steh ich etwas an.
Vielen Dank für Eure Hilfe
Lg Albert
Hallo Albert,
ich fürchte, da kann ich dir im Moment gar nicht viel helfen, ich müsste das selbst nachstellen.
Was mir aber auffällt ist - die Rechnungsdetails sind doch eine 'Untergruppe' der Rechnungen, welche aber scheinbar bereits eine 'Untergruppe' der Firmen sind - also wäre das praktisch ein 'tvwChildChild'
Gibt es da keine tiefere Hierarchie zum angeben?
Wenn ich deinen Code richtig interpretiere versuchst du nämlich die Rechnungsdetails direkt an die Kunden zu binden was natürlich kein gutes Ergebnis bringen wird.
ZitatNa ich hatte ein problem mit dem code das ich ausbessern musste
...möchtest du uns das verraten? ;D
Hallo Peter,
danke für Deine Antwort!!
Ja es wäre dann wie Du sagst ein tvwChildChild wird den das so geschrieben??
Den es ist schon so wie Du sagst das es noch eine Unterhirachie von Rechnungen ist.
Vieleicht probiere ich es ja dann mit tvwChildChild oder??
Na ja nicht so schlimm hab ja noch einiges zu tun :)
Das problem war folgendes
' Me.txtKunden = Mid(nodSelected.Key, 5) ........vorher
Me.txtKunden.Value = nodSelected.Text ..........nachher
Danke aber erstmal wieder!!
Ciao
Hallo,
also tvwChildChild war ein von mir frei gewähltes Synonym für das, was es darstellen sollte ... ;) :D ;D
Da müsste die Hilfe zum Treeview-Steuerelement mehr Auskunft dazu liefern, wie es mit Unter-Untergruppierungen zu betreiben ist.
vielleicht hilft dir aber auch schon das weiter:
http://www.developerfusion.com/article/77/treeview-control/2/ (http://www.developerfusion.com/article/77/treeview-control/2/)
Danke Peter!!
Werde es mir gleich mal zu gemüte führen ;D
Vielen Dank!!!