cyberangel02
Messages postés24Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention 5 août 2016
-
16 avril 2005 à 15:47
cyberangel02
Messages postés24Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention 5 août 2016
-
13 mai 2005 à 18:14
Bonjour,
J'entre des classes sur un formulaire.
Ce formulaire comporte 2 champs à remplir (Numéro de la classe, Intitulé de la classe). J'utilise un liaison adodc pour enregistrer mes champs dans la base de données.
Lorsque j'entre mon nouvel enregistrement, je souhaiterai qu'un message d'erreur s'affiche si l'enregistrement existe déjà dans ma base !
(je pense à quelque chose du genre :
1/ aller au premier enregistrement
2/ tant que l'on a pas atteint le dernier enregistrement faire...
3/ comparaison des champs avec ceux de la base
4/ si l'enregistrement existe déjà faire
5/ erreur cette classe existe déjà !
6/ fin tant que)
cyberangel02
Messages postés24Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention 5 août 2016 13 mai 2005 à 18:14
Un développeur VB m'a donné un exemple et j'ai réussi à l'adapter à mon soft :
Private Sub Command1_Click()
Dim rep1
Dim rep2
Dim rep3
Dim m_AdoCnn As adodb.Connection
Set m_AdoCnn = New adodb.Connection
m_AdoCnn.Provider = "Microsoft.Jet.OLEDB.4.0"
m_AdoCnn.ConnectionString = "C:\Program Files\Microsoft Visual Studio\VB98\Biblio2004v2\biblio20.mdb"
m_AdoCnn.CursorLocation = adUseNone
m_AdoCnn.Open
Dim rs As New adodb.Recordset
Set rs = m_AdoCnn.Execute("SELECT Num_Cla FROM CLASSES")
If Text1 "" Or Text2 "" Then
rep2 = MsgBox("Il faut remplir tout les champs", vbExclamation + vbOKOnly, "Erreur")
Else
While Not rs.EOF
If Text1 = rs("Num_Cla") Then
rep3 = MsgBox("La classes existe déjà", vbInformation + vbOKOnly, "Erreur")
'lecture du recordset
GoTo IdemCla:
End If
rs.MoveNext
Wend
rs.Close
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 16 avril 2005 à 16:58
Salut
A mon avis, le plus simple serait de rechercher par un "Select ..." s'il existe un enregistrement avec les infos que tu veux insérer, ce serait beaucoup plus rapide !
Si le RecordSet.Count te renvoie autre chose que 0, c'est que l'enregistrement existe déjà.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
cyberangel02
Messages postés24Date d'inscriptionjeudi 11 décembre 2003StatutMembreDernière intervention 5 août 2016 21 avril 2005 à 18:17
Jack, pourrais-tu me faire un squelette de l'idée que tu m'as proposé (je ne sais pas comment écrire ça en VB).
Entre temps, j'ai essayé autre chose mais ça n'a pas marché... voici ce que j'ai tenté d'écrire :
Set rs = Adodc1.Recordset
rs.MoveFirst
While Not rs.EOF
If (Text1 = rs!Num_Cla) Then
MsgBox ("La classe existe déjà !")
Text1 = ""
End If
rs.MoveNext
Wend
rs.Close