Endlosformular - nur erster Button funktioniert

Hallo,

in einem Endlosformular in Access 2007 habe ich neben dem Datensatz jeweils einen Button mit „löschen“. Jetzt habe ich das Problem, dass der Datensatz in der ersten Zeile ohne Probleme funktioniert - klickt man aber auf den Button in der zweiten Zeile passiert gar nichts.

Stelle ich im VBA-Code eine Überwachung ein, komme ich auch gar nicht einmal in das Untermenü Button_Click. In der ersten Zeile funktioniert es aber ohne Probleme.

Das Problem habe ich bei anderen Endlosformularen gar nicht - da funktioniert jeder Löschen-Button ohne Probleme. Was mir aufgefallen ist: der Button im besagten Formular bekommt auch den Focus nicht, wenn man mit der Tab-Taste weiter drückt. In den Formularen, in denen es funktioniert, rutscht der Focus ganz normal weiter. Die Maße der Formulare sind aber die gleichen…

Woran könnte das liegen?

Stefan Bauer

Hallo Stefan,

in einem Endlosformular in Access 2007 habe ich neben dem
Datensatz jeweils einen Button mit „löschen“.

einer im Fuß würde reichen

Jetzt habe ich
das Problem, dass der Datensatz in der ersten Zeile ohne
Probleme funktioniert -

ähm, was funktioniert beim ersten Datensatz?

klickt man aber auf den Button in der
zweiten Zeile passiert gar nichts.

ok…

Stelle ich im VBA-Code eine Überwachung ein, komme ich auch
gar nicht einmal in das Untermenü Button_Click. In der ersten
Zeile funktioniert es aber ohne Probleme.

ist es ein Unterformular?

Das Problem habe ich bei anderen Endlosformularen gar nicht -
da funktioniert jeder Löschen-Button ohne Probleme.

was ist dort anders?

Was mir aufgefallen ist: der Button im besagten Formular bekommt auch
den Focus nicht, wenn man mit der Tab-Taste weiter drückt.

also deaktiviert?

In den Formularen, in denen es funktioniert, rutscht der Focus
ganz normal weiter.

klar, deswegen funktioniert es ja

Die Maße der Formulare sind aber die gleichen…
Woran könnte das liegen?

Nicht an den Maßen des Formulars, diese sind für den Button so wichtig, wie der Luftdruck deiner Autoreifen.

Wichtig wäre:

  • ist das Formular ein UFO?
  • ist der Datensatzmarkierer eingeschaltet?
  • ist löschen im Formular erlaubt?
  • wie viele Felder hat das Formular?
  • sind diese editierbar, oder gesperrt?
  • wie sieht der Code vom Button aus?
    usw.

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

Hallo Wolfgang,

also das Endlosformular sieht in etwa so aus:

  • Adresse 1, Ort 1 [Übernehmen] [Löschen]
  • Adresse 2, Ort 2 [Übernehmen] [Löschen]
  • Adresse 3, Ort 3 [Übernehmen] [Löschen]
  • Adresse 4, Ort 4 [Übernehmen] [Löschen]

Darum brauche ich neben jedem Eintrag einen Button, damit Access auch weiß, welche Adresse ich übernehmen oder löschen will. Ein Button ganz unten hilft mir da nicht weiter.

Funktioniert auch sonst ganz prächtig. Die Eigenschaften aller Buttons sind natürlich immer gleich, da ich im Entwurfsmodus ja nur eine Zeile habe und da die Eigenschaften für den Löschen-Button für alle Einträge des Endlosformulars einstelle.

Hinter dem Button sitzt auch erst einmal der VBA-Code, weswegen ich nach dem Click zumindest dort einmal rauskommen müßte. Tue ich aber nur beim obersten Button (der ja wie gesagt die gleichen Eigenschaften hat wie alle darauf folgenden).

Die ganzen restlichen Einstellungen hab ich 1:1 aus dem anderen Formular übernommen, bei dem es auch geht.

Grüße aus dem Süden

Stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo, Stefan!

  • Adresse 1, Ort 1 [Übernehmen] [Löschen]
  • Adresse 2, Ort 2 [Übernehmen] [Löschen]
  • Adresse 3, Ort 3 [Übernehmen] [Löschen]
  • Adresse 4, Ort 4 [Übernehmen] [Löschen]
    Darum brauche ich neben jedem Eintrag einen Button, damit
    Access auch weiß, welche Adresse ich übernehmen oder löschen
    will. Ein Button ganz unten hilft mir da nicht weiter.

Das brauchst Du nicht unbedingt. Nur der User kann das dann besser sehen, v. a. wenn Du keinen Datensatzmarkierer darstellst. Me(„Adresse1“) im Übernehmen-Button verweist auf den aktuellen Datensatz, egal, ob der Button im Detailbereich oder Kopf/Fuß ist…

Hinter dem Button sitzt auch erst einmal der VBA-Code,
weswegen ich nach dem Click zumindest dort einmal rauskommen
müßte. Tue ich aber nur beim obersten Button (der ja wie
gesagt die gleichen Eigenschaften hat wie alle darauf
folgenden).

Das sieht irgendwie komisch aus, wobei ich auch kein Access 2007 habe. Unter XP könnte ich das nur nachstellen, wenn ich im Form_BeforeUpdate den Cancel-Wert auf TRUE setze, dann den Datensatz in den Status „bearbeitet“ versetze. In diesem Fall geht nur der Button im aktuellen Datensatz (so lange, bis man z. B. durch ESC die Datensatzänderung rückgängig macht, so dass ein Datensatzwechsel erfolgen kann).

Ich würde mal die Datensatzmarkierer einblenden; kannst Du dann einfach den Datensatz wechseln? Und nach einem Datensatzwechsel dann die Schaltfläche anklicken?

Gruß, Manfred

Hallo Stefan,

Die ganzen restlichen Einstellungen hab ich 1:1 aus dem
anderen Formular übernommen, bei dem es auch geht.

Diese Ansicht der Dinge ist genau so sinnig wie:
Das Auto meiner Frau springt jeden Morgen ohne Problem an. Warum springt mein Auto nicht an? Es müßte doch, denn beim Auto meiner Frau funktioniert es doch!

Kopiere daher nicht Formulare, deren Programmierung du nicht kennst.
Lege besser ein neues Formular an!

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

Hallo Wolfgang,

nachdem ich das Formular und die dahinterliegende VBA-Programmierung selbst erstellt habe, kann ich deine Formulierung „Kopiere daher nicht Formulare, deren Programmierung du nicht kennst“ nicht ganz nachvollziehen.

Nur entspricht die meine Programmierung des einen Formulars eben genau 1:1 der des anderen Formulars. Und darum müßte eigentlich das Formular auch genau das gleiche Verhalten zeigen wie das andere Formular.

Grüße

Stefan

Hallo Stefan,

nachdem ich das Formular und die dahinterliegende
VBA-Programmierung selbst erstellt habe, kann ich deine
Formulierung „Kopiere daher nicht Formulare, deren
Programmierung du nicht kennst“ nicht ganz nachvollziehen.

sorry, das hattest du nicht geschrieben. Ich war davon ausgegangen, dass du ein „fremdes“ Formular kopiert hattest.

Nur entspricht die meine Programmierung des einen Formulars
eben genau 1:1 der des anderen Formulars.

das ist vermutlich doch schon der „Fehler“!
1:1 KANN nicht funktionieren!

;Und darum müßte eigentlich das Formular auch genau das gleiche
Verhalten zeigen wie das andere Formular.

Meinen Vergleich mit den Autos hast du nicht verstanden?

Wir könnten dir 10x schneller helfen, wenn du den VBA-Code einfach mal hier posten würdest.
Hilfreich wären zusätzlich natürlich auch die Bezeichnungen der Tabellen/Formulare etc. pp.
Würdest du dann noch bitte meine Fragen (oben im ersten Posting) beantworten?

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