Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WITH OWNER ACCESS OPTION

7 réponses
Avatar
Pat
Bonjour,

En VBA j'utilise le code suivant pour remplacer le contenu d'un champ qui
contient le libellé "Mot1" par "Mot2"

If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle = 'Mot2' WHERE Tble1.Libelle =
'Mot1'"
DoCmd.SetWarnings True
End If

Le hic c'est que je ne peux modifier le contenu de la table "Tble1" que
lorsque je suis connecté en qualité de propriétaire.

Afin de pouvoir faire les modifications en qualité d'utilisateur, sans droit
de modification, je pense qu'il faudrait rajouter WITH OWNER ACCESS OPTION à
mon code mais je ne sais pas ou ni comment

Merci de votre aide.

Pat

7 réponses

Avatar
Raymond [mvp]
Bonjour.

je t'affiche l'aide access car simple et explicite. il faut noter que ce
type de "dérogation" est très rarement utilisée car elle ouvre la porte à
tous les abus. A toi d'en faire ton profit.

WITH OWNERACCESS OPTION, déclaration (Microsoft Access SQL)

Dans un environnement multi-utilisateurs doté d'un groupe de travail
sécurisé, utilisez cette déclaration avec une requête pour octroyer à
l'utilisateur exécutant la requête les mêmes autorisations que le
propriétaire de la requête.

Syntaxe
instructionsql WITH OWNERACCESS OPTION

Notes
La déclaration WITH OWNERACCESS OPTION est facultative.

Dans l'exemple suivant, l'utilisateur a la possibilité de visualiser les
informations relatives aux salaires (même si par ailleurs il n'a pas
l'autorisation requise pour visualiser la table Payroll ), sous réserve que
le propriétaire de la requête ait bien cette autorisation :


SELECT LastName, FirstName, Salary
FROM Employees
ORDER BY LastName
WITH OWNERACCESS OPTION;


Si un utilisateur n'a pas l'autorisation de créer une table ou d'y ajouter
des données, vous pouvez utiliser WITH OWNERACCESS OPTION pour permettre à
cet utilisateur d'exécuter une requête Création de table ou une requête
Ajout.

Si vous désirez appliquer les paramètres de sécurité du groupe de travail et
les autorisations des utilisateurs, n'utilisez pas la déclaration WITH
OWNERACCESS OPTION.

Cette option nécessite que vous ayez accès au fichier System.mdw associé à
la base de données. Elle n'est utile que dans le contexte d'une
configuration multi-utilisateur sécurisée.


--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79456$0$1017$
|
| Bonjour,
|
| En VBA j'utilise le code suivant pour remplacer le contenu d'un champ qui
| contient le libellé "Mot1" par "Mot2"
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle = 'Mot2' WHERE Tble1.Libelle
| 'Mot1'"
| DoCmd.SetWarnings True
| End If
|
| Le hic c'est que je ne peux modifier le contenu de la table "Tble1" que
| lorsque je suis connecté en qualité de propriétaire.
|
| Afin de pouvoir faire les modifications en qualité d'utilisateur, sans
droit
| de modification, je pense qu'il faudrait rajouter WITH OWNER ACCESS OPTION
à
| mon code mais je ne sais pas ou ni comment
|
| Merci de votre aide.
|
| Pat
|
|
Avatar
Pat
Merci beaucoup Raymond pour cette réponse rapide. Dans une requête Access je
savais le faire, mais dans un code VBA je n'y arrive pas. J'ai essayé sans
succès.

If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
DoCmd.SetWarnings False
WITH OWNERACCESS OPTION; DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle =
'Mot2' WHERE Tble1.Libelle= 'Mot1'"
DoCmd.SetWarnings True
End If

Bien à toi

"Raymond [mvp]" a écrit dans le message de news:
uixs$
Bonjour.

je t'affiche l'aide access car simple et explicite. il faut noter que ce
type de "dérogation" est très rarement utilisée car elle ouvre la porte à
tous les abus. A toi d'en faire ton profit.

WITH OWNERACCESS OPTION, déclaration (Microsoft Access SQL)

Dans un environnement multi-utilisateurs doté d'un groupe de travail
sécurisé, utilisez cette déclaration avec une requête pour octroyer à
l'utilisateur exécutant la requête les mêmes autorisations que le
propriétaire de la requête.

Syntaxe
instructionsql WITH OWNERACCESS OPTION

Notes
La déclaration WITH OWNERACCESS OPTION est facultative.

Dans l'exemple suivant, l'utilisateur a la possibilité de visualiser les
informations relatives aux salaires (même si par ailleurs il n'a pas
l'autorisation requise pour visualiser la table Payroll ), sous réserve
que
le propriétaire de la requête ait bien cette autorisation :


SELECT LastName, FirstName, Salary
FROM Employees
ORDER BY LastName
WITH OWNERACCESS OPTION;


Si un utilisateur n'a pas l'autorisation de créer une table ou d'y ajouter
des données, vous pouvez utiliser WITH OWNERACCESS OPTION pour permettre à
cet utilisateur d'exécuter une requête Création de table ou une requête
Ajout.

Si vous désirez appliquer les paramètres de sécurité du groupe de travail
et
les autorisations des utilisateurs, n'utilisez pas la déclaration WITH
OWNERACCESS OPTION.

Cette option nécessite que vous ayez accès au fichier System.mdw associé à
la base de données. Elle n'est utile que dans le contexte d'une
configuration multi-utilisateur sécurisée.


--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79456$0$1017$
|
| Bonjour,
|
| En VBA j'utilise le code suivant pour remplacer le contenu d'un champ
qui
| contient le libellé "Mot1" par "Mot2"
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle = 'Mot2' WHERE
Tble1.Libelle
| 'Mot1'"
| DoCmd.SetWarnings True

| End If
|
| Le hic c'est que je ne peux modifier le contenu de la table "Tble1" que
| lorsque je suis connecté en qualité de propriétaire.
|
| Afin de pouvoir faire les modifications en qualité d'utilisateur, sans
droit
| de modification, je pense qu'il faudrait rajouter WITH OWNER ACCESS
OPTION
à
| mon code mais je ne sais pas ou ni comment
|
| Merci de votre aide.
|
| Pat
|
|






Avatar
Raymond [mvp]
je ne connais pas personnellement cette syntaxe dans le vba, mais seulement
dans le sql.
où as-tu pris les références à cette option dans le vba ?

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79d69$0$1393$
|
| Merci beaucoup Raymond pour cette réponse rapide. Dans une requête Access
je
| savais le faire, mais dans un code VBA je n'y arrive pas. J'ai essayé sans
| succès.
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| WITH OWNERACCESS OPTION; DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle | 'Mot2' WHERE Tble1.Libelle= 'Mot1'"
| DoCmd.SetWarnings True
| End If
|
| Bien à toi
|
Avatar
Pat
Ca je ne me souviens plus. J'ai récupéré ce bout de code que j'avais déjà
utilisé ailleurs et je l'ai adapté, mais ce coup si j'ai besoin du WITH
OWNERACCESS OPTION

Si c'est vraiment pas possible se passerai par une requête classique.

Merci encore à toi.

"Raymond [mvp]" a écrit dans le message de news:

je ne connais pas personnellement cette syntaxe dans le vba, mais
seulement
dans le sql.
où as-tu pris les références à cette option dans le vba ?

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79d69$0$1393$
|
| Merci beaucoup Raymond pour cette réponse rapide. Dans une requête
Access
je
| savais le faire, mais dans un code VBA je n'y arrive pas. J'ai essayé
sans
| succès.
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| WITH OWNERACCESS OPTION; DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle > | 'Mot2' WHERE Tble1.Libelle= 'Mot1'"
| DoCmd.SetWarnings True
| End If
|
| Bien à toi
|




Avatar
Eric
Bonjour,

Puisqu'il s'agit d'accorder des autorisations à un utilisateur, le
traitement WITH OWNERACCESS OPTION doit être incorporé à l'instruction
SQL en fin d'instruction, non ?

Ca devrait être :
If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle = 'Mot2' WHERE
Tble1.Libelle= 'Mot1' WITH OWNERACCESS OPTION;"
DoCmd.SetWarnings True
End if

Ca je ne me souviens plus. J'ai récupéré ce bout de code que j'avais déjà
utilisé ailleurs et je l'ai adapté, mais ce coup si j'ai besoin du WITH
OWNERACCESS OPTION

Si c'est vraiment pas possible se passerai par une requête classique.

Merci encore à toi.

"Raymond [mvp]" a écrit dans le message de news:

je ne connais pas personnellement cette syntaxe dans le vba, mais
seulement
dans le sql.
où as-tu pris les références à cette option dans le vba ?

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79d69$0$1393$
|
| Merci beaucoup Raymond pour cette réponse rapide. Dans une requête
Access
je
| savais le faire, mais dans un code VBA je n'y arrive pas. J'ai essayé
sans
| succès.
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| WITH OWNERACCESS OPTION; DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle >> | 'Mot2' WHERE Tble1.Libelle= 'Mot1'"
| DoCmd.SetWarnings True
| End If
|
| Bien à toi
|







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Avatar
Pat
Bien vu Eric, le code ne bogue plus mais maintenant j'ai le message
"Impossible de modifier les enregistrements, pas d'autorisation de mise à
jour sur la table Tble1"

Je pensais que WITH OWNERACCESS OPTION allait justement contourner ce
problème.

Une idée?

Bonne journée.

"Eric" a écrit dans le message de news:

Bonjour,

Puisqu'il s'agit d'accorder des autorisations à un utilisateur, le
traitement WITH OWNERACCESS OPTION doit être incorporé à l'instruction SQL
en fin d'instruction, non ?

Ca devrait être :
If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle = 'Mot2' WHERE Tble1.Libelle=
'Mot1' WITH OWNERACCESS OPTION;"
DoCmd.SetWarnings True
End if

Ca je ne me souviens plus. J'ai récupéré ce bout de code que j'avais déjà
utilisé ailleurs et je l'ai adapté, mais ce coup si j'ai besoin du WITH
OWNERACCESS OPTION

Si c'est vraiment pas possible se passerai par une requête classique.

Merci encore à toi.

"Raymond [mvp]" a écrit dans le message de news:

je ne connais pas personnellement cette syntaxe dans le vba, mais
seulement
dans le sql.
où as-tu pris les références à cette option dans le vba ?

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79d69$0$1393$
|
| Merci beaucoup Raymond pour cette réponse rapide. Dans une requête
Access
je
| savais le faire, mais dans un code VBA je n'y arrive pas. J'ai essayé
sans
| succès.
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| WITH OWNERACCESS OPTION; DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle
| 'Mot2' WHERE Tble1.Libelle= 'Mot1'"
| DoCmd.SetWarnings True



| End If
|
| Bien à toi
|







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr







Avatar
Pat
Bon ben comme le code VBA même avec "WITH OWNERACCESS OPTION" refusait de
faire la mise à jour en signalant que l'utilisateur n'avait pas les droits
nécessaires, je l'ai remplacé par une requête mise à jours avec "WITH
OWNERACCESS OPTION" et cela fonctionne.

Pat

"Pat" a écrit dans le message de news:
47f8a359$0$22459$
Bien vu Eric, le code ne bogue plus mais maintenant j'ai le message
"Impossible de modifier les enregistrements, pas d'autorisation de mise à
jour sur la table Tble1"

Je pensais que WITH OWNERACCESS OPTION allait justement contourner ce
problème.

Une idée?

Bonne journée.

"Eric" a écrit dans le message de news:

Bonjour,

Puisqu'il s'agit d'accorder des autorisations à un utilisateur, le
traitement WITH OWNERACCESS OPTION doit être incorporé à l'instruction
SQL en fin d'instruction, non ?

Ca devrait être :
If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle = 'Mot2' WHERE
Tble1.Libelle= 'Mot1' WITH OWNERACCESS OPTION;"
DoCmd.SetWarnings True
End if

Ca je ne me souviens plus. J'ai récupéré ce bout de code que j'avais
déjà utilisé ailleurs et je l'ai adapté, mais ce coup si j'ai besoin du
WITH OWNERACCESS OPTION

Si c'est vraiment pas possible se passerai par une requête classique.

Merci encore à toi.

"Raymond [mvp]" a écrit dans le message de
news:
je ne connais pas personnellement cette syntaxe dans le vba, mais
seulement
dans le sql.
où as-tu pris les références à cette option dans le vba ?

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
http://access2007.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pat" a écrit dans le message de news:
47f79d69$0$1393$
|
| Merci beaucoup Raymond pour cette réponse rapide. Dans une requête
Access
je
| savais le faire, mais dans un code VBA je n'y arrive pas. J'ai essayé
sans
| succès.
|
| If DCount("Libelle", "Tble1", "Libelle='" & "Mot1" & "'") > 0 Then
| DoCmd.SetWarnings False
| WITH OWNERACCESS OPTION; DoCmd.RunSQL "UPDATE Tble1 SET Tble1.Libelle
| 'Mot2' WHERE Tble1.Libelle= 'Mot1'"
| DoCmd.SetWarnings True




| End If
|
| Bien à toi
|







--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr