Code Detecter Doublons

aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014 - 30 juin 2010 à 15:03
aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014 - 8 juil. 2010 à 21:16
Bonjour et Bonne Journée

Avant de valider un enregistrement j'utilise un test ci dessus afin d'éviter le double
emploi :

Private Sub Command2_Click()
Dim rs As String
Set conn = New ADODB.Connection
conn.Provider = "Microsoft.jet.OLEDB.3.51"
conn.ConnectionString = App.Path + "\GRentes.mdb"
conn.Open
Set rsReglement = New ADODB.Recordset
    rs = "select * from TReglement where" & _
    " Nom ='" & Text5.Text & _
    "' And Prenom ='" & Text6.Text & _
    "' And Rente ='" & Format(Text4, "00") & _
    "' And Echeance ='" & Label3 & _
    "' And Annee ='" & Label11 & _
    "' And Montant ='" & Format(Text3, "#,##0.00") & "'"
   rsReglement.Open rs, conn, adOpenKeyset, adLockOptimistic, adCmdText
         If Not rsReglement.EOF Then
        'Le fournisseur existe déjà
        MsgBox "ce Reglement existe déjà"
    Else
Call AjoutReglement
End If
End Sub 

seulement voila il bug a ce niveau
rsReglement.Open rs, conn, adOpenKeyset, adLockOptimistic, adCmdText

je crois qu'il y a une erreur dans la rédaction du code je n'arrive pas a la repéré

le Message d'erreur : [b]Type de donnée incompatible dans l'expression du critère
/b
Merci D'avance





FOU DES CODES

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 juin 2010 à 15:58
Salut
Dans ta requète SQL, tu as mis des apostrophes ' pour encadrer toutes les valeurs des champs.
Mais, dans la définition de la table, est-ce que tous ces champs sont de type Texte ?
Texte = encadrement '
Date = encadrement #
Nombre = pas d'encadrement

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)
0
aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014
30 juin 2010 à 16:24
bonjour jack

je suis ravi que c'est toi qui me répond mieux avoir affaire a un spécialiste


table :
NumRegl = Numérique
DateReglement = Date/Heures
Rente = Numérique
Nom = Text
Prenom = text
Adresse = text
Echeance = Text
Annee = Text
Montant = Numérique

Merci Jack
FOU DES CODES
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 juin 2010 à 16:41
lol
Donc tu sais comment corriger ta requète, c'est Ok ?
Tu as compris ces histoires de ' ?
0
aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014
30 juin 2010 à 16:53
Salut jack

quand j'ai corrigé en ôtant l'apostrophe des deux champ numérique a savoir :
champ Rente et champ Montant les autres sont tous des textes il me sort une
erreur "Erreur de syntaxe (opérateur absent)dans l'expression " puis il me liste
le contenu de chaque champ
je galère vraiment
Merci
FOU DES CODES
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 juin 2010 à 23:55
Si tu nous montrais la syntaxe, on pourrait te dire d'où ça vient !
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 juil. 2010 à 11:45
et un SELECT * pour tester l'existence, c'est moyen...

SELECT COUNT(0) suffit

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
aouaoua Messages postés 27 Date d'inscription lundi 19 février 2007 Statut Membre Dernière intervention 3 août 2014
8 juil. 2010 à 21:16
BONJOUR LE FORUM
Enfin de compte et apres presque vignt jours de galere j'ai enfin trouver la solution voici donc si ca peut aider quelqu'un

Private Sub Command2_Click()
Dim rs As String
on error resume next
Set conn = New ADODB.Connection
conn.Provider = "Microsoft.jet.OLEDB.3.51"
conn.ConnectionString = App.Path + "\GRentes.mdb"
conn.Open
Set rsReglement = New ADODB.Recordset
    rs = "select * from TReglement where" & _
    " Nom <>'" & Text5.Text & _
    "' And Prenom <>'" & Text6.Text & _
    "' And Rente <>'" & Format(Text4, "00") & _
    "' And Echeance ='" & Label3 & _
    "' And Annee ='" & Label11 & _
    "' And Montant <>'" & Format(Text3, "#,##0.00") & "'"
   rsReglement.Open rs, conn, adOpenKeyset, adLockOptimistic, adCmdText
         If Not rsReglement.EOF Then
        'Le fournisseur existe déjà
        MsgBox "ce Reglement existe déjà"
    Else
Call AjoutReglement
End If
End Sub 

bonne journée
FOU DES CODES
0
Rejoignez-nous