Detecter un enregistrement s'il existe déjà ou non (recherche approfondie) [Résolu]

Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
- - Dernière réponse : germany1970
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
- 26 avril 2011 à 11:52
Bonjour,
pour la recherche dans une table pour un seul élément j'ai pas de probléme, et voilà le code que j'utilise :

cmd.CommandText "SELECT COUNT(*) FROM ADHERENT WHERE CODE '" & Me.TextBox1.Text & "'"
Dim isPresent As Boolean = False
If (Not cmd.ExecuteScalar Is DBNull.Value) Then
isPresent IIf(cmd.ExecuteScalar 0, 0, 1)

If Not isPresent Then
cmd.CommandText = "INSERT INTO ADHERENT (...) VALUES (...)"
'cmd.ExecuteNonQuery()
Me.TextBox1.BackColor = Color.White
Else
Me.TextBox1.BackColor = Color.Red
MessageBox.Show(" POLICE EXISTE DEJA ")
End If
End If

mais le probléme que j'ai en ce moment et le suivant :
dans la meme table ADHERENT il existe plusieurs N° de police et pour chaque police il existe plusieurs adherents et j'ai deux textbox.

la table est constituée comme ça:
N° police : am1562
N° adhesion : w150
N° adherent : berne
Adresse : paris

ce que je veux c'est quand je tape le numéro de police dans le textbox1 et le numéro d'adhesion dans le textbox2 il m'affiche un message d'erreur si le n° adhesion existe déjà dans cette police.

merci pour votre collaboration habituelle
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
149
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
16 juillet 2013
2
3
Merci
Bonjour,
Si j'ai bien compris ton probleme, ta solution devrait ressembler à ça:

cmd.CommandText "SELECT COUNT(*) FROM ADHERENT WHERE CODE '" & Me.TextBox1.Text & "' AND CODE_ADHERENT = '" & Me.TextBox2.Text & "'"
Dim isPresent As Boolean = False
If (Not cmd.ExecuteScalar Is DBNull.Value) Then
isPresent IIf(cmd.ExecuteScalar 0, 0, 1)

If Not isPresent Then
cmd.CommandText = "INSERT INTO ADHERENT (...) VALUES (...)"
'cmd.ExecuteNonQuery()
Me.TextBox1.BackColor = Color.White
Else
Me.TextBox1.BackColor = Color.Red
MessageBox.Show(" POLICE EXISTE DEJA POUR CET ADHERENT")
End If
End If 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de alexandrevandenberghe
Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136
0
Merci
Bonjour,

2 solutions :
- Dans la base de données, tu déclare la colonne comme étant sans doublons, dans ce cas, en cas d'ajout, tu aura une erreur.
- Avant de valider, tu fais une requête SELECT pour vois si il y a du monde.

Les 2 solutions peuvent être utilisées en même temps.

Mon site
Commenter la réponse de NHenry
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
2
0
Merci
Bonsoir henry,
je prefere la deuxième solution car j'ai un button de validation des informations avant le button enregistrement, mais je veux le code henry svp.ou il y'a une ligne de code à ajouter au code que j'ai posté avec ma question.

merci
Commenter la réponse de germany1970
Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136
0
Merci
Bonjour,

Tu fais déjà :
cmd.CommandText "SELECT COUNT(*) FROM ADHERENT WHERE CODE '" & Me.TextBox1.Text & "'"

Ensuite, tu peux tester si en faisant un GetDataReader, l'objet retourné est vide (inexistant) ou pas (un enregisterement), et dans ce cas, tu affiche les informations, je ne vois pas comment le dire plus simplement.

Mon site
Commenter la réponse de NHenry
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
2
0
Merci
merci henry,
mais comment je vais utiliser getdatareader.le code svp henry.

merci encore
Commenter la réponse de germany1970
Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136
Commenter la réponse de NHenry
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Statut
Membre
Dernière intervention
22 mars 2014
2
0
Merci
bonjour,
merci bcp alexander je suis entrain de tester.
Commenter la réponse de germany1970