Access 2007 - Laufzeitfehler 40036

Hallo,

ich bin gerade am Aufbau einer einfachen Datenbank. Zu einer Person kann man verschiedene Adressen und Telefonnummern dazustellen. Darum habe ich eine Liste mit den Personen, eine mit den Adressen und eine mit den Rufnummern.

Ruft man die Adressen der Person auf, wird einem erst eine Übersichtsliste mit den eingetragenen Adressen angezeigt. Dort kann man eine auswählen und dann die Details verarbeiten.

So weit so gut. Die gleiche Liste habe ich jetzt für die Rufnummern erstellt. Gleicher Code und eigentlich auch parallele Bezeichnungen der Felder. Nur eben statt „Adr“ überall „Tel“ gesetzt.

Jetzt habe ich allerdings mehrere größere Fehler, die ich vorher noch nicht hatte:

Laufzeitfehler 40036 - Die Methode „Item“ für das Objekt Forms ist fehlgeschlagen"

ist einer davon. Der Code, der aufgerufen werden soll funktioniert bei den Adressen wunderbar:

Forms![Telefon Mehrfachtreffer].TMft_Überschrift1.Caption = Me.[Pers_Vorname] & " " & Me.[Pers_Nachname] 'Überschrift setzen

Es wird nur in der Trefferliste eine Überschrift gesetzt. Nehme ich die Zeile raus, so kommt der gleiche Fehler, wenn es weitergeht:

'Filter anwenden
If Me.NewRecord Then
Forms(strChildForm).DataEntry = True
Else
Forms(strChildForm).Filter = "[Pers_ID] = " & Me.[Pers_ID]
Forms(strChildForm).FilterOn = True
End If

strChildForm = der Name des Forms mit der Trefferliste. Bei den Adressen funktioniert es hier auch prächtig.

Ein anderer Fehler des Formulars wird erzeugt, wenn ich es in der Entwurfsansicht bearbeiten will:

"Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck Bei Entladen eingegeben. Dieser Ausdruck hat einen Fehler verursacht: Das Element ist bereits in einem Objektmodul vorhanden, von der dieses Objektmodul abgeleitet ist."

Welches Modul das sein soll sagt er natürlich nicht. Ich hab jetzt auch keine doppelten Bezeichnungen gefunden.

Woran könnte es liegen? Ich hab schon überall im Internet nachgeschaut, bin aber nicht schlau geworden, wie man mit der Fehlermeldung umgehen soll.

Mfg

Stefan Bauer

Hallo Stefan,

ich bin gerade am Aufbau einer einfachen Datenbank. Zu einer
Person kann man verschiedene Adressen und Telefonnummern
dazustellen. Darum habe ich eine Liste mit den Personen, eine
mit den Adressen und eine mit den Rufnummern.

also drei Tabellen

Ruft man die Adressen der Person auf, wird einem erst eine
Übersichtsliste mit den eingetragenen Adressen angezeigt. Dort
kann man eine auswählen und dann die Details verarbeiten.

ok, wie heißt das Formular?

So weit so gut. Die gleiche Liste habe ich jetzt für die
Rufnummern erstellt. Gleicher Code und eigentlich auch
parallele Bezeichnungen der Felder. Nur eben statt „Adr“
überall „Tel“ gesetzt.

nö, das kann nicht funktionieren

Jetzt habe ich allerdings mehrere größere Fehler, die ich
vorher noch nicht hatte:

logisch

Laufzeitfehler 40036 - Die Methode „Item“ für das
Objekt Forms ist fehlgeschlagen"

= Formularbezeichnung falsch

ist einer davon. Der Code, der aufgerufen werden soll
funktioniert bei den Adressen wunderbar:

Forms![Telefon Mehrfachtreffer].TMft_Überschrift1.Caption =
Me.[Pers_Vorname] & " " & Me.[Pers_Nachname] 'Überschrift
setzen

ABER, dein Formular hat nun einen anderen Namen!!!

Es wird nur in der Trefferliste eine Überschrift gesetzt.
Nehme ich die Zeile raus, so kommt der gleiche Fehler, wenn es
weitergeht:

logisch, der Formularname wurde ja geändert und noch nicht von die angepasst. Nur ADR in TEL zu ändern reicht da nicht!

'Filter anwenden
If Me.NewRecord Then
Forms(strChildForm).DataEntry = True
Else
Forms(strChildForm).Filter = "[Pers_ID] = " & Me.[Pers_ID]
Forms(strChildForm).FilterOn = True
End If

strChildForm = der Name des Forms mit der Trefferliste. Bei
den Adressen funktioniert es hier auch prächtig.

da stimmt was nicht in der Formularbezeichnung!!

Ein anderer Fehler des Formulars wird erzeugt, wenn ich es in
der Entwurfsansicht bearbeiten will:

"Sie haben als Einstellung der Ereigniseigenschaft
den Ausdruck Bei Entladen eingegeben. Dieser Ausdruck hat
einen Fehler verursacht: Das Element ist bereits in einem
Objektmodul vorhanden, von der dieses Objektmodul abgeleitet
ist."

Welches Modul das sein soll sagt er natürlich nicht. Ich hab
jetzt auch keine doppelten Bezeichnungen gefunden.

im VBA-Code deines Formulares rufst du die gleiche Funktion mit gleicher Bezeichnung auf!

Woran könnte es liegen?

wenn du ein Formular kopierst um es für andere Zwecke zu nutzen, wir immer ALLES kopiert, also auch VBA-Code und Formularname/Aufrufe etc.

Ganz schlimm wird es, wenn du die Autokorrektur in den Grundeinstellungen aktiviert hast!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)