Thema Datum  Von Nutzer Rating
Antwort
Rot Seltsame automatische Änderungen im Dictionary
05.03.2018 14:43:21 Tim
NotSolved
05.03.2018 17:13:03 Gast78686
NotSolved

Ansicht des Beitrags:
Von:
Tim
Datum:
05.03.2018 14:43:21
Views:
1176
Rating: Antwort:
  Ja
Thema:
Seltsame automatische Änderungen im Dictionary

Hallo Zusammen,

für die Auswertung von div. Excel Listen habe ich ein VBA Makro geschrieben welches die unterschiedlichen Inhalte mit Hilfe von Klassen strukturiert und dann auswertet. Es gibt drei Klassen die folgende Objekte darstellen: Aufträge, Baugruppen und Teile. Ein Teil kann immer nur einmal vorkommen. Eine Baugruppe kann mehrere unterschiedliche Teile enthalten und ein Auftrag auch mehrere Baugruppen. Das Ganze ist dann mit Hilfe von Dictionaries verschachtelt.

Eine der Auswertungen ("Teilenummern_kumulieren") kumuliert alle identischen Teile und erstellt eine Liste. Während der Kumulierung passiert allerdings etwas sehr kurioses: der kumulierte Wert ersetzt immer einen Wert im übergebenen Dictionary. Das Dictionary, in dem Code unten als "dictAuftraegeTmp" benannt, wird aber als "ByVal" übergeben. Eine Änderung in der ursprünglichen Prozedur dürfte gar greifen. Darüber hinaus habe ich zum testen das Dictionary vor der Kumulierung kopiert um einen Fehler von ByRef und ByVal auszuschließen. Nach der Prozedur sind allerdings beide Dictionaries verändert....

Zeilen 370 und 430 liefern den Wert 8. Die Zeilen 480 und 520 liefern beide den 596.

340       Set objAuftrag = dictAuftraege("8586")
350       Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
360       Set objTeil = objBaugruppe.Teile("7033493")
370       Debug.Print "Check 1: " & objTeil.BA_Bedarf

          ' Teilenummern kumulieren (mdlTeilenummern_kum)
380       StatusAnzeige "Teilenummern kumulieren", 8 / intGesamtanzahlStatus
390       Set dictAuftraegeTmp = dictAuftraege
400       Set objAuftrag = dictAuftraegeTmp("8586")
410       Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
420       Set objTeil = objBaugruppe.Teile("7033493")
430       Debug.Print "Check temp 1: " & objTeil.BA_Bedarf

440       Call Teilenummern_kumulieren(dictAuftraegeTmp, dictBemerkungen, lngAnzahlTeilenummern)
          
450       Set objAuftrag = dictAuftraegeTmp("8586")
460       Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
470       Set objTeil = objBaugruppe.Teile("7033493")
480       Debug.Print "Check temp 2: " & objTeil.BA_Bedarf

490       Set objAuftrag = dictAuftraege("8586")
500       Set objBaugruppe = objAuftrag.Baugruppen("30-234-01-06")
510       Set objTeil = objBaugruppe.Teile("7033493")
520       Debug.Print "Check 2: " & objTeil.BA_Bedarf

 

Ich bin etwas ratlos warum das so ist und was ich noch versuchen kann. Hat jemand von euch eine Idee?

Danke und Gruß,

Tim


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Seltsame automatische Änderungen im Dictionary
05.03.2018 14:43:21 Tim
NotSolved
05.03.2018 17:13:03 Gast78686
NotSolved