Neuigkeiten:

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

Mobiles Hauptmenü

SQL-Statement mit Leserechten

Begonnen von Accesser11, Mai 26, 2011, 14:56:10

⏪ vorheriges - nächstes ⏩

Accesser11

Hallo zusammen

Ich möchte trotz Leserechten des angemeldeten Benutzers eine DELETE-Abfrage ausführen.
Dazu habe ich folgendes gefunden http://groups.google.com/group/microsoft.public.de.access/browse_thread/thread/7c8b9d40a68ff7b1/.

Nun bei mir funktioniert das mit folgendem Code leider nicht. >:(


Dim ws As Workspace, db As Database
Set ws = DBEngine.CreateWorkspace("temp_Workspace", "Test", "", dbUseJet) 'Test User hat Schreibrechte; Anmeldung erfolgt erfolgreich
ws
MsgBox CurrentUser
Set db = ws.OpenDatabase(CurrentDb.Name)
SQL = "DELETE ..."
db.OpenRecordset (SQL) 'Immer Laufzeitfehler '3219' - Unzulässige Operation -> Anscheinend Problem mit den Rechten


Kann mir bitte jemand dabei helfen, so dass das DELETE-Statement erfolgreich ausgeführt wird? ???
Anmerkung - das DELETE-Statement funktioniert einwandfrei -> getestet.

Vielen Dank und Gruss
Accesser11


Accesser11

Hallo DF6GL

Habe ich auch bereits versucht.
Mit db.Execute SQL erscheint keine Fehlermeldung von VBA aus jedoch erscheint eine Fehlermeldung zu den Rechten.

Vielen Dank und Gruss
Accesser11

DF6GL

Hallo,

mhmm, sollte aber gehen, vorausgesetzt die Anmeldedaten stimmen (kein Kennwort ??) und der User hat wirklich die erforderlichen Rechte zugewiesen.

Kann denn der User "Test" bei normaler Anmeldung die Geschichte ausführen?


Accesser11

Hallo,

Ja, die Anmeldedaten stimmen. Habe es getestet, sonst würde er bereits dort eine Fehlermeldung anzeigen.
Der User "Test" ist Mitglied der Gruppe Administrator und somit kann er das auch ausführen (getestet).


Dankbare Grüsse
Accesser11


Accesser11

#5
Noch als Anmerkung, dem Benutzer Test habe ich zusätzlich noch direkt die nötigen Rechten vergeben.

Funktioniert trotzdem nicht. :(

Grüsse
Accesser11

Accesser11

Hallo,

Super, es funktioniert!!! ;D
Einfach statt db.OpenRecordset (SQL), db.Execute "SQL" gebrauchen.

Es war etwas anderes welches im AutoExec-Makro einen Fehler verursachte.

Vielen Dank für deine Hilfe und Sorry für die Unannehmlichkeiten.  ;)

Viele Grüsse
Accesser11

DF6GL

Hallo,


"Einfach statt db.OpenRecordset (SQL), db.Execute "SQL" gebrauchen."


habe ich das nicht gleich gesagt..??  ::)