Voila je travaille avec 3 tables :
* RSP_0 (table intermédiaire)
* RSP (table des RSP normaux)
* RSP_Anomalie (table des erreurs)
Mon objectif est de remplir RSP et RSP_Anomalie en fonction des valeurs de RSP_0. Donc je teste certaine colonne de RSP_0 et en cas d'erreurs j'envoie ces lignes dans RSP_Anomalie.
Pour vérifier que dans un champ je n'ai que des "P" ou "C" je fais cela :
Mon problème c'est pour tester la colonne NUM_CAISSE. J'arrive à savoir en VB si il y a un problème, mais ensuite je n'arrive pas à détecter quels sont les lignes fausses en SQL. Pour les transferer dans ma table RSP_Anomalie Petite présicion en plus, la table NUM_CAISSE est du type texte est pas numérique. Je peux pas le changer ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 NBAnomalie = DCount("[TYP_DONNEE]", "RSP_0", "[TYP_DONNEE]<> 'P' and [TYP_DONNEE]<> 'C' ") If NBAnomalie >= 1 Then CurrentDb.Execute "INSERT INTO RSP_Anomalie SELECT * FROM RSP_0 WHERE ((Not ((RSP_0.TYP_DONNEE)='P' Or (RSP_0.TYP_DONNEE)='C')))" CurrentDb.Execute "DELETE * FROM RSP_0 WHERE ((Not ((RSP_0.TYP_DONNEE)='P' Or (RSP_0.TYP_DONNEE)='C')))" 'MsgBox "Il y a " & NBAnomalie & " Erreur(s) par rapport à TYP_DONNEE" End If
P.S: dans NUM_CAISSE il doit y avoir que des cases soit null soit avec 5 chiffres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 NBAnomalie = DCount("[NUM_CAISSE]", "RSP_0", "(len([NUM_CAISSE]) <> 5) or (not(IsNumeric([NUM_CAISSE])))") If NBAnomalie >= 1 Then 'TODO Envoie des lignes fausses vers RSP_Anomalie 'TODO Effacement des lignes fausses de RSP_0 MsgBox "Il y a " & NBAnomalie & " Erreur(s) par rapport à NUM_CAISSE !!!" End If
Merci d'avance
cdlt, Eck
Partager