Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lien VB - Base Access [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (tapas64)

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é 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 Connexion "read-only" à une BDD Access protégée? [ par Morveus ] Bonjour, Après avoir réglé mon problème de changement de mot de passe (dans un topic un peu plus bas), j'ai maintenant un autre probléme:j'ai une b Vérification de l'existence d'une table SQL [ par casy ] Salut à tous, pour une fois j'ai une question à poser.Je voudrais savoir si, via une requette SQL, il est possible de savoir si une table existe dans Protéger table access par mot de passe [ par angel_of_death2369 ] Bonjour, Je voulais savoir s'il était possible de protéger une table access par un mot de passe. Je sais déjà le faire pour les formulaires, mais je n DataTable vers Access [ par ELR60 ] Bonjour, je développe une appli sous Visual basic 2005.je voudrais pouvoir renseigner une table Access (qui n'existe pas) dans une base (qui elle exis PROBLEME BOUCLE [ par CROCHU ] Problème boucle sur VBA EXCELBonjour à tous,J'ai un tableau de gestion de stocks qui contient deux feuilles : 1 feuille appelée BASE qui contient e login [ par tsaradouni ] cmt faire pour créer un prgm de login avec une base de données access 1- on met une base de données dans un repertoir et on met un path dans le code base de donnes [ par netfric ] salut comment est ce que je peuc créer une base de donnes ou il ya 2 table:table 1id ; auteur1 ; bibi2 ; koka3 ; netfrictable 2id de l'auter ; livre 1 transfert en eux table dans la meme base de données [ par h_adil ] Bonjour, je veux creer un programme qui me permet de transfret les données d'une table access vers une autre base de données de la meme base de donnée


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,796 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.