Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Access 2010 Umstieg - Abfragekriterium form! bzw. formular!

Begonnen von MaxP, Juni 13, 2016, 10:53:23

⏪ vorheriges - nächstes ⏩

MaxP

Hallo zusammen,

nachdem ich von A03 auf A10 umgestiegen bin
und eine A03-Datenbank in A10 konvertiert habe,
bekam ich an folgender Stelle eine Fehlermeldung:

In einer Abfrage befindet sich ein Kriterium,
welches u.a. den Ausdruck form! enthält.

Nachdem ich dieses Kriterium mit dem Aufbau-Assistenten
erneuert habe, schrieb A10 stattdessen Formular!
und der Fehler war behoben.

Ich fürchte, ich werde zig Abfragen und SQL-Anweisungen
diesbezüglich händisch reparieren müssen.

Normalerweise übersetzt Access doch englische Befehle
automatisch ins Deutsche, oder?

Gibt es dafür vielleicht soetwas wie eine Suchfunktion
oder eine bestimmte Einstellmöglichkeit beim Konvertieren,
um diesen Fehler zu verhindern?

Danke vorab.

Gruß
Max
Win 10 pro 64 bit, Access 2003

DF6GL

Crossposting ist unerwünscht.
Antwort siehe hier:

http://forum.freeaccess.de/YaBB.pl?num=1465809007/0#1
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

PhilS

Zitat von: MaxP am Juni 13, 2016, 10:53:23In einer Abfrage befindet sich ein Kriterium,
welches u.a. den Ausdruck form! enthält.

Nachdem ich dieses Kriterium mit dem Aufbau-Assistenten
erneuert habe, schrieb A10 stattdessen Formular!
und der Fehler war behoben.

Ich fürchte, ich werde zig Abfragen und SQL-Anweisungen
diesbezüglich händisch reparieren müssen.

Bevor du anfängst alle deine Abfragen/SQLs zu ändern solltest du unbedingt das Problem genauer analysieren.
Access sollte in allen Sprachversionen kein Problem mit Englischen Ausdrücken haben. Deutsche Ausdrücke werden allerdings in machen Fällen nicht richtig in's Englische konvertiert. Es besteht also ein gewisses Risiko, dass du mit unbedachtem Suchen/Ersetzen die Sache langfristig eher schlimmer machst.

Es heißt übrigens Forms!... bzw. Formulare!...
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MaggieMay

Hi,
ZitatEs heißt übrigens Forms!... bzw. Formulare!...
das kommt ganz darauf an, an welcher Stelle das steht.
So etwas wäre bspw. auch möglich:
ZitatForms!formname!ufoname.Form!ctlname
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

ZitatEs heißt übrigens Forms!... bzw. Formulare!...

Das kann ich so nicht stehen lassen....

.Form!Textfeld ist der Bezug auf ein Textfeld in einem Unterformular in einem Hauptform.


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaxP

Hallo zusammen,

vielen Dank erst einmal für Eure bisherigen Beiträge.

Um die Diskussion zu vereinfachen:
Der Ausdruck heißt komplett
[Formulare]![SV-Verwaltung]![Bauherrn-BV-Abf].[Form]![BH-Nr]
und wird von A03 sauber ausgeführt und von A10 ignoriert.

Danke DF6GL für den Link, ich habe mal Find & Replace geladen. Mal schaun, ob ich damit klar komme. Leider ist das deutsche Tool Suchen & Ersetzen wohl nicht mehr erhältlich.

Kann ich denn alle "form!" oder "forms!" stumpf gegen den deutschen Begriff austauschen?
In allen Objektarten, also auch im VBA-Code?

Gruß
Max
Win 10 pro 64 bit, Access 2003

DF6GL

Hallo,

am Besten öffnest Du im Abfrageentwurf die SQL-Ansicht und änderst DORT  im SQL-String "Formulare" in "Forms" und "Formular" in "Form".

Access übersetzt das Ganze dann  in der Abfrageentwurfsansicht die Ausdrücke wieder ins Deutsche, aber das ist dann normal. Die englischen Ausdrücke in der SQL-Ansicht bleiben aber bestehen.


Ich bin mir jetzt aber nicht sicher, ob in A2010/13 die Verwendung von Verweisen auf Unterformular-Textfelder überhaupt noch unterstützt wird.  (das ist eh sehr tricky und unzuverlässig, bzw. kann je nach Markierung im Unterform unerwartete Ergebnisse liefern.)

Zudem ist meine Vermutung bestätigt, dass Sonder- und Leerzeichen in Namen verwendet werden.  Das sollte dringend abgestellt werden.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaxP

Hallo,
habe nun unter a03 in der SQL-Ansicht die englischen Begriffe eingestellt.
Access ändert das in der Abfrageentwurfsansicht zwar nicht in die deutschen Begriffe,
aber es funkt trotzdem sowohl in A03 als auch in A10.
Und das ist gut so!

Somit werde ich tatsächlich nur im Bedarfsfall den SQL-Code ändern.
Okay, und wenn ich mal ganz viel Zeit habe, sind die Feldnamen auch dran.

Nochmals danke für eure Beiträge.

Gruß
Max

Win 10 pro 64 bit, Access 2003

PhilS

Zitat von: DF6GL am Juni 13, 2016, 15:03:19
.Form!Textfeld ist der Bezug auf ein Textfeld in einem Unterformular in einem Hauptform.
Danke für die Anmerkung (auch an @MaggieMay); an den Fall hatte ich nicht gedacht.

Möglicherweise erklärt genau dieser Fall die Problemursache bei @MaxP.

Während in Access 2013 Deutsch sowohl die komplett englische als auch die komplett deutsche Schreibweise einwandfrei funktioniert, kann Access absolut reproduzierbar einen Ausdruck nicht auflösen in dem "Formulare" mit "Form" gemischt wird. - In dem Beispiel von @MaxP ist genau diese Konstellation zu sehen.







AusdruckErgebnis
Forms![EinFormular]![ufoCtl].Form![Text0]funktioniert
Formulare![EinFormular]![ufoCtl].Formular![Text0]funktioniert
Formulare![EinFormular]![ufoCtl].Form![Text0]funktioniert nicht - reproduzierbar
Forms![EinFormular]![ufoCtl].Formular![Text0]funktioniert allerdings wieder
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

MaggieMay

Hallo,
Zitat von: MaxP am Juni 13, 2016, 16:01:30
Kann ich denn alle "form!" oder "forms!" stumpf gegen den deutschen Begriff austauschen?
In allen Objektarten, also auch im VBA-Code?
die Antwort ist ein klares NEIN. Sowohl im VBA- als auch SQL-Code sollte grundsätzlich die englische Version verwendet werden.
Am besten trennt man sich auch spätestens nach dem Erstellen einer Abfrage von deren Entwurfsansicht, weil der SQL-Code durch den Wechsel der Ansicht u.U. immer wieder neu generiert wird - was nicht unbedingt im Sinne des Erfinders (der Abfrage) ist.
Freundliche Grüße
MaggieMay

Beaker s.a.

Moin,
Zitatwas nicht unbedingt im Sinne des Erfinders (der Abfrage) ist.
In Sinne des Erfinders (Microsoft) vielleicht schon, aber nicht im Sinne
der Anwender (wir)  ;)
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MaggieMay

Ja, ich sehe es ein, das war nicht ganz eindeutig formuliert, aber gemeint war genau dasselbe. :-)

Als "Erfinder" der Abfrage war der Autor gemeint, d.h. der Entwickler, nicht etwa der Microsoft-Programmierer, der die Umwandlung vom Entwurf zum SQL-Code und umgekehrt gebastelt hat.
Freundliche Grüße
MaggieMay

Beaker s.a.

Hallo Maggie,
Diesmal habe mal gleich richtig gelesen, und dich wohl verstanden  :)
Musste das aber mal rauslassen, weil das echt nerviges Verhalten ist.
Auch das man in der SQL-Ansicht den String nicht dauerhaft formatieren
kann gehört dazu.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MaggieMay

Hallo Ekkehard,
ZitatAuch das man in der SQL-Ansicht den String nicht dauerhaft formatieren
kann gehört dazu.
Ja, das war in älteren Versionen sogar noch ein wenig besser.
Heutzutage einfach nur noch echt ärgerlich!
Freundliche Grüße
MaggieMay