Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Unzulässige Verwendung des Schlüsselwortes Me

170 views
Skip to first unread message

Rüdiger Gram

unread,
Sep 24, 2006, 4:22:33 AM9/24/06
to
Hallo Leute,

in einer Codezeile verwende ich 'Me'. Das sieht so aus:

If Screen.ActiveForm.Name = "Firmen" Then Temporär_Adressat_verarbeiten Me

Die Funktion 'Temporär_Adressat_verarbeiten' ist so übertitelt:

Public Function Temporär_Adressat_verarbeiten(frm As Access.Form)

Das führt aber zu der Fehlermeldung: Unzulässige Verwendung des
Schlüsselwortes Me

An anderer Stelle funktioniert eine ähnliche Gestaltung einwandfrei.
Warum wird das hier angemeckert?

Gruß

Rüdiger Gram

Rüdiger Gram

unread,
Sep 24, 2006, 4:31:05 AM9/24/06
to
Ergänzung zur vorherigen Problembeschreibung:

Der Aufruf des Codes:

If Screen.ActiveForm.Name = "Firmen" Then Temporär_Adressat_verarbeiten Me

erfolgt in einem Modul. Vielleicht ist das für die Beurteilung des Problems
von Bedeutung.

Gruß

Rüdiger Gram


Peter Doering

unread,
Sep 24, 2006, 4:35:16 AM9/24/06
to
Hallo,

Rüdiger Gram wrote:

> in einer Codezeile verwende ich 'Me'. Das sieht so aus:
>
> If Screen.ActiveForm.Name = "Firmen" Then Temporär_Adressat_verarbeiten Me

Befindet sich die Zeile im Formular "Firmen"?
Falls ja, versuch's mal mit Klammern:

... Then Temporär_Adressat_verarbeiten(Me)

Gruss - Peter

--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Anmeldung zur AEK: http://www.donkarl.com/AEK (B-Termin ausgebucht)

Peter Doering

unread,
Sep 24, 2006, 4:37:03 AM9/24/06
to
Hallo,

Rüdiger Gram wrote:

Aha. Dann mach so:

If Screen.ActiveForm.Name = "Firmen" Then _
Temporär_Adressat_verarbeiten Forms("Firmen")

Thomas Möller

unread,
Sep 24, 2006, 5:06:34 AM9/24/06
to
Hallo Rüdiger,

Rüdiger Gram <gr...@achwalden.com> schrieb:


> in einer Codezeile verwende ich 'Me'. Das sieht so aus:
>
> If Screen.ActiveForm.Name = "Firmen" Then
> Temporär_Adressat_verarbeiten Me
> Die Funktion 'Temporär_Adressat_verarbeiten' ist so übertitelt:
>
> Public Function Temporär_Adressat_verarbeiten(frm As Access.Form)
>
> Das führt aber zu der Fehlermeldung: Unzulässige Verwendung des
> Schlüsselwortes Me

versuch doch mal konkret Bezug auf die Formulareigenschaft zu nehmen,
Z.B.:

... Then Temporär_Adressat_verarbeiten Me.Form


HTH
--
Thomas

Homepage: www.Team-Moeller.de

Rüdiger Gram

unread,
Sep 24, 2006, 5:16:17 AM9/24/06
to

Peter Doering schrieb:

> Aha. Dann mach so:
>
> If Screen.ActiveForm.Name = "Firmen" Then _
> Temporär_Adressat_verarbeiten Forms("Firmen")

Den Code hatte ich zur Vereinfachung gekürzt. Die längere Fassung sieht so
aus:

If Screen.ActiveForm.Name = "Firmen" or Screen.ActiveForm.Name = "Allgemein"
.... Then Temporär_Adressat_verarbeiten

Deshalb kann ich nicht ("Firmen") anhängen. Testweise habe ich jetzt
angehängt (Screen.ActiveForm). Das wird beim Kompilieren nicht mehr
angemeckert.
Dafür kommt bei der Ausführung des Aufrufes nun die Fehlermeldung 'Typen
unverträglich'.

Was könnte ihm denn jetzt noch fehlen?

Gruß

Rüdiger

Rüdiger Gram

unread,
Sep 24, 2006, 5:24:12 AM9/24/06
to

Thomas Möller schrieb

> versuch doch mal konkret Bezug auf die Formulareigenschaft zu nehmen,
> Z.B.:
>
> ... Then Temporär_Adressat_verarbeiten Me.Form

Wird genauso angemeckert. Ebenso das in Klammern angehängte (Me).

Gruß Rüdiger


Thomas Möller

unread,
Sep 24, 2006, 8:42:27 AM9/24/06
to
Hallo Rüdiger,

Rüdiger Gram <gr...@achwalden.com> schrieb:


>> versuch doch mal konkret Bezug auf die Formulareigenschaft zu nehmen,
>> Z.B.:
>>
>> ... Then Temporär_Adressat_verarbeiten Me.Form
>
> Wird genauso angemeckert. Ebenso das in Klammern angehängte (Me).

meine Probleme mit "Me" kannst Du hier nachlesen:
http://groups.google.de/group/microsoft.public.de.access/browse_frm/thread/447e91f578312fe6/23ef811bdc72cd65
(Link in einer Zeile)

Daraus abgeleitet:
Probier mal ein DECOMPILE lt. FAQ 1.23 (www.donkarl.com).

Karl Donaubauer

unread,
Sep 24, 2006, 8:57:17 AM9/24/06
to
Hallo, Thomas!

Thomas Möller wrote:
> Rüdiger Gram schrieb:


>>> versuch doch mal konkret Bezug auf die Formulareigenschaft zu
>>> nehmen, Z.B.:
>>>
>>> ... Then Temporär_Adressat_verarbeiten Me.Form
>>
>> Wird genauso angemeckert. Ebenso das in Klammern angehängte (Me).
>
> meine Probleme mit "Me" kannst Du hier nachlesen:

> ...

Jetzt treibe ihn doch nicht den ganzen Holzweg rauf und runter. ;-)
Rüdiger schob nach:

> Der Aufruf des Codes:


>
> If Screen.ActiveForm.Name = "Firmen" Then Temporär_Adressat_verarbeiten Me
>

> erfolgt in einem Modul...

Da wird wohl ein Standardmodul gemeint sein und die Fehlermeldung
völlig ok, weil's dort eben kein Me gibt.

--
cu
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com + Info + Anmeldung zur
Access-Entwickler-Konferenz (AEK9) Anf. Oktober in Nürnberg


Rüdiger Gram

unread,
Sep 24, 2006, 9:03:14 AM9/24/06
to

Thomas Möller schrieb:

> meine Probleme mit "Me" kannst Du hier nachlesen:
> http://groups.google.de/group/microsoft.public.de.access/browse_frm/thread/447e91f578312fe6/23ef811bdc72cd65
> (Link in einer Zeile)
>

Danke Thomas, ich werde mal einen anderen Work-Around versuchen.

Gruß

Rüdiger


Peter Doering

unread,
Sep 24, 2006, 9:12:12 AM9/24/06
to
Hallo,

Rüdiger Gram wrote:
> Peter Doering schrieb:
>
>> Aha. Dann mach so:
>>
>> If Screen.ActiveForm.Name = "Firmen" Then _
>> Temporär_Adressat_verarbeiten Forms("Firmen")
>
> Den Code hatte ich zur Vereinfachung gekürzt. Die längere Fassung sieht so
> aus:
>
> If Screen.ActiveForm.Name = "Firmen" or Screen.ActiveForm.Name = "Allgemein"
> .... Then Temporär_Adressat_verarbeiten

Dann probier:

... Then Temporär_Adressat_verarbeiten(Forms(Screen.ActiveForm.Name))

(ungetestet)

Gruss - Petere

Rüdiger Gram

unread,
Sep 24, 2006, 9:11:58 AM9/24/06
to

Karl Donaubauer schrieb:

>> erfolgt in einem Modul ...
>
> Da wird wohl ein Standardmodul gemeint sein ...

Genau so ist es.

> und die Fehlermeldung völlig ok, weil's dort eben kein Me gibt.

Habe ich mir nach diesen Irrungen und Wirrungen auch gedacht.

Danke Karl


Darf ich nochmal auf meine (Teil-) Frage zurückkommen:

Rüdiger Gram

unread,
Sep 24, 2006, 9:41:00 AM9/24/06
to

Peter Doering schrieb:

> Dann probier:
>
> ... Then Temporär_Adressat_verarbeiten(Forms(Screen.ActiveForm.Name))
>
> (ungetestet)

Scheint zu funktionieren (wird nicht angemeckert).
Im Formular kommt aber immer noch die Fehlermeldung "Typen unverträglich".

Danke für Deine Hilfe

Rüdiger

Karl Donaubauer

unread,
Sep 24, 2006, 10:01:46 AM9/24/06
to
Rüdiger Gram wrote:
> ...

> Testweise habe ich jetzt angehängt (Screen.ActiveForm). Das wird beim
> Kompilieren nicht mehr angemeckert.
> Dafür kommt bei der Ausführung des Aufrufes nun die Fehlermeldung 'Typen
> unverträglich'.
>
> Was könnte ihm denn jetzt noch fehlen?

Ich denke, du hast noch nicht ausreichend erläutert, was hier von
wo aus und wie aufgerufen und verwendet wird. Also schildere
besser mal die ganze Aufruf- und Verarbeitungskette im richtigen
Ablauf. Sonst stochern wir hier nur weiter im Dunkeln.

Peter Doering

unread,
Sep 24, 2006, 10:33:36 AM9/24/06
to
Hallo,

Rüdiger Gram wrote:
> Peter Doering schrieb:
>
>> Dann probier:
>>
>> ... Then Temporär_Adressat_verarbeiten(Forms(Screen.ActiveForm.Name))
>>
>> (ungetestet)
>
> Scheint zu funktionieren (wird nicht angemeckert).
> Im Formular kommt aber immer noch die Fehlermeldung "Typen unverträglich".

Ich habe genau diese Syntax bei mir nachgestellt, laeuft problemlos. Hier
mein Beispielcode:

Aufruf in einem beliebigen Formular:

Private Sub Form_Open(Cancel As Integer)
Call TestForm
End Sub

In einem Modul:

Sub TestForm()
Call TestFormA(Forms(Screen.ActiveForm.Name))
End Sub

Private Function TestFormA(FrmA As Access.Form)
MsgBox FrmA.Name
End Function

Die Msg-Box gibt wie erwartet den Namen des aufrufenden Formulars aus.
Deine Meldung muss also andere Ursachen haben. Was hast du fuer Verweise?

Ansonsten teste mal mit dieser kleinen Prozedur und bau schrittweise den
Rest deiner Funktionalitaet ein, bis es kracht.

Gruss - Peter

Rüdiger Gram

unread,
Sep 24, 2006, 11:46:46 AM9/24/06
to

Hallo Peter,

Du antwortetest:

> Ansonsten teste mal mit dieser kleinen Prozedur und bau schrittweise den
> Rest deiner Funktionalitaet ein, bis es kracht.

Mache ich. Die Fehlermeldung beruht vermutlich auf einem Folgefehler. Die
ganze Datenbank-Anwendung besteht bereits seit 10 Jahren und wurde immer
wieder mit "Anbauten" versehen, und jetzt muß ich für meine Anfangs-
Progammiersünden büßen. So trifft die Strafe wenigstens
den Richtigen.

Vielen herzlichen Dank für Deine Mühe.

Rüdiger

Rüdiger Gram

unread,
Sep 24, 2006, 12:23:32 PM9/24/06
to
Karl Donaubauer schrieb:

> Ich denke, du hast noch nicht ausreichend erläutert, was hier von
> wo aus und wie aufgerufen und verwendet wird. Also schildere
> besser mal die ganze Aufruf- und Verarbeitungskette im richtigen
> Ablauf. Sonst stochern wir hier nur weiter im Dunkeln.

Damit hast Du sicher recht. Ich habe Euch detailliertere Auszüge aus dem
Programm erspart, weil das in seiner Verzweigtheit und mit meinen
laienhaften Programmkünsten eine Zumutung für Euch gewesen wäre. Mit dem
Thema hätten wir dann sicher noch einen weiteren Tag verbringen können.

Inzwischen habe ich eine Umgehung des Problems gefunden, die zu laufen
scheint (mal tut sie's, mal nicht). Daran werde ich weiterarbeiten, und
wenn ich nicht zurechtkomme, nochmal bei Euch anfragen.

Danke für die Hilfe

Rüdiger


0 new messages