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

ASP Discussion :

Type incompatible if .. <> ..


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Par défaut Type incompatible if .. <> ..
    Bonjour,


    (l125)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%If  MonObjRsBDD.Fields.Item(22).Value <> MonObjRs.Fields.Item(16).Value Then%>
    Erreur, valeurs non égales 
    <%Else%>
    <br>Tout est Ok.</br>
    <%End if%>
    Lorsque j'exécute ceci dans ma page, j'ai ce message d'erreur :
    Erreur d'exécution Microsoft VBScript erreur '800a000d'
    Type incompatible
    /*/*.asp, ligne 125


    J'explique un peu le but de la manip' : comparer deux champs, l'un dans un fichier Excel, l'autre dans ma base oracle. Tout fonctionne avec plusieurs autres champs jusque là !
    Je comprendrais le message si le type serait effectivement incompatible, or ici les valeurs des deux champs sont : '2006' et '2006'

    Chose que j'ai vérifiée comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%=MonObjRsBDD.Fields.Item(22).Value%> 
    <%=MonObjRs.Fields.Item(16).Value%>
    une idée ?

    merci :-/

  2. #2
    vva
    vva est déconnecté
    Membre chevronné Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Par défaut
    mais es tu bien sur que le format de la cellule XL corresponde au format du champ de la BD.

    j'ai souvent des problèmes de typage quand je remonte une table xl vers une BD alors essaye de remonter ta table xl vars la bd tu verras tout de suite les différence de format

    faut peut être dans ton code asp faire un cstr() ou cnum() ou .... pour aligner les formats

  3. #3
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Par défaut
    Citation Envoyé par vva Voir le message
    mais es tu bien sur que le format de la cellule XL corresponde au format du champ de la BD.
    j'ai souvent des problèmes de typage quand je remonte une table xl vers une BD alors essaye de remonter ta table xl vars la bd tu verras tout de suite les différence de format
    faut peut être dans ton code asp faire un cstr() ou cnum() ou .... pour aligner les formats
    dans Oracle : NUMBER(4)
    dans Excel c'était effectivement Standard, alors l'idéal ça serait que lorsque je met en Nombre (sans virgules comme dans Oracle..) tout fonctionne parfaitement , OR ce n'est pas le cas !

    Toujours le même message d'erreur malgré la modification de l'excel ..et vérification que tous les champs on bien 4 chiffres seulement..


    edit: j'ai vu que j'avais le même soucis avec un autre champs qui comporte également des nombres ! ça doit pas être bien compliqué...

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Par défaut
    Salut,

    Citation Envoyé par vva Voir le message
    faut peut être dans ton code asp faire un cstr() ou cnum() ou .... pour aligner les formats
    Absolument c'est la première idée qui m'est venue aussi.
    Variabiliser le tout et soumettre à un petit CInt par exemple.

    ++

  5. #5
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Par défaut
    Citation Envoyé par StephM_asp Voir le message
    Salut,
    Absolument c'est la première idée qui m'est venue aussi.
    Variabiliser le tout et soumettre à un petit CInt par exemple.
    ++
    j'ai tenté d'utilise cint, il me dit :
    " Utilisation non autorisée de Null: 'cint'"
    le problème doit venir de là, mais comment résoudre ça ? je dois modifier la fichier excel ( qui contient ce Null et donc mettre une valeur forcement) ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Par défaut
    Citation Envoyé par eltamatrox Voir le message
    le problème doit venir de là, mais comment résoudre ça ? je dois modifier la fichier excel ( qui contient ce Null et donc mettre une valeur forcement) ?
    Non non, laisse les null et vérifie que ça ne soit pas null avant de passer à la moulinette CInt.

    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
     
    if not isnull(MonObjRsBDD.Fields.Item(22).Value) then
       MaVar = MonObjRsBDD.Fields.Item(22).Value
    else
       MaVar = ""
    end if
     
    '-- perso je ne fais pas confiance à isnull donc j'utilise plutôt la syntaxe suivante
     
    if MonObjRsBDD.Fields.Item(22).Value & "" <> "" then
     MaVar = MonObjRsBDD.Fields.Item(22).Value
    else
       MaVar = ""
    end if
     
    '-- Quoi que là, vu ta syntaxe tu prendras peut-être une erreur sur le & "", je sais pas, essaye si tu le souhaites.

  7. #7
    Membre averti
    Inscrit en
    Janvier 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 26
    Par défaut
    Citation Envoyé par StephM_asp Voir le message
    Non non, laisse les null et vérifie que ça ne soit pas null avant de passer à la moulinette CInt.
    Effectivement j'y ais pensé après avoir posé la stupide question

    ça donne un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if MonObjRs.Fields.item(16).Value <>"" then
    cint(MonObjRs.Fields.Item(16).Value)
    ...
    bref ça fonctionne, merci pour vos réponses !

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

Discussions similaires

  1. [VB.NET] Type Incompatible
    Par Cyrilange dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/11/2009, 20h08
  2. Querystring ==> type incompatible
    Par Kara dans le forum ASP
    Réponses: 15
    Dernier message: 01/07/2005, 11h42
  3. ODBC Access => Type Incompatible avec un champ DATE ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 23/04/2005, 02h02
  4. Types Incompatibles
    Par olivierlsf dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/03/2005, 18h01
  5. [LG]Problême "types incompatibles"
    Par pierrOPSG dans le forum Langage
    Réponses: 7
    Dernier message: 23/04/2004, 21h34

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