Supportnet / Forum / Datenbanken
WITH OWNERACCESS OPTION
Frage
Ich habe ein Formular erstellt, welches eine ListBox enthält. Als RowSource habe ich einen SQL-String eingetragen, der den Zusatz "...WITH OWNERACCESS OPTION" enthält.
Grund: Der Anwender hat auf die zugrundeliegende Tabelle keine Leseberechtigung. Mit dem Zusatz kann er jedoch ausgewählte Felder in der ListBox sehen.
Nun möchte ich dem Anwender die Möglichkeit geben, die angezeigten Datensätze einzuschränken. Dafür erzeuge ich mittels eines Textfeldes und eines Buttons einen neuen RowSource, der der ListBox übergeben wird. Selbstverständlich wieder mit dem Zusatz "...WITH OWNERACCESS OPTION".
Aber...
Jetzt ignoriert Access diesen Zusatz und die ListBox bleibt leer.
Da ich dem Anwender aber keine Leseberechtigung einräumen darf, benötige ich eine Möglichkeit, dieses Problem zu umgehen.
Ich wäre auch für ganz andere Lösungsansätze dankbar.
Jürgen
Antwort 1 von Jürgen Zielenbach
Habe vergessen zu erwähnen, daß ich noch mit Access 97 arbeite.
Antwort 2 von Marie
hm, in RowSource WITH OWNERACCESS OPTION, weiss ich auch nicht ob das geht.
Nicht sehr schön, weil sich die Datenbank unnötig aufbläht, aber vielleicht kannst Du eine temp-Tabelle erzeugen, mit den Daten die eingesehen werden dürfen?
Eine andere Möglichkeit wäre eine mde zu erzeugen. Denn es ist denkbar schwierig mit einer mdb zu arbeiten ohne Einsicht in die Tabellen zu gewähren.
Gruß Marie
Nicht sehr schön, weil sich die Datenbank unnötig aufbläht, aber vielleicht kannst Du eine temp-Tabelle erzeugen, mit den Daten die eingesehen werden dürfen?
Eine andere Möglichkeit wäre eine mde zu erzeugen. Denn es ist denkbar schwierig mit einer mdb zu arbeiten ohne Einsicht in die Tabellen zu gewähren.
Gruß Marie
Antwort 3 von 14071
Hi,
wie wär´s die Daten, die gesehen werden dürfen mit einem flag zu versehen und über eine Abfrage zur Verfügung zu stellen?
hth
Jürgen
wie wär´s die Daten, die gesehen werden dürfen mit einem flag zu versehen und über eine Abfrage zur Verfügung zu stellen?
hth
Jürgen
Antwort 4 von Jürgen Zielenbach
Hi Marie,
vielen Dank für Deinen Tip mit der temporären Tabelle.
Habe das Problem folgendermaßen gelöst:
1. Erstellen einer temporären Tabelle, wo jeder Anwender Leserechte besitzt
2. Erstellen eines WorkSpace-Objekts mit Admin-Passwort
3. Öffnen der Suchmaske als Dialog.
4. Mit "INSERT INTO..." die selektierten Datensätze in die temporäre Tabelle kopiert.
5. RowSource der ListBox auf temporäre Tabelle geändert
6. Nach der Auswahl eines Eintrags wird das Fenster geschlossen und der Inhalt der temporären Tabelle gelöscht
Da das Fenster sich im Dialog befindet, hat der Anwender nicht die Möglichkeit, die Daten der temporären Tabelle zu lesen. (Naja, trotz so'n paar Startoptionen geht's irgendwie doch, aber vielleicht fällt mir noch was ein)
Vielen Dank erstmal für den Tip, hat mich schon ein schönes Stück weitergebracht.
Gruß
Jürgen
Hi 14071,
die Idee mit dem Flag ist prinzipiell nicht schlecht, jedoch soll der User theoretisch alle Daten sehen dürfen, halt nur nicht alle auf einmal und schon garnicht in der Datenblattansicht, so daß er sie über die Zwischenablage sonstwohin kopieren kann.
Danke Dir trotzdem.
Jürgen
P.S. Für Marie: "...WITH OWNERACCESS OPTION" direkt im Eigenschaftsfenster eingegeben funktioniert übrigens.
vielen Dank für Deinen Tip mit der temporären Tabelle.
Habe das Problem folgendermaßen gelöst:
1. Erstellen einer temporären Tabelle, wo jeder Anwender Leserechte besitzt
2. Erstellen eines WorkSpace-Objekts mit Admin-Passwort
3. Öffnen der Suchmaske als Dialog.
4. Mit "INSERT INTO..." die selektierten Datensätze in die temporäre Tabelle kopiert.
5. RowSource der ListBox auf temporäre Tabelle geändert
6. Nach der Auswahl eines Eintrags wird das Fenster geschlossen und der Inhalt der temporären Tabelle gelöscht
Da das Fenster sich im Dialog befindet, hat der Anwender nicht die Möglichkeit, die Daten der temporären Tabelle zu lesen. (Naja, trotz so'n paar Startoptionen geht's irgendwie doch, aber vielleicht fällt mir noch was ein)
Vielen Dank erstmal für den Tip, hat mich schon ein schönes Stück weitergebracht.
Gruß
Jürgen
Hi 14071,
die Idee mit dem Flag ist prinzipiell nicht schlecht, jedoch soll der User theoretisch alle Daten sehen dürfen, halt nur nicht alle auf einmal und schon garnicht in der Datenblattansicht, so daß er sie über die Zwischenablage sonstwohin kopieren kann.
Danke Dir trotzdem.
Jürgen
P.S. Für Marie: "...WITH OWNERACCESS OPTION" direkt im Eigenschaftsfenster eingegeben funktioniert übrigens.
Antwort 5 von Marie
Aber Du solltest jetzt vielleicht ein häufigeres Komprimieren einbauen, weil sich die Datenbank durch die temporäre Tabelle aufbläht und dann immer langsamer wird.
Gruß Marie
Gruß Marie
Antwort 6 von Jürgen Zielenbach
Das Programm ist für eine Mehrbenutzerumgebung gedacht. Es gibt eine Master-Datenbank, die alle temporären Tabellen enthält. Diese kopiert jeder User beim Programmstart in sein Temp-Verzeichnis und löscht sie beim Beenden des Programms wieder.
So wird es nicht zu einer aufgeblähten Datenbank kommen.
Gruß
Jürgen
So wird es nicht zu einer aufgeblähten Datenbank kommen.
Gruß
Jürgen

