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/ (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
Hallo,
wenn, dann:
db.Execute SQL
statt openrecordset...
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
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?
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
Noch als Anmerkung, dem Benutzer Test habe ich zusätzlich noch direkt die nötigen Rechten vergeben.
Funktioniert trotzdem nicht. :(
Grüsse
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
Hallo,
"Einfach statt db.OpenRecordset (SQL), db.Execute "SQL" gebrauchen."
habe ich das nicht gleich gesagt..?? ::)