Erreur code vba
Résolu
sanae
-
sanae -
sanae -
Bonjour,
j ai ecrit un code vba mais il me donne une erreur lors de l execution est ce que vous pouvvez maider a la corriger???
merci d avance
j ai ecrit un code vba mais il me donne une erreur lors de l execution est ce que vous pouvvez maider a la corriger???
merci d avance
A voir également:
- Erreur code vba
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
43 réponses
sanae
j ai trouvé un autre code ca marche bien mais comme je t ai dit je veux que si le user=administrateur le formulaire menu se lance et si user=limité le formulaire menu1 se lance mais quand j'execute les deux formulaires se lancent les deux a la fois quelque soit le type de user il parait qu il ya une erreur est ce que je peux t envoie le code et m aider a le corriger??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
d accord mais tu vas me répondre le plus vite possible stp pcq ca doit etre une petite erreur merci
je te l envoie mnt
je te l envoie mnt
le voila
Private Sub Commande4_Click()
Static i As Byte
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT [LOGIN],[PASSWORD] FROM USER WHERE LOGIN = '" & Me.LOGIN & "' AND [PASSWORD]='" & Me.PASSWORD & "';")
If Not rs.EOF Then
If User = "administrateur" Then
stDoName = "menu1"
DoCmd.OpenForm "menu1", acNormal, , , , acWindowNormal
End If
If User = "limité" Then
stDoName = "menu"
DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
End If
DoCmd.Close acForm, "Formulaire1"
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
End Sub
Private Sub Commande4_Click()
Static i As Byte
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT [LOGIN],[PASSWORD] FROM USER WHERE LOGIN = '" & Me.LOGIN & "' AND [PASSWORD]='" & Me.PASSWORD & "';")
If Not rs.EOF Then
If User = "administrateur" Then
stDoName = "menu1"
DoCmd.OpenForm "menu1", acNormal, , , , acWindowNormal
End If
If User = "limité" Then
stDoName = "menu"
DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
End If
DoCmd.Close acForm, "Formulaire1"
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
End Sub
non pas l'erreur de l autre fois
et oui biens sur je suis en bts gi meis je n ai jamais etudié vba et j ai arriver a réaliser plusieurs choses compris??
et oui biens sur je suis en bts gi meis je n ai jamais etudié vba et j ai arriver a réaliser plusieurs choses compris??
Tu dit que les deux formulaires se lancent tous les deux:
Ton message:
mais quand j'execute les deux formulaires se lancent les deux a la fois quelque soit le type de user il parait qu il ya une erreur est ce que je peux t envoie le code et m aider a le corriger??
Maintenant tu me dit qu'aucun de tes formulaires ne se lance!!! Bon est ce que ta variable cotient d'abord "administrateur" et "limie" ? est ce que tu l'a affiché ?
Ton message:
mais quand j'execute les deux formulaires se lancent les deux a la fois quelque soit le type de user il parait qu il ya une erreur est ce que je peux t envoie le code et m aider a le corriger??
Maintenant tu me dit qu'aucun de tes formulaires ne se lance!!! Bon est ce que ta variable cotient d'abord "administrateur" et "limie" ? est ce que tu l'a affiché ?
le probléme n est pas dans les variables je crois le probléme réside dans ces lignes
DoCmd.OpenForm "menu1", acNormal, , , , acWindowNormal
DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
je ne sais pas exactement ou les pllacer
car quand je les mis aprés les if les 2 formulaires se lancent et qund je les place dans if ils ne se lancent pas c ca le prb
DoCmd.OpenForm "menu1", acNormal, , , , acWindowNormal
DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
je ne sais pas exactement ou les pllacer
car quand je les mis aprés les if les 2 formulaires se lancent et qund je les place dans if ils ne se lancent pas c ca le prb
Aprés les if les deux formulaires se lancent : c'est à dire tes lignes sont correctes le problème donc c'est au niveau de ton test: Afficher la variable user et voir s'elle prend bien les valeurs "administrateur" et "limite"
Ton test ça marche pas,
Ton test ça marche pas,
oui la variable user de la table prend les valeurs administrateur et limite
voila le code
est ce qu'on doit mettre les 2 lignes aprés if ou quoi?????????????????????????
:Private Sub Commande4_Click()
Static i As Byte
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT [LOGIN],[PASSWORD] FROM USER WHERE LOGIN = '" & Me.LOGIN & "' AND [PASSWORD]='" & Me.PASSWORD & "';")
If Not rs.EOF Then
If User = "administrateur" Then
stDoName = "menu1"
End If
DoCmd.OpenForm "menu1", acNormal, , , , acWindowNormal
If User = "limite" Then
stDoName = "menu"
End If
DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "Formulaire1"
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
End Sub
voila le code
est ce qu'on doit mettre les 2 lignes aprés if ou quoi?????????????????????????
:Private Sub Commande4_Click()
Static i As Byte
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT [LOGIN],[PASSWORD] FROM USER WHERE LOGIN = '" & Me.LOGIN & "' AND [PASSWORD]='" & Me.PASSWORD & "';")
If Not rs.EOF Then
If User = "administrateur" Then
stDoName = "menu1"
End If
DoCmd.OpenForm "menu1", acNormal, , , , acWindowNormal
If User = "limite" Then
stDoName = "menu"
End If
DoCmd.OpenForm "menu", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "Formulaire1"
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If
End Sub
Faites ceci:
MsgBox (User ) /////Pour voir le contenu de ta variable d'abord:
If User = "administrateur" then
menu1.Show
menu.Hide
Else
menu1.Hide
menu.Show
End if
MsgBox (User ) /////Pour voir le contenu de ta variable d'abord:
If User = "administrateur" then
menu1.Show
menu.Hide
Else
menu1.Hide
menu.Show
End if
hadik la variable rah c'est un champs de la table tu vois???ma3raft mandir 3ta9ni rah mab9a walo khassni nkaml l'application
chokran
chokran
Donc au niveau de cette ligne il faut récupérer aussi la variable "USER"
Set rs = db.OpenRecordset("SELECT [LOGIN],[PASSWORD] FROM USER WHERE LOGIN = '" & Me.LOGIN & "' AND [PASSWORD]='" & Me.PASSWORD & "';")
C'est à dire :
select login, password, user into :login-loc , :password-loc, :user-loc where login = me.login and password = Me.password.
"Choufi ntia la syntaxe de la requette ok"
login-loc, password-loc et user-loc sont des variables locales à déclarer (dim login-loc.....par exemple) pour stocker les info issus de la base ensuite:
Afficher "user-loc " (Msgbox(user-loc )) chofi achnou fiha 3ad diri les tests.
si user-loc = "administrateur"
ouvrir menu1
sinon
ouvrir menu
endif
Hani 3ta9tek wakha ntia 3yana m3a rassek gelna lik sifti hadakchi dialek f mail mabritich (c'est: amine-sys).
Bon thlay o bslama 3lik
Set rs = db.OpenRecordset("SELECT [LOGIN],[PASSWORD] FROM USER WHERE LOGIN = '" & Me.LOGIN & "' AND [PASSWORD]='" & Me.PASSWORD & "';")
C'est à dire :
select login, password, user into :login-loc , :password-loc, :user-loc where login = me.login and password = Me.password.
"Choufi ntia la syntaxe de la requette ok"
login-loc, password-loc et user-loc sont des variables locales à déclarer (dim login-loc.....par exemple) pour stocker les info issus de la base ensuite:
Afficher "user-loc " (Msgbox(user-loc )) chofi achnou fiha 3ad diri les tests.
si user-loc = "administrateur"
ouvrir menu1
sinon
ouvrir menu
endif
Hani 3ta9tek wakha ntia 3yana m3a rassek gelna lik sifti hadakchi dialek f mail mabritich (c'est: amine-sys).
Bon thlay o bslama 3lik