IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Tester le nombres de caractères et le type des cases d'un champ en VB et SQL


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Tester le nombres de caractères et le type des cases d'un champ en VB et SQL
    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 :
    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
    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("[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
    P.S: dans NUM_CAISSE il doit y avoir que des cases soit null soit avec 5 chiffres

    Merci d'avance
    cdlt, Eck

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Peut-être aborder plus simplement.
    Une 1ère requête (ajout) sur RSP_0 qui détecte les anomalies et ajoute les anomalies détectées dans RSP_anomalies.
    Une 2ème requête (ajout) sur RSP_0 (tous les enregistrements) et RSP_anomalies qui alimente RSP avec les enregistrements de RSP_0 non contenus dans RSP_anomalies.
    (NB vidanger au préalable RSP et RSP_anomalies)
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Une 1ère requête (ajout) sur RSP_0 qui détecte les anomalies et ajoute les anomalies détectées dans RSP_anomalies.
    C'est ce que je n'arrive pas à faire , enfin si j'ai bien compris ta proposition

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Pour ajouter les corrects dans RSP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO RSP SELECT RSP_0.* FROM RSP_0 WHERE (((RSP_0.TYP_DONNEE)="C" Or (RSP_0.TYP_DONNEE)="P"));
    Pour ajouter les incorrects dans RSP_anomalies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO RSP_Anomalies  SELECT RSP_0.* FROM RSP_0 WHERE (((RSP_0.TYP_DONNEE)<>"C" And (RSP_0.TYP_DONNEE)<>"P"));
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Non mais mon problème c'est pas pour ça, c'est pour test les 5 caractères et que ce soit tous des chiffres.

    Le "P" et "C" c'était pour montrer sur un autre bout de code qui fonctionne comment je fais...

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Désolé, j'avais mal lu la question.
    Voici pour les corrects :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO RSP SELECT RSP_0.* FROM RSP_0 WHERE (((RSP_0.NUM_CAISSE) Is Null)) OR (((RSP_0.NUM_CAISSE)>="00000" And (RSP_0.NUM_CAISSE)<="99999"));
    et pour les incorrects :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO RSP SELECT RSP_0.* FROM RSP_0 WHERE ((Not (RSP_0.NUM_CAISSE) Is Null) AND ((RSP_0.NUM_CAISSE)<"00000" Or (RSP_0.NUM_CAISSE)>"99999"));
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Non j'avais essayer ça ne fonctionne pas non plus , à l'aide de l'assistant access j'ai réussit . Voici la requete je pense que sa pourra en intéresser plus d'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM RSP_0 WHERE (not(((Len([NUM_CAISSE])=5) AND ((IsNumeric([NUM_CAISSE]))=True))OR (RSP_0.NUM_CAISSE) Is Null));
    Merci d'avoir essayer ClaudeLELOUP, sa ma remotiver à chercher

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/05/2014, 14h45
  2. Tester le nombre de caractères d'une chaine
    Par Thorfin dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 09/05/2012, 11h10
  3. [SQL-Server] Nombre de caractères maximal via FreeTDS et champ de type ntext
    Par marcandre dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 27/10/2010, 10h31
  4. [JTextArea] limiter le nombre de caractères
    Par spoutyoyo dans le forum Composants
    Réponses: 5
    Dernier message: 14/09/2007, 15h45
  5. Tester le nombre de lettre d'une chaine de caractéres
    Par koKoTis dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 13/05/2007, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo