Problem mit Properties

16/11/2007 - 17:50 von Klaus Ketelaer | Report spam
Hallo zusammen,

irgendwie bin ich heute voll von der Rolle und bekomme nix
gebacken;-((

Noch nicht mal den richtigen Suchbegriff für Google...

Mein Problem:


Ich habe ein Klasse mit folgendem Inhalt:

Public Type AbsenderDecl
Name As String
Bank As String
Konto As String
Bankleitzahl As String
End Type
Private m_Absender As AbsenderDecl

Public Property Get Absender() As AbsenderDecl
Absender = m_Absender
End Property

Public Property Let Absender(New_Absender As AbsenderDecl)
m_Absender = New_Absender
End Property



Dieser Klasse möchte ich nun Daten
übergeben, was ich mit

With Überweisung.Absender
.Name = "Ketelaer,Sandkull 92,47445"
.Bank = "Sparkasse am Niederrhein"
.Bankleitzahl = "35450000"
.Konto = "123456789"
End With

versuche.

Weil das nicht funktioniert, bei der Zuweisung wird immer nur das
Property Get aufgerufen, habe ich es mit

Dim a As AbsenderDecl

a = Überweisung.Absender
a.Name = "Ketelaer,Sandkull 92,47445"
a.Bank = "Sparkasse am Niederrhein"
a.Bankleitzahl = "35450000"
a.Konto = "123456789"
Set Überweisung.Absender = a

versucht. Da wird die Zuweisung am Ende beanstandet.


Wie mache ich das nun richtig?

Besten Dank

Gruß

Klaus
 

Lesen sie die antworten

#1 Peter Götz
16/11/2007 - 19:02 | Warnen spam
Hallo Klaus,

Ich habe ein Klasse mit folgendem Inhalt:

Public Type AbsenderDecl
Name As String
Bank As String
Konto As String
Bankleitzahl As String
End Type



Absender nicht als Type, sondern als Objekt (Klasse)
deklarieren! Siehe Code unten:

Private m_Absender As AbsenderDecl

Public Property Get Absender() As AbsenderDecl
Absender = m_Absender
End Property

Public Property Let Absender(New_Absender As AbsenderDecl)
m_Absender = New_Absender
End Property



... schnipp...


' /// _____Code im Formmodul
Option Explicit
Private mUEW As clsUeberweisung

Private Sub AnySub()
Set mUEW = New clsUeberweisung
With mUEW.Absender
.Name = "Müller"
.Bank = "Sparkasse"
.Bankleitzahl = "123456789"
.Konto = "4711"
End With
End Sub


' /// _____Code im Klassenmodul clsUeberweisung
Option Explicit

Private mAbsender As clsAbsender

Public Property Get Absender() As clsAbsender
Set Absender = mAbsender
End Property

Public Property Set Absender(Value As clsAbsender)
Set mAbsender = Value
End Property

Private Sub Class_Initialize()
Set mAbsender = New clsAbsender
End Sub

Private Sub Class_Terminate()
Set mAbsender = Nothing
End Sub


' /// _____Code im Klassenmodul clsAbsender
Option Explicit

Private mName As String
Private mBank As String
Private mKonto As String
Private mBankleitzahl As String

Public Property Get Name() As String
Name = mName
End Property
Public Property Let Name(Value As String)
mName = Value
End Property

Public Property Get Bank() As String
Bank = mBank
End Property
Public Property Let Bank(Value As String)
mBank = Value
End Property

Public Property Get Konto() As String
Konto = mKonto
End Property
Public Property Let Konto(Value As String)
mKonto = Value
End Property

Public Property Get Bankleitzahl() As String
Bankleitzahl = mBankleitzahl
End Property
Public Property Let Bankleitzahl(Value As String)
mBankleitzahl = Value
End Property

' \\\ E N T E

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen