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

Access Discussion :

Problème Fonction Replace : Utilisation incorrecte de Null (Erreur 94) [AC-2010]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut Problème Fonction Replace : Utilisation incorrecte de Null (Erreur 94)
    Bonjour,

    Je rencontre un problème certainement très bête (je n'ai vraiment pas l'habitude de développer en Informatique).
    L'idée ici est qu'après une requête, je dois effectuer une fonction replace pour remplacer les potentielles apostrophes qui pourraient être présentes dans les valeurs de mon champ "Preconisation", car si ce n'est pas fait, je rencontre une erreur où Access prend la première apostrophe qu'il trouve pour un quote de syntaxe.

    J'ai appliqué cette méthode sur une requête similaire mais avec le champ "Description", par chance il y'avait des apostrophes à chaque valeur de mon champ "Description".

    Mais ici, je me heurte au cas où il n'y'en a aucune ! Donc, j'aimerais pouvoir intégrer à ma fonction Replace un moyen de prendre en compte les cas où il n'y a rien à remplacer (Null).

    Voici le morceau de code concerné, sachez que l'autre qui a fonctionné est construit pareil.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sive3 = "SELECT test_alerte_Z2N.Rame, test_alerte_Z2N.[Date defaut], test_alerte_Z2N.[Première heure defaut], test_alerte_Z2N.Système, test_alerte_Z2N.[code defaut], test_alerte_Z2N.Occurrences, test_alerte_Z2N.localisation, test_alerte_Z2N.Criticité, test_alerte_Z2N.[Ets Propriétaire], test_alerte_Z2N.Description, listing_defauts.preconisation"
    sive3 = sive3 & " FROM test_alerte_Z2N INNER JOIN listing_defauts ON (test_alerte_Z2N.Description = listing_defauts.Intitulé) AND (test_alerte_Z2N.Criticité = listing_defauts.[Criticité SNCF]) AND (test_alerte_Z2N.[code defaut] = listing_defauts.Code) AND (test_alerte_Z2N.Système = listing_defauts.Système)"
    Set rs_sive3 = CurrentDb.OpenRecordset(sive3)
     
     
        rs_sive3.MoveFirst
        Do While Not rs_sive3.EOF
     
            preco = Replace(rs_sive3("Preconisation").Value, "'", "/")
            DoCmd.RunSQL "insert into test_alerte_Z2N_2(Rame,[Date défaut],[Première heure défaut], Système, [Code défaut], Occurrences, Localisation, Criticité, [Ets Propriétaire], Description, Préconisation) values('" & rs_sive3("Rame").Value & "',#" & Format(rs_sive3("Date defaut").Value, "mm/dd/yyyy") & "#,#" & Format(rs_sive3("première heure defaut").Value, "hh:mm:ss") & "#,'" & rs_sive3("Système").Value & "','" & rs_sive3("Code Defaut").Value & "'," & rs_sive3("Occurrences").Value & ",'" & rs_sive3("Localisation").Value & "'," & rs_sive3("Criticité").Value & ",'" & rs_sive3("Ets Propriétaire").Value & "','" & rs_sive3("Description").Value & "','" & preco & "')"
            rs_sive3.MoveNext
     
        Loop


    Voilà, si quelqu'un a une idée, je suis toute ouïe ! (J'ai déjà essayé de jouer avec le paramètres de comparaison, mais sans succès, Access me renvoit à une incompatibilité de type ...)

    Je vous remercie d'avance !

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Rebonjour,

    avec l'aide de mes collègues on a trouvé la solution, le problème ne venant pas de la fonction replace mais du fait que certains de mes champs étaient vide (valeur = Null) donc, Access me signifiant l'impossibilité de renvoyer une valeur Null.


    Cordialement

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 73
    Points : 46
    Points
    46
    Par défaut
    Voilà ce que ça donne, il fallait juste que je fasse un test sur la valeur contenu dans mon champs "preconisation" pour voir si elle était Null ou non.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    sive3 = "SELECT test_alerte_Z2N.Rame, test_alerte_Z2N.[Date defaut], test_alerte_Z2N.[Première heure defaut], test_alerte_Z2N.Système, test_alerte_Z2N.[code defaut], test_alerte_Z2N.Occurrences, test_alerte_Z2N.localisation, test_alerte_Z2N.Criticité, test_alerte_Z2N.[Ets Propriétaire], test_alerte_Z2N.Description, listing_defauts.preconisation"
    sive3 = sive3 & " FROM test_alerte_Z2N INNER JOIN listing_defauts ON (test_alerte_Z2N.[Code defaut] = listing_defauts.Code);"
    Set rs_sive3 = CurrentDb.OpenRecordset(sive3)
     
     
        rs_sive3.MoveFirst
        Do While Not rs_sive3.EOF
            Preco2 = rs_sive3("Preconisation").Value
            If Not IsNull(Preco2) Then
            preco = Replace(rs_sive3("Preconisation").Value, "'", "/")
            Else
            End If
            DoCmd.RunSQL "insert into test_alerte_Z2N_2(Rame,[Date défaut],[Première heure défaut], Système, [Code défaut], Occurrences, Localisation, Criticité, [Ets Propriétaire], Description, Préconisation) values('" & rs_sive3("Rame").Value & "',#" & Format(rs_sive3("Date defaut").Value, "mm/dd/yyyy") & "#,#" & Format(rs_sive3("première heure defaut").Value, "hh:mm:ss") & "#,'" & rs_sive3("Système").Value & "','" & rs_sive3("Code Defaut").Value & "'," & rs_sive3("Occurrences").Value & ",'" & rs_sive3("Localisation").Value & "'," & rs_sive3("Criticité").Value & ",'" & rs_sive3("Ets Propriétaire").Value & "','" & rs_sive3("Description").Value & "','" & preco & "')"
            rs_sive3.MoveNext
     
        Loop

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

Discussions similaires

  1. Utilisation incorrecte de Null (erreur 94)
    Par sprevost dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2010, 13h48
  2. Réponses: 4
    Dernier message: 22/01/2008, 17h34
  3. erreur 94 utilisation incorrecte de null
    Par caossak dans le forum Général VBA
    Réponses: 2
    Dernier message: 24/06/2007, 11h00
  4. Réponses: 3
    Dernier message: 30/03/2007, 14h48
  5. Réponses: 6
    Dernier message: 03/07/2006, 08h26

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