cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 février 2009
-
17 oct. 2007 à 18:22
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
18 oct. 2007 à 21:10
Bonjour,
Soit:
Base : Gestion.mdb
Table : Utilisateur(Numero,Login, Nom, Prenom)
J'ai créé une form pour créer un utilisateur. Je voudrais lui dire que si le champ 'Login' est déjà existant, eh bien me le dire sous forme d'un msgbox.
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 17 oct. 2007 à 19:21
Tu remplaces simplement txt_Login par le nom de ton champ et cmd_AddUser par le nom de ton bouton ...
Private Sub
cmd_AddUser()
Dim rs As New ADODB.Recordset
Dim SQL As String
SQL = "SELECT * FROM Utilisateur WHERE Login='" & Pure(Me.txt_Login.Text) & "';"
Set rs = Conn.Execute(SQL)
If Not (rs.EOF) Then
MsgBox "L'utilisateur '" & Me.txt_Login.Text & "' existe déjà !!", vbExclamation, "Erreur"
Me.txt_Login.Text = ""
Me.txt_Login.SetFocus
End If
rs.Close
Set rs = Nothing
End Sub<hr />
Public Function Pure(S As String) As String
Pure = Replace(S, "'", "''")
End Function<hr />,
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 17 oct. 2007 à 22:18
Salut,
Kirikou n'est pas grand, mais il est vaillant....Kirikou est petit, mais il est gentil....
Bon..bon j'arrête....Ok !
"Conn" est le nom donné à ton objet de connection à ta base...
Regarde une de mes sources(Quick_Exp), j'ai fait une partit "Options Users", tu peux t'en servir pour t'aider à faire ce que tu désires, en complément de la réponse de ghuysmans99(Salut)....
cs_kirikou95
Messages postés60Date d'inscriptionmercredi 3 janvier 2007StatutMembreDernière intervention27 février 2009 18 oct. 2007 à 11:56
Private Sub cmdrec_Click()
If txtnom "" Or txtprenom "" Or txtmdp = "" Or txtmdp2 = "" Or txtlogin = "" Or txtadmin = "" Then
MsgBox ("Veuillez remplir les champs obligatoires"), vbCritical, "Maranatha"
txtnom.SetFocus
ElseIf txtmdp.Text <> txtmdp2.Text Then
MsgBox ("Le champ Mot de passe est différent de la confirmation")
ElseIf
Dim cnx As ADODB.Connection
Dim SQL As String
Dim res As ADODB.Recordset
Set cnx = New ADODB.Connection
cnx.ConnectionString = "Chemin\base.mdb"
cnx.Provider = "Microsoft.jet.OLEDB.4.0"
cnx.Open
MsgBox ("Mot de passe Administrateur erroné"), vbCritical, "Attention !"
txtadmin.SetFocus
End If
End Sub
Où devrais-je insérer le code pour la vérification de login existant ?
Ce code fonctionne mais m'envoit un message d'erreur lorsque le login est en doublant
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 18 oct. 2007 à 21:10
Salut,
Essaye cela :
Ajoute à ton projet la référence :
Microsoft ActiveX Data Objects 2.5 Library
Private Sub cmdrec_Click()
If txtnom "" Or txtprenom "" Or txtmdp = "" Or txtmdp2 = "" Or txtlogin = "" Or txtadmin = "" Then
MsgBox ("Veuillez remplir les champs obligatoires"), vbCritical, "Maranatha"
txtnom.SetFocus
Exit Sub
End If
If txtmdp.Text <> txtmdp2.Text Then
MsgBox ("Le champ Mot de passe est différent de la confirmation")
Exit Sub
End If
' Déclaration
Dim Cnx As New ADODB.Connection
Dim Res As New ADODB.Recordset
Dim SQL As String
Dim Msg As String
' Chemin base
Cnx.ConnectionString = "Chemin\base.mdb"
' Pilote
Cnx.Provider = "Microsoft.jet.OLEDB.4.0"
' Ouverture base
Cnx.Open
' Préparation requête
SQL = "SELECT * FROM Utilisateur"
' Exécution requête
Cnx.Execute SQL
' On vérifie s'il y a des records
If Res.RecordCount > 0 Then
' Boucle sur les records
While Not Res.EOF
If txtlogin.Text = Res.Fields("Login") Then
' Définition message de la boite
Msg = "Login existant dans la base !" & vbCrLf & _
"Veuillez en saisir un nouveau." & vbCrLf & vbCrLf
' Affichage
MsgBox Msg, vbOKOnly Or vbCritical, "Attention !"