** AIDEZ MOI SVP !!! *

cs_Heny Messages postés 125 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 avril 2007 - 2 juil. 2004 à 15:55
cs_Heny Messages postés 125 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 avril 2007 - 3 juil. 2004 à 15:48
Salut a tous
Je réalise une application pour faire des enregistrements dans une base de donnée ACCESS
et j’utilise ce code
With Adodc.Recordset
.AddNew
!Catégorie = UCase(Text1(0).Text)
!Référence = UCase(Text1(1).Text)
!Désignation = UCase(Text1(2).Text)
![Prix de l'unité] = UCase(Text1(3).Text)
.Update
End with
Ce que je voudrai ajouter, c’est un code qui me permet en cas ou la Référence existe déjà dans la base un message apparaît pour m’avertir (J’utilise un DATAGRID pour afficher le contenue de la base )
MERCI DE ME REPONDRE

6 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
2 juil. 2004 à 16:06
t'as Reference est clef Primaire ??

It@li@
0
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
2 juil. 2004 à 16:22
Cela se fait de façon automatique, je m'explique:
si dans ta table la référence doit être unique et sans doublons, il faut le paramètrer directement au niveau du champ référence de ta table, comme cela lors de l'update si il existe un doublon accès te retourne une erreure que tu peux exploiter ensuite pour envoyer un message à l'utilisateur.
Il faudrais modifier ton code de la sorte

on error goto Errorhandler 'détecte si une erreur se produit

With Adodc.Recordset
.AddNew
!Catégorie = UCase(Text1(0).Text)
!Référence = UCase(Text1(1).Text)
!Désignation = UCase(Text1(2).Text)
![Prix de l'unité] = UCase(Text1(3).Text)
.Update
End with

End Sub

Errorhandler:

Select Case Err.Number

Case -2147467259 'doublons détecté ou manque un champ obligatoire
Msg = "Risque de doublon détecté ou" _
& vbCrLf & "un champ de saisie obligatoire" _
& vbCrLf & "n'est pas valider"
Case Else
Msg = "Une erreur est survenue" _
& vbCrLf & Err.Description _
& vbCrLf & "la procédure ne peut continuer"
End Select

End Sub

Une deuxième solution c'est de faire une recherche sur ton champ référence avec le contenu de ton textbox (avant de faire ta procédure d'update) et vérifié si ton recordset contient un enregistrement Adodc.recordset.Recordcount si c'est le cas il existe déjà un enregistrement !

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
2 juil. 2004 à 16:47
c pour cela que jui demande si Reference est clef primaire

L'erreur de risque de doublons que j'ai dans mais appli est : 3022

on error goto Errorhandler

With Adodc.Recordset
.AddNew
!Catégorie = UCase(Text1(0).Text)
!Référence = UCase(Text1(1).Text)
!Désignation = UCase(Text1(2).Text)
![Prix de l'unité] = UCase(Text1(3).Text)
.Update
End with

End Sub

Errorhandler:

Select Case Err.Number

Case 3022 'doublons détecté ou manque un champ obligatoire
Msg = "Risque de doublon détecté ou" _
& vbCrLf & "un champ de saisie obligatoire" _
& vbCrLf & "n'est pas valider"
Case Else
Msg = "Une erreur est survenue" _
& vbCrLf & Err.Description _
& vbCrLf & "la procédure ne peut continuer"
End Select

End Sub

It@li@
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
2 juil. 2004 à 17:30
Je n'utilise pas de datacontrol mais regarde s'il n'existe pas une méthode FindFirst.

Un ex avec un recordset classique :

rs.findfirst critere'par ex critere "Catégorie '" & UCase(Text1(0).Text) & "'" & " Référence = UCase(Text1(1).Text) "'" etc

if rs.nomatch then
'c pas trouvé donc j'ajoute
else
'un enreg existe déjà et j'affiche mon msg
end if

Je crois que c mieux que de traiter des erreurs après coup

Cordialement

CanisLupus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
2 juil. 2004 à 17:33
Oups, trop vite écris,a la place de 'par ex critere "Catégorie '" & UCase(Text1(0).Text) & "'" & " Référence = UCase(Text1(1).Text) "'" etc

c
'par ex critere "Catégorie '" & UCase(Text1(0).Text) & "'" & " AND Référence = UCase(Text1(1).Text) "'" etc

Cordialement

CanisLupus
0
cs_Heny Messages postés 125 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 19 avril 2007
3 juil. 2004 à 15:48
Salut
non la Référence n'est pas une cle primere mais je l'utilise pour pour identifir des produits afin que l'utilisateur ne rajoute pas la meme reference pour deux produits
Merci pour votre reponse et merci pour repondre :big)
0
Rejoignez-nous