Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Öffentliche Gültigkeit

Begonnen von pahiti78, August 13, 2012, 18:58:39

⏪ vorheriges - nächstes ⏩

pahiti78

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!!
Gruß
Matze

MzKlMu

Hallo,
wo genau ist die Variable deklariert und wie rufst Du die beiden Subs auf.
Gruß Klaus

bahasu

Hi,

mit
     Public m_intZahl As Integer
wird es u.U. öffentlicher.  ;D

Vielleicht war es das.

Harald
Servus

pahiti78

Hallo Bahasu,
haut dennoch nicht hin.

Hallo MzKiMU,
ich starte die Subs mit F5. Ist halt wirklich nur nen Beispiel aus dem Buch.
Gruß
Matze

pahiti78

Sorry, muss mich korrigieren. Mit Public wird es öffentlich. Danke
Gruß
Matze

bahasu

Hi,

habe es eben auch probiert.

Im Anhang ein Beispiel.

Harald

[Anhang gelöscht durch Administrator]
Servus

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)