vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: For Each ... Next 
Autor: Andi W
Datum: 03.09.04 14:01

Ok, hier der wesentliche Extrakt. Es gibt eine Klasse mit einer Collection Namens Oberbauschichten
Option Explicit
Private mColOberbauschichten As Collection
die sich wie folgt initialisiert
Private Sub Class_Initialize()
    Set mColOberbauschichten = New Collection
End Sub
Es gibt unter anderen die Standard Eigenschaften und Funktionen Add
Public Function Add( _
    Optional Bauklasse As Variant, _
    Optional BauweiseTafel As Variant, _
    Optional Bauweisezeile As Variant, _
    Optional Dicke As Variant, _
    Optional Material As Variant, _
    Optional sKey As String) As Oberbauschicht
 
    '//neues Objekt erstellen
    Dim objNewMember As Oberbauschicht
    Set objNewMember = New Oberbauschicht
 
    '//Initialisierung
    If IsMissing(Bauklasse) Then Bauklasse = 6
    If IsMissing(BauweiseTafel) Then BauweiseTafel = 0
    If IsMissing(Bauweisezeile) Then Bauweisezeile = 0
    If IsMissing(Dicke) Then Dicke = 0
    If IsMissing(Material) Then Material = 0
 
    '//die Eigenschaften festlegen, die der Methode übergeben werden
    With objNewMember
        .Bauklasse = Bauklasse
        .BauweiseTafel = BauweiseTafel
        .Bauweisezeile = Bauweisezeile
        .Dicke = Dicke
        .Material = 0
        .Index = mColOberbauschichten.Count + 1
    End With
 
    If Len(sKey) = 0 Then
        mColOberbauschichten.Add objNewMember
    Else
        mColOberbauschichten.Add objNewMember, sKey
    End If
 
    'das erstellte Objekt zurückgeben
    Set Add = objNewMember
    Set objNewMember = Nothing
 
End Function
count
Public Property Get Count() As Long
     Count = mColOberbauschichten.Count
End Property
Item
Public Property Get Item(vntIndexKey As Variant) As Oberbauschicht
  Set Item = mColOberbauschichten(vntIndexKey)
End Property
NewEnum
Public Property Get NewEnum() As IUnknown
    Set NewEnum = mColOberbauschichten.[_NewEnum]
End Property
und Remove
Public Sub Remove(vntIndexKey As Variant)
     mColOberbauschichten.Remove vntIndexKey
End Sub
Dazu gibt es eine Übergeordnete Klasse Namens Oberbau, der die Oberbauschichten als Collection zugeordnet wird. Deklariert wie folgt:
Option Explicit
Private mColOberbauschichten As Oberbauschichten
mit entsprechenden Property Get/Set
Public Property Get Oberbauschichten() As Oberbauschichten
    If mColOberbauschichten Is Nothing Then
        Set mColOberbauschichten = New Oberbauschichten
    End If
    Set Oberbauschichten = mColOberbauschichten
End Property
Public Property Set Oberbauschichten(vData As Oberbauschichten)
    Set mColOberbauschichten = vData
End Property
Dann gibt es eine weitere Eigenschaft, bei deren Veränderung(Let) der neue Wert auf die gleiche Eigenschaft jedes Mitglieds der Oberbauschichten übertragen werden soll. Entsprechende Member wurden mittels Add zum Zeitpunkt des Fehlers definitv schon angelegt. Das habe ich mit .Count überprüft und somit ist die Klasse auch definitiv initialisiert. Der Fehler tritt in der Zeile "For Each OberbauX in mColOberbauschichten" auf.
Public Property Let BauweiseTafel(ByVal vData As Integer)
 
    '//Property aktualisieren
    mvarBauweiseTafel = vData
 
    '//BauklasseTafel auf Oberbauschichten übertragen
    Dim OberbauschichtX As Oberbauschicht
 
    If Not mColOberbauschichten Is Nothing Then
        For Each OberbauschichtX In mColOberbauschichten
            OberbauschichtX.BauweiseTafel = vData
        Next
    End If
 
End Property
Mit gleicher Technik habe ich das bei einigen anderen Klassen auch gemacht und dort funzt es überall. Ich suche schon seit 6 Stunden...... und finde nichts..."umpf!"

Danke für die Mühe....
A.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
For Each ... Next819Andi W03.09.04 11:42
Re: For Each ... Next439ModeratorDieter03.09.04 12:40
Re: For Each ... Next488Andi W03.09.04 14:01
Re: For Each ... Next442ModeratorDieter03.09.04 14:20
Re: For Each ... Next393Andi W03.09.04 14:36
Re: For Each ... Next419Andi W03.09.04 15:16
Re: For Each ... Next407spike2403.09.04 14:59
Re: For Each ... Next406Andi W03.09.04 15:16
Re: For Each ... Next414Andi W03.09.04 16:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel