Hallo Zusammen,
hab wieder einmal ein Problem. Und zwar hab ich mir jetzt so ein tolles AccessBuch gekauft, um die Programmierung von der Pieke auf zu lernen. Im Buch wird ein Beispiel behandelt, in welchem eine öffentliche Variable deklariert wird. Diese wird dann in einer Sub_Prozedur ein bestimmter Wert und zugewiesen und schließlich in einer anderen Prozedur der Wert übergeben. Anbei der Code... bItte nicht lachen...aber es haut bei mir nicht hin...
Vielleicht weiß jemand, warum ich zu blöd bin zum Abschreiben. Danke
Option Compare Database
Option Explicit
Dim m_intZahl As Integer
Sub ErfindeZahl()
m_intZahl = 12345
End Sub
Sub ZeigeZahl()
MsgBox m_intZahl
End Sub
Die Msgbox sollte den Wert 12345 augeben, gibt mir aber immer nur Null zurück. Hilfe!!
Hallo,
wo genau ist die Variable deklariert und wie rufst Du die beiden Subs auf.
Hi,
mit
Public m_intZahl As Integer
wird es u.U. öffentlicher. ;D
Vielleicht war es das.
Harald
Hallo Bahasu,
haut dennoch nicht hin.
Hallo MzKiMU,
ich starte die Subs mit F5. Ist halt wirklich nur nen Beispiel aus dem Buch.
Sorry, muss mich korrigieren. Mit Public wird es öffentlich. Danke
Hi,
habe es eben auch probiert.
Im Anhang ein Beispiel.
Harald
[Anhang gelöscht durch Administrator]
Hallo,
Eine Member-Variable sollte immer Private sein.
Die Methoden für das Schreiben (Sub ErfindeZahl) und
Lesen (Sub ZeigeZahl) müssen Public sein, wenn Lese-
und Schreibzugriff von aussen möglich sein soll.
Im Prinzip sind seine Subs ja nichts anderes als (z. Zt.
private) Properties, also ohne Lese-/Schreibzugriff.
Bei mir würde das so aussehen (plus Prüfung und Fehler-
behandlung):
Option Compare Database
Option Explicit
Private m_Zahl as Integer
Public Property Let ZugriffAufZahl(intZahl As Integer)
m_Zahl = intZahl
End Property
Public Property Get ZugriffAufZahl() As Integer
ZugriffAufZahl = m_Zahl
End Property
Eine öffentliche Variable hat man "nicht im Griff",
will sagen, dass die bei einem Laufzeitfehler im Code
meistens ihren Wert verlieren (zurückgesetzt werden),
was zu falschen Ergebnissen führen kann, wenn man
das nicht mitbekommt. Eine Property-Prozedur kann
dass aber prüfen und evtl. korrigieren.
gruss ekkehard