Hallo Liebe Community,
ich bin gerade auf ein selbstverschuldetes Problem gestoßen bei dem ich aber trotzdem hoffe dass es eine Lösung gibt (ich hoffe das dies der richtige Teil des Forums ist). Grundsätzlich sollte eine Datenbank natürlich von Anfang an erst einmal geplant werden und erst nach Fertigstellung des Plans aufgebaut werden um genau dieses Problem zu vermeiden, in dem Fall ist aber leider doch noch was dazwischen gerutscht das im Vorfeld nicht bedacht war.
Lange Rede kurzer Sinn, ich musste in einer der Tabellen zwei Felder umbenennen. Da ich einige Formular habe in denen die Felder verwendet werden, und es da meist auch eine entsprechende Prozedur gibt, bin ich so vorgegangen, dass ich in jedem relevanten Modul die entsprechende Stellen "Me.alterFeldname" heraus gesucht und entsprechend zu "Me.neuerFeldname" umgeschrieben habe. Ich dachte das damit dann die größten Probleme umgangen werden, die entsprechenden Textboxen in den Formularen hatten die Umbenennung der Felder automatisch übernommen und weisen als Datenherkunft den richtigen Feldnamen aus.
Nun ist mir aber aufgefallen, dass der Ablauf doch nicht so "leicht" ist wie ich es dachte. In meinen Modulen wird "Me.neuerFeldname" nicht als gültig erkannt und wenn ich mir die Vorschläge nach Eingabe von "Me." ansehe stelle ich fest, das dort weiterhin die alten Feldnamen verwendet werden.
Als erstes habe ich die Eigenschaften der entsprechenden Textbox geprüft aber hier sind folgende Werte hinterlegt:
Andere -> Name: Artikelnummer
Andere -> Bezeichnungsname: Bezeichnungsfeld1
Daten -> Steuerelementinhalt: neuerFeldname
Auch wenn ich alle Eigenschaften Anzeigen lasse, konnte ich nirgends eine Referenz auf den alten Feldnamen finden. Für mich als Neuling scheint es hier einfach so, als ob die Module das Update des Feldnamens nicht mitbekommen. Ich will aber ungern einfach die alten Namen verwenden da das auf Dauer nur zu Verwirrung und Probleme führen würde.
Gibt es eine Möglichkeit die aktualisierten Feldnamen auch so entsprechend in den Modulen zu aktualisieren? Oder muss ich hierfür jedes betroffene Steuerelement entfernen und dem Formular neu hinzufügen? Falls möglich würde ich das löschen und neu hinzufügen gerne vermeiden aber wenn das tatsächlich die einzige Möglichkeit ist, werde ich da nicht drum herum kommen.
Bevor ich aber für jedes betroffene Steuerelement die Eigenschaften abspeicher um danach diese erneut manuell zu setzen, wollte ich mich erst einmal im Voraus erkundigen ob es keine andere Methode gibt oder ob das löschen und neu hinzufügen überhaupt die Lösung wäre.
Vielen Dank schonmal für alle Tipps zu dem Thema!
Viele Grüße
Kevin
Gerade als ich den Post abgeschickt habe ist mir selbst aufgefallen, dass das benannte Problem ja nicht unbedingt mit den Textboxen zusammen hängt.
Testweise habe ich beim Formular selbst die Datensatzquelle verändert und danach wieder auf die korrekte Tabelle zurück gestellt. Nach einer kurzen Prüfung sind die Feldnamen in den Modulen nun aktuell und von den alten fehlt jegliche Spur.
Trotzdem würde es mich aber noch folgendes Interessieren:
- Gibt es eine Funktion oder Schaltfläche um diese Aktualisierung durchzuführen ohne dass die Datensatzquelle kurz um- und zurückgestellt werden muss?
- Gibt es einen bestimmten Grund wieso die Aktualisierung der Feldnamen nicht automatisch erfolgt? bzw. da es den sicherlich gibt, was ist der Grund hierfür?
Zitat von: Eisman333 am Februar 01, 2022, 15:52:29- Gibt es einen bestimmten Grund wieso die Aktualisierung der Feldnamen nicht automatisch erfolgt? bzw. da es den sicherlich gibt, was ist der Grund hierfür?
Es gibt ja diverse Einstellungen für die automatische Korrektur von Feldnamen. Siehe:
https://support.microsoft.com/de-de/office/festlegen-der-optionen-f%C3%BCr-objektnamenautokorrektur-981b70ef-56ea-47a8-8bb4-a93c10a9d98b#:~:text=Alle%20drei%20AutoKorrektur%2DOptionen%20f%C3%BCr,Dialogfeld%20Access%2DOptionen%20zu%20%C3%B6ffnen.
In der Regel verwendet man in Formular-Modulen ja nur Namen von Steuerelementen und nicht die Namen von Feldern.
Unterscheiden sich diese Namen bei dir generell?
Zitat von: markus888 am Februar 04, 2022, 15:23:41In der Regel verwendet man in Formular-Modulen ja nur Namen von Steuerelementen und nicht die Namen von Feldern.
Unterscheiden sich diese Namen bei dir generell?
Wenn ich ein Steuerelement das mit einem Feld verbunden ist einfüge, dann wird der Name des Steuerelements ja automatisch auf den Feldnamen gesetzt, somit kam es bei der Aktualisierung des Feldnamens auch zu einer Änderung des Namens des Steuerelements.
Sollte ich mir lieber angewöhnen die Steuerelement Namen manuell festzulegen?
Hallo,
ZitatSollte ich mir lieber angewöhnen die Steuerelement Namen manuell festzulegen?
Hier gehen die Meinungen stellenweise stark auseinander... (wenn wir bei der Access-Umgebung bleiben)
M.M. nach ist es einfacher (und nicht nur meiner Faulheit geschuldet), die Namen der gebundenen(!) Steuerelemente genau so zu benennen wie das zugrundeliegende Tabellen/Abfragefeld, was ja bei den Assistenen automatisch erfolgt.
Bei mir ist dadurch noch nie eine Fehlersituation entstanden.
Ungebundene (!) Steuerelemente statte ich dagegen mit einem entspr. Prefix aus (--> lstOrte als Listenfeld oder btnDrucken als Schaltfläche), um eine Unterscheidung zu erleichtern.
Legt man sich den Ausdruck des Beziehungsfensters (mit allen Tabellen- und Feldnamen) vor Augen, braucht man beim Programmieren keine großen Überlegungen anstellen.
Ich würde verrückt ;-) , wenn ich jedes Mal bei der Verwendung eines Steuerelements irgendwo nachsehen müsste, welches Tabellenfeld da nun angebunden ist (oder auch nicht), speziell bei solchen Änderungen/Bearbeitungen an Datenbanken, die von anderen Autoren stammen. ;-)
Hallo,
Zitatsomit kam es bei der Aktualisierung des Feldnamens auch zu einer Änderung des Namens des Steuerelements.
Nee, das kann nicht sein, - wäre ja auch fatal. Der Name eines Controls
auf einem Form ändert sich nicht, wenn sich der Name der ControlSource
ändert.
Prinzipiell halte ich es für besser beide Namen unterschiedlich zu halten.
Vorteile,
- keine unerklärlichen Verwechselungen (besonders beim UFo-Control, das autom.
den Namen des SourceObjects erhält)
- wenn gebunden, direkter Zugriff auf das Tabellenfeld über die Controls-
Auflistung des Forms
gruss ekkehard
Hallo Franz,
Wie du selber schreibst,- die Meinungen gehen da auseinander.
Ist wohl so ähnlich wie mit der Kennzeichnung von FK-Feldern.
gruss ekkehard
Zitat von: DF6GL am Februar 07, 2022, 13:11:13die Namen der gebundenen(!) Steuerelemente genau so zu benennen wie das zugrundeliegende Tabellen/Abfragefeld
Zitat von: DF6GL am Februar 07, 2022, 13:11:13Ungebundene (!) Steuerelemente statte ich dagegen mit einem entspr. Prefix aus (--> lstOrte als Listenfeld oder btnDrucken als Schaltfläche), um eine Unterscheidung zu erleichtern.
So hatte ich es bisher auch gemacht, bei den gebundenen Feldern die automatisch eingefügte Bezeichnung die dem entsprechenden Feld entspricht zu belassen und bei ungebunden natürlich selbst einen Namen vergeben da man mit sowas wie "Textfeld27" sich natürlich nur selbst schadet bzw. Zeit stiehlt.
Zitat von: Beaker s.a. am Februar 07, 2022, 13:11:40Nee, das kann nicht sein, - wäre ja auch fatal. Der Name eines Controls
auf einem Form ändert sich nicht, wenn sich der Name der ControlSource
ändert.
Danke für den Hinweis, ich war der Meinung dass sich das automatisch geändert hatte, deshalb habe ich das gerade nochmal in einer kopierten Version getestet und natürlich stimmt es so, dass sich der Name nicht automatisch mit dem Feld ändert. Da hatte ich wohl voreilig die Steuerelementnamen selbst angepasst ohne dabei wirklich aufzupassen.
Auf jeden Fall Danke an euch beide für die Darstellung beider Seiten im Bezug auf das Thema, persönlich tendiere ich weiterhin dazu die Namen der gebundenen Steuerelemente mit dem Namen des zugrunde liegenden Feldes gleich zu stellen, wobei es sicherlich auch Situation gibt wo dieses Vorgehen zu unnötigen Umständen führen kann.
Hallo,
Nochmal Control-Benamsung.
Da wir schon festgestellt haben, dass die Meinungen da auseinander
gehen, ist wohl eine Sache des persönlichen Stils, trotzdem noch ein
paar Anmerkungen.
Man hat ja in der DS-Herkunft von Formularen schon mal ein Feld, dass
man nicht darstellen muss, aber zur Laufzeit benötigt wird.
Dafür brauche ich auch kein unsichtbares Textfeld, sondern kann über
die Controls-Auflistung des Forms direkt darauf zugreifen. Diese
Möglichkeit habe ich bei gebundenen Textfeldern nur wenn die Namen
unterschiedlich sind. Bei gleichen Namen habe ich nur Zugriff auf
das Form-Control.
gruss ekkehard