Neuigkeiten:

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

Mobiles Hauptmenü

Objekte per VBA ein/ausblenden

Begonnen von dalli, Februar 23, 2014, 22:28:51

⏪ vorheriges - nächstes ⏩

dalli

Hallo,
mein Problem: wenn ich in einer (offenen) Access-Datei ausgeblendete Objekte oder Systemobjekte sichtbar mache, wird diese Einstellung anscheinend auch auf eine Access-Anwendung übertragen, so dass deren ausgeblendete Tabellen, Abfragen etc. wieder sichtbar werden.
Gibt es einen VBA-Befehl, um die entsprechenden Häkchen im Navigationsbereich zu deaktivierten? (andere Optionen kann ich lt. Access-Hilfe steuern, für diese habe ich allerdings bisher nichts gefunden.)
Danke!

Hondo

Hallo,
das wird dir nichts nützen. Der Beste Weg ist, den Navigationsbereich und den Ribbon fix auszublenden, und Shift-Taste und F10-Taste zu sperren.
Aber nicht dass du dich selbst aussperrst, mach das nur an einer Kopie.

Ribbon und Navigationsleiste dauerhaft ausblenden:
Private Sub Form_current()
    DoCmd.ShowToolbar "Ribbon", acToolbarNo 'ribbon weg
    DoCmd.SelectObject acTable, , True 'Navibereich Weg
    RunCommand acCmdWindowHide
End sub


Shift-Taste:
http://www.donkarl.com?FAQ1.8 (Link in 1 Zeile)

F10-Taste:
http://foren.activevb.de/archiv/vb-classic/thread-388616/beitrag-388621/Re-Funktionstaste-F10-deaktivie/

Gruß Andreas

dalli

Hallo,
vielen Dank für die Antwort. Hilft mir aber leider nicht weiter -> ich muss weiter ausholen bei der Problembeschreibung:
Meine Anwendung läuft in einem Hauptformular, Navigationsbereich und Menüband sind ausgeblendet. Der User soll aber die Möglichkeit haben, mittels frei definierbarer Abfragen lesend auf (nicht abgeblendete) Dateien zugreifen zu können (Datenanalysefunktion). Hierfür habe ich eine Routine geschrieben, bei deren Aufruf ein selbstgeschriebenes Ribbon erscheint, das Abfragefunktionalitäten bereitstellt. Soweit - so gut. Allerdings sollen Tabellen oder Abfragen, die ich abgeblendet habe (oder Systemobjekte), nicht im Tabellenauswahlfenster auftauchen.
Wenn ich (oder andere User...) bei einer anderen Access-Datei aber die Option "Ausgeblendete Objekte anzeigen" aktiviere, kann ich plötzlich auch in der o.g. Anwendung ausgeblendete Tabellen oder Abfragen als Datenquelle für meine Analyseabfragen sehen . das ist nicht gewollt. Meine Idee war, die Option per VBA-Befehl immer zu deaktivieren, bevor die Analysefunktion ausgeführt wird. Nur finde ich keinen VBA-Code dafür.
Gruß
Jörg

Hondo

Wenn der Navigationsbereich ausgeblendet ist, wie bzw. wo kann der User dann Tabellen auswählen?

dalli

Der Anwender sieht die Tabellen über die Funktion "Tabellen anzeigen" bei der Erstellung von Abfragen. Dabei sollten nur die nicht ausgeblendeten Tabellen/Abfragen angezeigt werden, nicht aber die ausgeblendeten und schon gar nicht die Systemobjekte ... werden sie aber, wenn, wie oben beschrieben, in einer anderen Access-Datei in den Navigationsoptionen deren Anzeige eingestellt wurde...

Hondo

Die Anwender können nach gutdünken Abfragen erstellen?
Das ist aber ein großes Sicherheitsrisiko. Tabellen leeren, löschen, Daten wild Manipulieren etc, da sträuben sich mir die Haare.
Besser wäre es du erstellst ein Formular wo die User erlaubte Tabellen, Tabellenfelder und vorallem erlaubte Aktionen, also NUR! Select auswählen können. Solche "Abfragengeneratoren" kann man relativ einfach selbst erstellen.

Andreas

dalli

Die Abfragemöglichkeiten sind schon begrenzt:
Der Anwender kann nur ein Query-Objekt ohne SQL über die Benutzeroberfläche bearbeiten, wobei das Query mit "readonly" definiert ist. Somit sind Datenänderungen nicht möglich. Und für Funktionsabfragen steht keine Möglichkeit der Ausführung parat.

dalli

Hallo,
habs gefunden (siehe Anhang).
Die von mir gesuchten Optionen lauten:
ShowHiddenObjects
ShowSystemObjects
Nachdem ich beide auf false gesetzt habe, läufts jetzt wie gewünscht.