begin process at 2012 02 15 06:22:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Lien VB - Base Access


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lien VB - Base Access

vendredi 16 juillet 2004 à 10:50:52 | Lien VB - Base Access

tapas64

Slt tout le monde.
Voilà je réalise un programme vb qui utilise une base Access. Dans cette base il y a 2 tables, une table Médecin avec un codeM, un NomM etc, et une table Identification qui contient codeM et MotDePasseI.
L'utilisateur entre donc son nom et son mot de passe et voilà le code que j'ai écrit lorsqu'il clique sur le bouton Connexion.

' Avec la table MEDECIN
With Data1.Recordset
'Tant que ce n'est pas le dernier enregistrement
Do While Not .EOF
'Comparer la valeur du champ login avec celle du NomM dans la base
If Login.Text = .Fields("NomM") Then
'Si elles sont égales, mettre la valeur du champ login dans une variable temporaire
temp = .Fields("NomM")
'et récupérer le code correspondant à ce login
codeMedecin = .Fields("CodeM")
End If
'Sinon lire l'enregistrement suivant
.MoveNext
Loop
End With

'Si à la sortie de la boucle, temp est vide, ça veut dire que le login n'a pas été trouvé
If temp = "" Then
d = MsgBox("Ce login n'existe pas!", , "Erreur!")
Login.Text = ""
MDP.Text = ""
Else 'Si temp n'est pas vide, on compare les mots de passe
'Avec la table Table1
With Data2.Recordset
'Tant que ce n'est pas le dernier enregistrement
If .EOF = False Then
'Comparer la valeur du codeMedecin obtenu avec chacun des codes de la base
If .Fields("CodeM") = codeMedecin Then
'Quand c'est le bon, recupérer le mot de passe correspondant à ce code
motDePasse = .Fields("MotDePasseI")
Else 'ici''''''''''''
'Sinon, passer à l'enregistrement suivant
.MoveNext
End If
Else
MsgBox "Fin de la table"
End If
End With

'Si à la sortie de la boucle, motDePasse est vide, c'est que ce login n'a pas de mdp
If motDePasse = "" Then
b = MsgBox("Erreur dans la base de données!", , "Erreur!")
Else
'Sinon, on peut comparer maintenant le mot de passe récupéré
'avec celui saisi dans le champ mdp de la fenêtre
If MDP.Text = motDePasse Then
'Ouvrir la fenêtre du menu principal
Fenetre2.Show
'Décharger la fenêtre de connexion
Unload Fenetre1
Else
c = MsgBox("Mauvais mot de passe", , "Erreur!")
MDP.Text = ""
End If
End If

'Fin du If temp=""
End If


Le problème c'est qu'il ne lit que le premier enregistrement de la table Médecin et ne reconnait donc pas les autres mots de passe.
J'ai beau relire je ne vois pas l'endroit où ca plante.
Est-ce que quelqu'un pourrait m'aider svp?
Merci
tapas64
vendredi 16 juillet 2004 à 11:06:27 | Re : Lien VB - Base Access

tryvb

Réponse acceptée !
Je ne comprend pas très bien pourquoi tu ne fait pas une requete SQL ou tu selectionnerai le nom d'utilistateur where le mot de passe= mot de passe rentré. Dans le cas ou il y a un résultat à ta requete s'est que l'utilisateur existe dans la base sinon il n'est pas présent. ?
vendredi 16 juillet 2004 à 11:17:16 | Re : Lien VB - Base Access

PhilippeE

Réponse acceptée !
Pareil que tryvb

Une requête dans le style serait plus simple
"SELECT * FROM Médecin, Identification WHERE (Médecin.codeM = Identification.codeM) AND (Médecin.NomM = '"" & LeNomDuMedecin & ""') AND (Identification.MotDePasseI = '"" & LePasseSaisi & ""')"
vendredi 16 juillet 2004 à 12:56:53 | Re : Lien VB - Base Access

el_teedee

Membre Club
Lut, moi je fais a peu pres la meme chose avec une table EMPLOYE et une table PASSWORD.

mon accueil contient 2 textbox "TextLogin" et 'TextPassword".

voila la requete que j'utilise, et ca marche :


Set RCD_record = db.OpenRecordset("SELECT * FROM PASSWORD WHERE Login = '" & TextLogin & "'")
If RCD_record.RecordCount <> 1 Then
MsgBox ("L'utilisateur n'est pas déclaré !")
Exit Sub
End If


^^ j'espere que je dis pas de connerie, car je prog sous access que depuis 2 semaines...

++
vendredi 16 juillet 2004 à 14:13:07 | Re : Lien VB - Base Access

PhilippeE

Vu la fiabilité du RecordCount (ça dépend des paramètres d'ouverture), je te suggère de remplacer ta ligne
If RCD_record.RecordCount <> 1 Then

par
If RCD_record.BOF Then
vendredi 16 juillet 2004 à 14:49:28 | Re : Lien VB - Base Access

ITALIA

Membre Club
Réponse acceptée !
Set RCD_Record = db.OpenRecordset("SELECT * FROM PASSWORD WHERE MotDePasseI = ' " & TextPass & " ' and CodeM = ' " & TextPass & " ' ")
RCD_Record.MoveLast
Nb=RCD_Record.RecordCount
RCD_Record.MoveFirst
If Nb= 0 Then
MsgBox ("L'utilisateur n'est pas déclaré !")
Exit Sub
Else
Fenetre2.Show
Unload Me
End If

It@li@
vendredi 16 juillet 2004 à 15:26:35 | Re : Lien VB - Base Access

tapas64

Merci de vos réponses.
C'est un peu la galère lol. J'ai testé la méthode de la requête sql ms il plante.
Je pense que déjà je m'y prends mal pour la connexion à la base.
Voilà ce que j'ai mis:

=> Dans un module:
---------------------------
Public basecourante As String 'le chemin de la base de données
Public Cx As ADODB.Connection 'acces a la base
Public rs_connexion As ADODB.Recordset 'pour operer sur la base
Public sql_requeteConnexion As String 'requete sql


=>Au chargement de la toute première fenêtre:
-------------------------------------------------------------
'init du chemin la base
basecourante = App.Path & "\bd1.mdb"

'init de la connexion et ouverture
Set Cx = New ADODB.Connection
Cx.Mode = adModeReadWrite
Cx.Provider = "Microsoft.jet.OLEDB.4.0"
Cx.Open basecourante

'init du recordset
Set rs_connexion = New ADODB.Recordset
rs_connexion.CursorLocation = adUseClient

'init de la requete SQL
sql_requeteConnexion = "select * from [MEDECIN], [IDENTIFICATION] where [MEDECIN].[CodeM] = IDENTIFICATION.CodeM and MEDECIN.NomM= "" & LeNomDuMedecin & "" and IDENTIFICATION.MotDePasseI= "" & LePasseSaisi & "";"


Et si ensuite j'essaie ca:
rs_connexion.Open sql_requeteConnexion, Cx, adOpenForwardOnly, adLockOptimistic
il me dit "Un objet est requis".

Qu'est ce que je fais de travers?
Merci

tapas64
vendredi 16 juillet 2004 à 15:38:22 | Re : Lien VB - Base Access

ITALIA

Membre Club
Réponse acceptée !
le plus simplement, colles ca avant mon code ci dessus :

Set db = OpenDatabase(CheminBase) ' Définition base de donnée

en remplacant CheminBase par le chemin complet de ta Base
Ex ="C:\MABAse.mdb")

N'oublies pas de cocher..Projet...Références....Microsoft DAO 3.51 Object Library


It@li@
vendredi 16 juillet 2004 à 15:39:16 | Re : Lien VB - Base Access

ITALIA

Membre Club
le plus simplement, colles ca avant mon code ci dessus :

Set db = OpenDatabase(CheminBase) ' Définition base de donnée

en remplacant CheminBase par le chemin complet de ta Base
Ex ="C:\MABAse.mdb")

N'oublies pas de cocher..Projet...Références....Microsoft DAO 3.51 Object Library


It@li@
vendredi 16 juillet 2004 à 16:02:56 | Re : Lien VB - Base Access

tapas64


Merci.
J'ai suivi tes conseils et j'ai mis ce code dans la méthode click:

LePasseSaisi = MDP.Text
Set rs1 = db.OpenRecordset("SELECT * FROM IDENTIFICATION, MEDECIN WHERE IDENTIFICATION.CodeM = MEDECIN.CodeM and MotDePasseI = ' " & LePasseSaisi & " '; ")
rs1.MoveLast
Nb = rs1.RecordCount
rs1.MoveFirst
If Nb = 0 Then
MsgBox ("L'utilisateur n'est pas déclaré !")
Exit Sub
Else
Fenetre2.Show
Unload Me
End If

Mais maintenant il me dit qu'il n'y a pas d'enregistrement courant.

Dans le module:
Public db As DAO.Database
Public rs1, rs2 As DAO.Recordset

Merci
tapas64

1 2

Cette discussion est classée dans : base, end, table, login, passe


Répondre à ce message

Sujets en rapport avec ce message

connexion login et mot de passe [ par tapas64 ] Bonjour tout le mondeVoilà, j'essaie de gérer une connexion et j'ai fait LA boulette qui fait tout planter, mais impossible d'y remédier. Je fais deux Reconnaissance d'un mot de passe et d'un login [ par willbie ] bonjour à tous!j'ai fait une relation entre une table access (dont les champs sont:login et mot de passe)et un formulaireVB par la connexion ODBC.Ce q Form d'identification avec mot de passe [ par mymemorial ] Coucou à tous ^^ Alors voilà, en ce moment je bug dans deux trucs pour mon programme (enfin 3, mais chaque chose en son temps xD) 1. Mot de passe : Maximum d'une colonne d'une base de donnée [ par cros02 ] Bonjour à toutes et à tous !!! Voilà je dois développer un programme en "VB6" qui interroge un base de données Access. Dans cette interrogation je do datagridview et base de données [ par ocejade ] bonjour a tous je viens chercher votre aide car je vient juste de me mettre a vb.net et mon problème c est que je ne comprend rien a la façon d ajou Existence d'une table dans une base de données [ par NSUADI ] Bonjour! je voudrais savoir comment je peux savoir si une table existe ou non dans une base de donnée,une fonction booléenne qui renverrait true if e mot de passe VBA acces perdu ( base de donnée sécurisé MS Workgroup) [ par titefee97200 ] Bonsoir, j ai une base de donnée ACCESS dont j ai perdu le mot de passe VBA. la difficulté est que c'est une base MS WORKGROUP pourriez vous m'aid mise à jour d'une base [ par nahoulaa ] salut je travaille avec vb.net 2005 avec une base sql server j'ai crée un datagridviem dans une forme de mon projet à partir d'une table de ma base. m pbm de sauvegarde d'une 2ème datagridview [ par norddist ] Bonjour à tous, Sur Visual basic 2008 edition express: j'ai crée une 2ème datagridview nomé table_commande qui se trouve dans la même forme (form1),


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales