Wer kann mir das mit den Klammern erklären?

  • #1
M

Mr.Ioes

Bekanntes Mitglied
Themenersteller
Dabei seit
08.06.2003
Beiträge
143
Reaktionspunkte
0
Hallo!

Zur Zeit versuche ich mich mal wieder mit VBA und finde in der Hilfe und meinen zahlreichen Büchlein keine einfache, einleuchtende Erklrägung zur Bedeutung und dem Funktionszweck der Klammern im Funktionskopf (die scheint es ja in allen neueren Programmiersprachen zu geben).

Zum Beispiel weiss ich bei:

Private Sub Form_Open(Cancel As Integer)

nicht, was (Cancel As Integer) meint, bzw. was das soll/wozu das gut ist.

Also dass der Inhalt der (zumindest bei VBA) runden Klammern der Parameterübergabe dient, konnte ich schon nachlesen, doch ist mir nicht klar was da passiert, bzw. passieren soll (hatte seinerzeit in der Schule kein Fach Informatik oder so was).

Gruß - Mr.Ioes
 
  • #2
Die Prozedur Form_Open erwartet einen Parameter Cancel, der vom Typ Integer ist.
Ein Aufruf Form_Open () ist falsch.
Der Aufruf Form_Open (1) wäre korrekt.
Was Du dann mit dem übergebenen Parameter machst, ist Deine Sache.

Eddie
 
  • #3
Hallo Eddie,

ich verstehe schon nicht warum die Prozedur einen Parameter erwartet, geschweige den was Cancel für ein Parameter ist.

Ich hatte mir über das entsprechende Feld des (MS-ACCESS-Formular-)Eigenschaftenreiters eine Ereignisprozedur beim öffnen des Formulars erstellen lassen, bzw. den Prozedurkopf und -fuß (wenn man das so nennen kann). Während die an anderen Ereignissen, bzw. nicht an das ganze Formular sondern nur an den Steuerelementen hängenden Prozeduren alle leere Klammern haben, wurde mir der Prozedurkopf wie oben ersichtlich mit (Cancel As Integer) erstellt.

Kannst Du oder ein Anderer mir bitte noch mal erklären, was es damit auf sich hat?

Gruß - Mr.Ioes
 
  • #4
Warum schaust Du nicht einfach in die Onlinehilfe zu Access? Dort sollte die Funktion beschrieben sein.
Doppelt auf den FKT Namen klicken und dann F1.

Eddie
 
  • #5
(Cancel As Integer)

Cancel ist der Name des Parameters, und mit as Integer wird der Datentyp definiert.

Soviel ich weiss, wäre dieser Parameter nutzlich um abzufragen, ob die Prozedur erfolgreich war.
Wenn dus nicht brauchst, kannste ja mal die Klammer leeren und schauen, obs funtzt...
 
  • #6
@Eddie
Was meinst Du mit FKT Namen und warum muss man da doppelt drauf klicken?

Also wenn ich die Maus im Code-Begriff Cancel plaziere und auf F1 drücke (und weiterklicke) bekomme ich (ausschnittweise) folgende Erläuterung:

Mit der Eigenschaft Cancel können Sie für eine Befehlsschaltfläche angeben, ob sie gleichzeitig die Schaltfläche Abbrechen des Formulars sein soll.

@OEMUser
Da bei mir zur Zeit noch gar nichts funzt, kann ich nichts definitives sagen. Ich vermute allerdings, dass ich die Klammern auch löschen könnte.
 
  • #7
Hi

Hier mal ein Beispiel:
Code:
'Diese Prozedur wird ausgeführt,
'sobald die Form sich öffnen will.
Private Sub Form_Open(Cancel As Integer)
 ->Prüfen, ob die Datei Test.exe existiert.
  If Dir$(C:\Test.exe) =  Then
        ->Existiert sie nicht, wird die Prozedur
        ->abgebrochen und somit auch das
        ->öffnen der Form
         Cancel = 1
  End If
End Sub
Also wenn man den Wert der Variable Cancel auf 1 setzt, wird die Prozedur abgebrochen. ;)

Sollte man den Inhalt in der Klammer löschen, so kommt eine Syntax-Fehlermeldung.

Mfg Alexander
 
  • #8
Was meinst Du mit FKT Namen und warum muss man da doppelt drauf klicken?
FKT = Funktion
Doppelt draufklicken deswegen, damit der Text ausgewählt wird. Wenns aber auch mit einmal funzt, umso besser.
Also wenn man der Variable Cancel den Wert 1 übergibt, wird die Prozedur abgebrochen.
Du bist doch schon in der Funktion und setzt nur den Wert auf 1. Mit übergeben ist da IMHO nicht viel. Auch wenn der Rest korrekt ist.

Eddie
 
  • #9
....den Prozedurkopf...

das müsste dieser sein

Valentincbw.jpg



oder aber auch dieser


aha.jpg



...der Name des Parameters...

also ein paar A-Meter müsste man mit diesem Gefährt schon kommen müssen, so sollte man doch meinen, meinen Sie nicht??

karl_2.jpg


'sobald die Form sich öffnen will.

So??

0300.jpg



Ich denke einmal, daß ich wieder einmal nicht helfen konnte, aber daß mir das wieder einmal nicht so übel genommen wird, wie man es mir eigentlich nehmen sollte.............


valentin.gif
 
  • #10
Hi

Du bist doch schon in der Funktion und setzt nur den Wert auf 1. Mit übergeben ist da IMHO nicht viel. Auch wenn der Rest korrekt ist.

Also wenn man den Wert der Variable Cancel auf 1 setzt, wird die Prozedur abgebrochen.

Zufrieden ? ;D

@moosbroetchen: Langeweile? :eek: ;)

Mfg Alexander
 
  • #11
Hallo und vielen Dank für die Erklärung(en)!

Ich denke so langsam blicke ich worum es geht und dazu habe ich jetzt auch den Prozedurkopf kennen gelernt. ;)

Gruß - Mr.Ioes
 
Thema:

Wer kann mir das mit den Klammern erklären?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben