Neuigkeiten:

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

Mobiles Hauptmenü

Name der enthaltenen Formulare per Abfrage auslesen

Begonnen von Klaus S. aus B, September 15, 2014, 09:42:26

⏪ vorheriges - nächstes ⏩

Klaus S. aus B

Hallo zusammen,

kann man die Namen der in einer DB enthaltenen Formulare per Abfrage auslesen?

Hintergrund der Frage: Mir ist der Gedanke gekommen, dass man ein sehr einfaches "Navigationsformular" dadurch erstellen könnte, dass man in einem Listenfeld die Namen der enthaltenen Formulare hat und diese per Klick-Ereignis öffnet. Jetzt bin ich nur zu faul die ganzen Formularnamen (ist ja auch fehlerträchtig) abzutippen.

Gruß
Klaus

MaggieMay

Hallo,

du kannst die Namen der Formulare aus der Systemtabelle MSysObjects auslesen.
Beispiel:SELECT name
FROM msysobjects
WHERE parentid = (select id from msysobjects where name='Forms');
Freundliche Grüße
MaggieMay

DF6GL

Hallo,


etwa so:

SELECT MSysObjects.Name FROM MSysObjects WHERE Type=-32768



Andere Möglichkeit:  Eine Wertliste zusammenstellen, indem die Allforms-Auflistung durchlaufen wird.
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

MzKlMu

Hallo,
in der Systemtabelle stehen aber auch die Unterformulare die dann im Listenfeld gezeigt werden aber nicht geöffnet werden sollten. Außerdem sind die Formularnamen oftmals etwas kryptisch. Ich würde daher eine eigene Tabelle machen mit einer 1:1 Beziehung zur Systemtabelle. Und dann in ein Feld der extra Tabelle die verwendbaren Formulare mit einem beschreibenden Text erfassen. Die Tabelle benötigt dann einen Fremdschlüssel (ist gleichzeitig auch Primärschlüssel) zur Systemtabelle. In einer Abfrage mit beiden Tabellen und einem INNER JOIN werden im Listenfeld nur die "brauchbaren" Formulare angezeigt.
Gruß Klaus

Klaus S. aus B

Hallo,

Super! Vielen Dank.

Ich habe jetzt mit der Abfrage eine Tabelle gefüllt, die noch zusätzliche Spalten für "Anzeigename" und "anzeigen j/n" enthält. So kann ich einfach das Listenfeld sinnvoll füllen.

Gruß
Klaus

MaggieMay

Hi,

das ist dann aber nicht mehr dynamisch auswertbar, sondern diese Tabelle muss zukünftig gepflegt werden.

Eine Alternative könnte sein:
1. die Anzeigbarkeit aus dem Formularnamen herzuleiten, indem du bspw. Formulare mit dem Namen "ufrm_*" oder "*_UF" ausschliesst und/oder nur Formulare mit dem Namen "frm_*" auswählst
2. die Formularbezeichnung aus der Beschreibung (=Description-Eigenschaft) des Formulars zu entnehmen
Achtung:
Die Property existiert nicht, wenn kein Beschreibungstext vorhanden ist.
Freundliche Grüße
MaggieMay