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
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
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)
Rüdiger Gram wrote:
Aha. Dann mach so:
If Screen.ActiveForm.Name = "Firmen" Then _
Temporär_Adressat_verarbeiten Forms("Firmen")
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
> 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
> 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
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).
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
> 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
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
>> 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:
> 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
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.
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
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
> 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