Problème de version ?

Le
Richard Martin
Le code en dessous me permet de désactiver la touche "SHIFT" pour
l'ouverture d'une bd.

Il fonctionne dans mes applications Access 97 que j'ai converti en version
2000. Mais :

Si je démarre une nouvelle application Access 2000 et que j'importe le
module qui contient ce code ainsi que la macro Autokeys qui exécute le code
pour la fonction PROTECT et DEPROTECT j'ai un message d'erreur au niveau de
la compilation.

J'ai vérifié mes références et coché toutes celles qui correspondent aux
fichiers qui fonctionnent et ça ne fonctionne pas plus.

Avez-vous des suggestions ?

Merci !

___________________________________________________________
Option Compare Database
Option Explicit
Dim pwd As String

Public Function InhiberBypass(bValeur As Boolean)
' Crée et/ou règle la propriété AllowBypassKey de l'application
'bValeur sera passé par la macro AutoKey d'appel (False ou True)
Dim prpAllow As Property
On Error GoTo InhiberByPassErreur

CurrentDb().Properties("AllowBypassKey") = bValeur

InhiberByPassExit:
Exit Function
InhiberByPassErreur:
' Contrôle si erreur "Propriété pas trouvée"
If Err.Number = 3270 Then
Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey", dbBoolean,
bValeur)
CurrentDb().Properties.Append prpAllow
End If
Resume InhiberByPassExit
End Function

Public Function deprotect()
pwd = "1234"
Dim a As String
a = InputBox("Mot de passe : ")
If a = pwd Then
InhiberBypass (1)
MsgBox "Relancer l'application, la touche shift est maintenant active"
Else
MsgBox "Erreur mot de passe"
End If

End Function
Public Function protect()
InhiberBypass (0)
MsgBox "Relancer l'application, la touche shift est désactivée"
End Function
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #5034491
bonjour.

c'est un simple problème de True/False:
Remplace
InhiberBypass (1)
par
InhiberBypass (-1) ou
InhiberBypass (True) 'qui est plus élégant.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:
Le code en dessous me permet de désactiver la touche "SHIFT" pour
l'ouverture d'une bd.

Il fonctionne dans mes applications Access 97 que j'ai converti en version
2000. Mais :

Si je démarre une nouvelle application Access 2000 et que j'importe le
module qui contient ce code ainsi que la macro Autokeys qui exécute le
code

pour la fonction PROTECT et DEPROTECT j'ai un message d'erreur au niveau
de

la compilation.

J'ai vérifié mes références et coché toutes celles qui correspondent aux
fichiers qui fonctionnent et ça ne fonctionne pas plus.

Avez-vous des suggestions ?

Merci !

___________________________________________________________
Option Compare Database
Option Explicit
Dim pwd As String

Public Function InhiberBypass(bValeur As Boolean)
' Crée et/ou règle la propriété AllowBypassKey de l'application
'bValeur sera passé par la macro AutoKey d'appel (False ou True)
Dim prpAllow As Property
On Error GoTo InhiberByPassErreur

CurrentDb().Properties("AllowBypassKey") = bValeur

InhiberByPassExit:
Exit Function
InhiberByPassErreur:
' Contrôle si erreur "Propriété pas trouvée"
If Err.Number = 3270 Then
Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey",
dbBoolean,

bValeur)
CurrentDb().Properties.Append prpAllow
End If
Resume InhiberByPassExit
End Function

Public Function deprotect()
pwd = "1234"
Dim a As String
a = InputBox("Mot de passe : ")
If a = pwd Then
InhiberBypass (1)
MsgBox "Relancer l'application, la touche shift est maintenant active"
Else
MsgBox "Erreur mot de passe"
End If

End Function
Public Function protect()
InhiberBypass (0)
MsgBox "Relancer l'application, la touche shift est désactivée"
End Function




3stone
Le #5034431
Salut Richard et Raymond,

"Raymond [mvp]"

c'est un simple problème de True/False:
Remplace
InhiberBypass (1)



Tu es sûr Raymond ?
Car toute valeur différente de 0 (zéro) est considérée comme True...



Richard:
Tu doit avoir les deux références: DAO et ADO
Fait passer DAO devant (plus haut) que ADO



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Raymond [mvp]
Le #5034411
Bonjour Pierre.

je me méfie de tout, tu sais bien ?
ne serait-ce que mon api d'aujourd'hui qui ne fonctionnait pas et en la
recopiant, ça marche.
j'ai simplement pensé qu'après la conversion, il y aurait eu d'autres
problèmes avant celui-ci si ado était avant dao.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"3stone" news:
Salut Richard et Raymond,

"Raymond [mvp]"

c'est un simple problème de True/False:
Remplace
InhiberBypass (1)



Tu es sûr Raymond ?
Car toute valeur différente de 0 (zéro) est considérée comme True...



Richard:
Tu doit avoir les deux références: DAO et ADO
Fait passer DAO devant (plus haut) que ADO




Richard Martin
Le #5034101
J'ai changé le 0 et le 1 pour False et True dans le InhiberBypass (1) et ça
ne fonctionne pas non plus.

Erreur de compilation, Variable non définie.
Sur "dbboolean" dans le code.

Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey", dbBoolean

____________________________________________________________
"Raymond [mvp]" news:
bonjour.

c'est un simple problème de True/False:
Remplace
InhiberBypass (1)
par
InhiberBypass (-1) ou
InhiberBypass (True) 'qui est plus élégant.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:
Le code en dessous me permet de désactiver la touche "SHIFT" pour
l'ouverture d'une bd.

Il fonctionne dans mes applications Access 97 que j'ai converti en
version


2000. Mais :

Si je démarre une nouvelle application Access 2000 et que j'importe le
module qui contient ce code ainsi que la macro Autokeys qui exécute le
code

pour la fonction PROTECT et DEPROTECT j'ai un message d'erreur au niveau
de

la compilation.

J'ai vérifié mes références et coché toutes celles qui correspondent aux
fichiers qui fonctionnent et ça ne fonctionne pas plus.

Avez-vous des suggestions ?

Merci !

___________________________________________________________
Option Compare Database
Option Explicit
Dim pwd As String

Public Function InhiberBypass(bValeur As Boolean)
' Crée et/ou règle la propriété AllowBypassKey de l'application
'bValeur sera passé par la macro AutoKey d'appel (False ou True)
Dim prpAllow As Property
On Error GoTo InhiberByPassErreur

CurrentDb().Properties("AllowBypassKey") = bValeur

InhiberByPassExit:
Exit Function
InhiberByPassErreur:
' Contrôle si erreur "Propriété pas trouvée"
If Err.Number = 3270 Then
Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey",
dbBoolean,

bValeur)
CurrentDb().Properties.Append prpAllow
End If
Resume InhiberByPassExit
End Function

Public Function deprotect()
pwd = "1234"
Dim a As String
a = InputBox("Mot de passe : ")
If a = pwd Then
InhiberBypass (1)
MsgBox "Relancer l'application, la touche shift est maintenant
active"


Else
MsgBox "Erreur mot de passe"
End If

End Function
Public Function protect()
InhiberBypass (0)
MsgBox "Relancer l'application, la touche shift est désactivée"
End Function








Raymond [mvp]
Le #5034011
Je commence à me perdre dans tes erreurs.

je te donne ci-dessous une fonction complète qui doit fonctionner:

Private Sub Commande0_Click()
ModifiePropr "AllowBypassKey", dbBoolean, True
End Sub

Function ModifiePropr(chNomPropriété As String, _
varTypeProp As Variant, _
varValeurProp As Variant) As Integer
Dim bds As Database, prp As Property
Const conErreurPropNonTrouvée = 3270
Set bds = CurrentDb
On Error GoTo Change_Err
bds.Properties(chNomPropriété) = varValeurProp
ModifiePropr = True
Change_Sortie:
Exit Function
Change_Err:
If Err = conErreurPropNonTrouvée Then ' Propriété non trouvée.
Set prp = bds.CreateProperty(chNomPropriété, varTypeProp,
varValeurProp)
bds.Properties.Append prp
Resume Next
Else
' Erreur inconnue.
ModifiePropr = False
Resume Change_Sortie
End If
End Function


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:
J'ai changé le 0 et le 1 pour False et True dans le InhiberBypass (1) et
ça

ne fonctionne pas non plus.

Erreur de compilation, Variable non définie.
Sur "dbboolean" dans le code.

Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey", dbBoolean


Richard Martin
Le #5033871
Ta procédure fonctionnerait, mais ça me donne toujours, même dans la tienne
une erreur de compilation sur DBBOOLEAN.

Pourtant mes applications de v97 converti en v2000 fonctionne. Mais si
j'importe le module du fichier converti qui fonctionne dans une autre
application v2000 toujours, j'ai le fameux Erreur de compilation sur
DBBOOLEAN.

C'est bizarre !

"Raymond [mvp]" news:
Je commence à me perdre dans tes erreurs.

je te donne ci-dessous une fonction complète qui doit fonctionner:

Private Sub Commande0_Click()
ModifiePropr "AllowBypassKey", dbBoolean, True
End Sub

Function ModifiePropr(chNomPropriété As String, _
varTypeProp As Variant, _
varValeurProp As Variant) As Integer
Dim bds As Database, prp As Property
Const conErreurPropNonTrouvée = 3270
Set bds = CurrentDb
On Error GoTo Change_Err
bds.Properties(chNomPropriété) = varValeurProp
ModifiePropr = True
Change_Sortie:
Exit Function
Change_Err:
If Err = conErreurPropNonTrouvée Then ' Propriété non trouvée.
Set prp = bds.CreateProperty(chNomPropriété, varTypeProp,
varValeurProp)
bds.Properties.Append prp
Resume Next
Else
' Erreur inconnue.
ModifiePropr = False
Resume Change_Sortie
End If
End Function


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:
J'ai changé le 0 et le 1 pour False et True dans le InhiberBypass (1) et
ça

ne fonctionne pas non plus.

Erreur de compilation, Variable non définie.
Sur "dbboolean" dans le code.

Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey", dbBoolean






Richard Martin
Le #5033861
Même problème avec ton code !!!

Le DBBOOLEAN ne veut pas se compiler.

Pourtant mes applications 97 converti en 2000 fonctionnent. Un copier
coller du code ou une importation dans la nouvelle application ne fonctionne
pas.


"Raymond [mvp]" news:
Je commence à me perdre dans tes erreurs.

je te donne ci-dessous une fonction complète qui doit fonctionner:

Private Sub Commande0_Click()
ModifiePropr "AllowBypassKey", dbBoolean, True
End Sub

Function ModifiePropr(chNomPropriété As String, _
varTypeProp As Variant, _
varValeurProp As Variant) As Integer
Dim bds As Database, prp As Property
Const conErreurPropNonTrouvée = 3270
Set bds = CurrentDb
On Error GoTo Change_Err
bds.Properties(chNomPropriété) = varValeurProp
ModifiePropr = True
Change_Sortie:
Exit Function
Change_Err:
If Err = conErreurPropNonTrouvée Then ' Propriété non trouvée.
Set prp = bds.CreateProperty(chNomPropriété, varTypeProp,
varValeurProp)
bds.Properties.Append prp
Resume Next
Else
' Erreur inconnue.
ModifiePropr = False
Resume Change_Sortie
End If
End Function


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:
J'ai changé le 0 et le 1 pour False et True dans le InhiberBypass (1) et
ça

ne fonctionne pas non plus.

Erreur de compilation, Variable non définie.
Sur "dbboolean" dans le code.

Set prpAllow = CurrentDb().CreateProperty("AllowBypassKey", dbBoolean






Raymond [mvp]
Le #5033701
Bonjour.

DbBoolean est une constante DAO, ce qui veut dire que tu n'as pas coché la
référence dao3.6, ou que tu as une référence marquée manquante, avec un
penchant pour la 1ere idée.
si tu as ADO également, place DAO avant ADO.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:u1%
Même problème avec ton code !!!

Le DBBOOLEAN ne veut pas se compiler.

Pourtant mes applications 97 converti en 2000 fonctionnent. Un copier
coller du code ou une importation dans la nouvelle application ne
fonctionne

pas.


Richard Martin
Le #5032531
J'ai coché le DAO3,6 et la version ADO Ext.2.5 for DDL security et ça ne
fonctionne pas. Ce n'est pas écrit manquant.

Dans les références que doit-on cocher pour que tout fonctionne en général ?


"Raymond [mvp]" news:
Bonjour.

DbBoolean est une constante DAO, ce qui veut dire que tu n'as pas coché la
référence dao3.6, ou que tu as une référence marquée manquante, avec un
penchant pour la 1ere idée.
si tu as ADO également, place DAO avant ADO.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:u1%
Même problème avec ton code !!!

Le DBBOOLEAN ne veut pas se compiler.

Pourtant mes applications 97 converti en 2000 fonctionnent. Un copier
coller du code ou une importation dans la nouvelle application ne
fonctionne

pas.






Raymond [mvp]
Le #5032511
Si tu n'utilises pas ADO, décoche toutes les lignes faisant référence à ADO.
recompile.
toujours erreur ?
envoie-moi ta base que je jette un oeil demain matin. envoie en zip ou rar
et enlève XYZ. dans mon adresse.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Richard Martin" news:e7$
J'ai coché le DAO3,6 et la version ADO Ext.2.5 for DDL security et ça ne
fonctionne pas. Ce n'est pas écrit manquant.

Dans les références que doit-on cocher pour que tout fonctionne en général
?


Publicité
Poster une réponse
Anonyme