Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Window "Parameterwert eingeben" erscheint mit gelöschtem Feld

Begonnen von Geneatograf, Oktober 08, 2026, 20:14:38

⏪ vorheriges - nächstes ⏩

Geneatograf

Servus allerseits,
habe mich heute hier angemeldet weil ich nicht mehr weiter weiß. Access programmiere ich immer mal wieder für kleinere private Projekte. So habe ich angefangen mir für meine Genealogie-Recherchen eine kleine Datenbank mit 3 Tabellen und bisher 3 Formularen zu erstellen.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Wenn ich das Formular "Recherchen" im Menu links mit einem Doppelklick starten möchte, wird das Window "Parameterwert eingeben" zusammen mit einem früheren Feld in der Tabelle und im Formular abgefragt.
Sie dürfen in diesem Board keine Dateianhänge sehen.
Ich benutze keine Abfrage und habe wie geschrieben, das Feld aus der Tabelle und im Formular gelöscht.

Ich habe mein Formular schon mehrere Male durchsucht, neu geordnet, Felder gelöscht und neu angelegt. Ebenso das Eigenschaftenblatt. Es wird immer wieder auf das ursprüngliche Feld "GanzNormalesFeld" verwiesen.

Klicke ich in dem Window auf OK, wird das Formular zwar angezeigt, aber es wird immer der allseits beliebte Fehler #NAME? angezeigt. Sie dürfen in diesem Board keine Dateianhänge sehen.
Ich habe das Feld aber schon tausendmal untersucht, da gibt es keine Verbindung zu "GanzNormalesFeld". Oder ich sehe den Wald vor lauter Bäumen nicht mehr  :'(

Jedoch tritt dieser Fehler nicht auf, wenn ich das Formular zunächst in der Entwurfsansicht starte und dann gleich zur Formularansicht wechsle. Das verstehe ich nicht.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Hat vielleicht von Euch jemand eine Idee, wo bei meinem Formular die Ratte stecken könnte?

Vielen Dank schon jetzt für Eure Hilfe und Tipps!

Schöne Grüße
Geneatograf

Knobbi38

#1
Du kannst davon ausgehen, dass dieses Feld irgendwo referenziert wird, sonst würde der Dialog nicht erscheinen. Wo das passiert, kann man aus der Ferne aber nicht erkennen. Deshalb wäre es von Vorteil, wenn du deine DB mit ein paar anonymisierten Datensätzen hier hochladen würdest, damit der Fehler reproduziert werden kann.

Bitte gib dann auch noch deine Access-Version und die Bit-Version (32 oder 64) an.

Knobbi38

Geneatograf

Hallo Knobbi38,
danke Dir. Klar lade ich die DB hoch. Sind keine Datenschutz relevante Daten drin. Außerdem bin ich ja erst in der Anfangsphase mit 2 Sätzen.

Wie kann ich meine DB hier hochladen? Der Typ accdb wird hier nicht unterstützt.

Ich benutze Windows 11 und
Sie dürfen in diesem Board keine Dateianhänge sehen.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Vielleicht findest Du ja meinen Fehler. Ich eiere hier schon einige Tage dran herum  :-\
VG
Geneatograf

Knobbi38

Du kannst die DB Komprimieren/Reparieren und dann zippen.

Geneatograf

Na dann versuche ich das mal  :) Danke schon mal für Deine/Eure Mühe!
Sie dürfen in diesem Board keine Dateianhänge sehen.

Die Captcha hier sind echt schwer zu lesen.

Bitsqueezer

Hallo,

ohne es mir angesehen zu haben, manchmal ist es schwierig, ein Objekt bzw. Referenz darauf wiederzufinden.

Ich empfehle Dir dieses Addon:
https://www.skrol29.com/us/vtools.php

Mit "Total Deep Search" kann man hier nach einem Namen quer über alles in der Datenbank suchen, Formulare, Tabellen, Abfragen, Reports, Code...

Das gibt schnelle "Aha"-Momente... :)

Gruß

Christian

Knobbi38

#6
Hallo,

leider läßt das Problem anhand des Beispiels nicht reproduzieren.  ???

Was mir aber aufgefallen ist, dass in der Tabelle tblRecherchen ein Anlagefeld verwendet wird. Das solltest du nach Möglichkeit nicht verwenden, sondern besser eine dedizierte Tabelle mit einer m:n oder 1:n Beziehung verwenden. Das Anlagenfeld macht ja auch nichts anderes, verbirgt aber viele Details und macht die Handhabung nur unnötig kompliziert.

Knobbi38
 

PhilS

Zitat von: Geneatograf am Oktober 08, 2026, 20:14:38Hat vielleicht von Euch jemand eine Idee, wo bei meinem Formular die Ratte stecken könnte?
Öffne mal die Tabelle in der Entwurfsansicht. Dann schau im Property Sheet (ggf. mit [F4] einblenden) bei den Sortieren-/Filtern-Eigenschaften. - Das sind nach meiner Erfahrung die häufigsten Verstecke für solche "Geisterfelder".
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

Geneatograf

Hallo PhilS,
leider habe ich dort auch nichts gefunden (siehe SC). Vielen Dank aber für Deinen Tipp!
Sie dürfen in diesem Board keine Dateianhänge sehen.

Werde wohl Tabellen und Formulare komplett löschen und noch mal auf der grünen Wiese anfangen. Noch ist ja nicht so viel kaputt.  ;D

Danke an Euch alle und ein schönes Wochenende!

Geneatograf

Normalo0815

Hallo Geneatograf,

eine andere Möglichkeit wäre mit dem "Dokumentierer" in Access.

Vor dem Start des Dokumentierers alle Objekte im Tab "Alle Objekttypen" auswählen und in den "Optionen" auch alles auswählen und das Ergebnis (Seitenansicht) dann exportieren (Excel oder anderes Format). Bei vielen vorhandenen Objekten kann das sehr lange dauern.

Die exportierte Datei dann mit einem passenden Programm öffnen und nach dem Begriff durchsuchen.
Freundliche Grüße
Normalo0815   :)

Geneatograf

#10
Hallo Normalo0815,
der Dokumentierer in Access war eine gute Idee. Aber, obwohl ich alle 3 Tabellen und 3 Formulare durch den Dokumentierer in eine Excel-Datei dokumentiert habe, konnte ich das Feld "GanzNormalesFeld" nicht finden.

Ich danke Dir aber für den Tipp!
VG
Geneatograf

P.S. Möchte gerne mal wissen, wie ich das wieder geschafft habe!  ;D

MzKlMu

#11
Hallo,
der Dokumentierer reicht für den Zweck nicht aus. Der listet längst nicht alles was zu dem Fehler führen kann.

Installiere ein Tool zum Suchen in Access. Da gibt es einiges das man 4 Wochen kostenlos testen kann. Du solltest das auch unbedingt machen, damit Du weist wo der Fehler liegt um es zukünftig zu vermeiden.

Schau mal hier:
https://accessdevtools.com/product/find-and-replace/#tab-description
Gibt es eine 30 Tage Testversion. Vieleicht willst Du es ja auch behalten. Hilfreich ist es auf jeden Fall.

Zu den Entwicklerern des Tools gehört auch PhilS, der Global-Moderator dieses Forums.
https://www.access-o-mania.de/forum/index.php?action=profile;u=14408
Gruß Klaus

Bitsqueezer

Hallo,

in diesem Fall wirst Du wohl mit Suche nicht fündig werden.

Der Fehler kam bei mir auch. Problem ist "SELECT *".
Du sagtest oben, Du hättest keine Abfrage, aber Dein Formular basiert auf einem SELECT - also eine Abfrage.

Auch in SQL Server gibt es das: Wenn man "SELECT *" verwendet, wird beim Speichern der Abfrage die Feldliste in den Metadaten der Abfrage intern gespeichert, die es zu diesem Zeitpunkt in der Tabelle gab.

Wenn Du die Tabelle danach änderst, ist daher das Feld immer noch in den Metadaten und es kommt zum Fehler, wenn der SELECT erneut ausgeführt wird. Abhilfe hier: Gehe in die Eigenschaft "Datensatzquelle" Deines Formulares, klicke den Button [...] und dann änderst Du irgendwas, z.B. ziehe ein Feld in die Abfrage oder was auch immer. Für Access ist das eine Änderung der Abfrage, dann fragt es Dich beim Schließen mit
x, ob Du die Änderung speichern willst. Da sagst Du Ja rufst die Abfrage wieder auf, machst die Änderung rückgängig und speicherst erneut. Formular mit Speichern schließen, Formular neu aufrufen, weg ist der Fehler.

Generell sollte man "SELECT *" aus diesem und anderen Gründen immer vermeiden. Der Abfrageeditor macht es Dir einfach, die konkrete Feldliste zu verwenden: Statt den "*" in die Abfragefelder zu ziehen, mache einen Doppelklick auf den Tabellentitel. Dadurch werden alle Felder (außer "*") markiert, die Du nun einfach mit der Maus in die Feldliste unten ziehen kannst.

Nun ist die genaue Feldliste bekannt und wenn Du die Tabelle mal änderst, kannst Du den Namen des Feldes auch in der Feldliste wiederfinden (mit V-Tools hättest Du das dann gesehen - mit "*" auch mit V-Tools nicht) und ändern/entfernen.

Statt einer Textabfrage in der Datensatzquelle solltest Du immer eine echte Abfrage verwenden. Das ist zum einen geringfügig schneller, auf der anderen Seite kannst Du die Abfrage auch ohne das Formular im Designmodus öffnen und ändern. Wenn die Autonamenskorrektur eingeschaltet ist, ändert Access geänderte Feldnamen in gespeicherten Abfragen ebenfalls - nicht aber in Textabfragen in Datensatzquellen.

Wenn Du ohne diese Änderungen mal in die Tabelle "MSysQueries" schaust (versteckt/System, mußt Du im Navigator erst einschalten, um sie zu sehen), wirst Du unter "Expression", wenn Du dort im Filter "Enthält" nach "GanzNormalesFeld" suchst, genau einen Eintrag finden, "[tblRecherchen].[GanzNormalesFeld]".

Genau da wurden die Metadaten Deines "SELECT *" gespeichert.

Also am besten merken: Vergiß SELECT *, nie verwenden. Das ist nur was, wenn man mal schnell eine Abfrage braucht, aber nicht für echte Entwicklung.

Gruß

Christian


Geneatograf

Zitat von: Bitsqueezer am Oktober 09, 2026, 16:33:56Auch in SQL Server gibt es das: Wenn man "SELECT *" verwendet, wird beim Speichern der Abfrage die Feldliste in den Metadaten der Abfrage intern gespeichert, die es zu diesem Zeitpunkt in der Tabelle gab.


Wow!!!
Vielen Dank Christian für diese sehr ausführliche Erklärung! Von beruflichen DB kenne ich solche Metadaten in Caches auch. Aber das Access bzw. SQL auch so arbeitet, hätte ich nicht gedacht. Obwohl es eigentlich naheliegend ist. Heisst für mich, dass ich meine Tabelle überarbeiten, sie aber nicht komplett löschen muss.  ;D  ;D  ;D

Na dann weiß ich ja, was ich übers WE zu tun habe  ;D

Vielen Dank für Eure Hilfe! Habe die letzten Tage sehr viel gelernt!

Schönes Wochenende

Geneatograf

Geneatograf

Zitat von: Bitsqueezer am Oktober 09, 2026, 16:33:56Der Fehler kam bei mir auch. Problem ist "SELECT *".
Du sagtest oben, Du hättest keine Abfrage, aber Dein Formular basiert auf einem SELECT - also eine Abfrage.

Hallo Christian,
als ich sagte, dass ich keine Abfrage habe, meinte ich ein eigenes Abfrage-Objekt. An die SELECT-Anweisung habe ich nicht gedacht. Und wieder was gelernt!

Es hat nach dem ich Deiner Vorgehensweise nachgegangen bin geklappt! Die Metadaten wurden dadurch bereinigt und somit der Fehler behoben! Richtig Klasse!

Vielen Dank für Deine Hilfe!

Vielen Dank für Euer aller Hilfe!

Viele Grüße
Geneatograf  :)