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

IHM Discussion :

erreur 13 incompatibilité de type [AC-2016]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut erreur 13 incompatibilité de type
    Bonjour à tous,

    Je rencontre cette erreur "erreur 13 incompatibilité de type" mais je n'arrive pas à comprendre pourquoi!

    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
    17
    18
    19
    20
    21
    Private Sub txt_date_dep_phy_LostFocus() ' A la sortie du champs, calcul du statut notification
     
    Dim result As Variant 'déclaration de la variable
     
    result = Me.txt_date_dep_phy.Value - Me.txt_date_hrco.Value ' valeur de la variable
    'MsgBox (result) ' pour afficher la valeur de la variable
     
    'différentes conditions
     
    If Me.txt_date_hrco.Value < Me.txt_date_dep_phy.Value Then
    Me.txt_statut_notif.Value = "1-OK"
     
    ElseIf result > "-30" Then
    Me.txt_statut_notif.Value = "2-Retard < 1 mois"
     
    ElseIf result <= "-30" Then
    Me.txt_statut_notif.Value = "3-Retard > 1 mois"
     
    End If
     
    End Sub
    Ce code fonctionne bien quand je suis en mode création (tous les contrôles sont vides).

    Quand je suis en mode suivi de fiche ( donc champs préremplis) et que je souhaite changer la Date de départ physique (txt_date_dep_phy) à la perte du focus, j'ai "erreur 13 incompatibilité de type".
    Si je modifie seulement la date de notification HRCO (txt_date_hrco) j'ai la même erreur à la perte focus de "txt_date_dep_phy"
    Si je change les deux dates je n'ai pas d'erreur!
    Or dans la majeur partie des cas, seule une date peut être modifiée et c'est souvent la date de départ physique qui peut être avancée ou reculée.

    Merci pour votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Étrange.

    L'erreur se produit sur quelle ligne ?

    Aussi attention avec un test du type <= "-30" tu risque des surprises si tu veux faire une comparaison numérique. Par exemple "-100" < "-30" et "-1" < "-30" sont tous les deux vrais.

    Pur transformer un texte en nombre tu peux utiliser par exemple Val() ou Clng() ou CDbl() selon le besoin.

    Et dernier point en Access, la propriété .Value est celle par défaut donc on peut, si on le souhaite, s'en passer. Par exemple Me.txt_statut_notif est équivalent à Me.txt_statut_notif.Value.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    merci marot_r,

    mon erreur est sur la ligne 5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result = Me.txt_date_dep_phy.Value - Me.txt_date_hrco.Value ' valeur de la variable
    Aussi attention avec un test du type <= "-30" tu risque des surprises si tu veux faire une comparaison numérique. Par exemple "-100" < "-30" et "-1" < "-30" sont tous les deux vrais.
    pour le moment, je n'ai pas rencontré de souci, il faudra que je fasse quelques tests pour vérifier.

    Pur transformer un texte en nombre tu peux utiliser par exemple Val() ou Clng() ou CDbl() selon le besoin.
    Ou puis-je les placer si j'ai besoin de le faire?

    Et dernier point en Access, la propriété .Value est celle par défaut donc on peut, si on le souhaite, s'en passer. Par exemple Me.txt_statut_notif est équivalent à Me.txt_statut_notif.Value
    merci pour cette info, pour le moment, j'ai pris l'habitude de le mettre, c'est un repère pour moi avec le temps il est possible que j'aille au plus simple.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txt_date_dep_phy.Value - Me.txt_date_hrco.Value
    De ce que je comprends de ton code ceci est vu par Access comme du texte (faudrait vérifier le type des champs dans la source de données) donc tu ne peux pas faire de calculs dessus.

    Voici une parade :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cdbl(Me.txt_date_dep_phy.Value) - cdbl(Me.txt_date_hrco.Value)
    mais l'idéal ce serait que ces valeurs soient bien vues comme des nombres par Access.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à tous,

    merci marot_r, j'ai bien peur de comprendre le souci.
    Dans ma table, j'ai mis les champs date en format texte et déclaré mes variables en Variant.
    Pour la variable, je ne penses pas que se soit un souci mais pour le format coté table oui.
    A la base ils étaient en format date mais je les avaient modifiés suite à un soucis de code.
    Il me faut donc revoir ma copie et refaire des tests.

    Pas d'Access aujourd'hui, trop de boulot

    Belle journée

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Si ce sont des dates et que tu ne veux (ou ne peux) pas les changer tu peux utiliser CDate() pour le convertir en date.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 414
    Points : 106
    Points
    106
    Par défaut
    Bonjour à Tous,

    merci marot_r, modifié la table et passé les champs date en date, c'est plus logique.
    Les tests se sont bine passés et ma comparaison fonctionne bien en création et en modification.
    je me note celà, ça peut servir
    Pur transformer un texte en nombre tu peux utiliser par exemple Val() ou Clng() ou CDbl() selon le besoin.
    Belle journée à tous 🌞

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

Discussions similaires

  1. [A-07] Erreur n°13 : Incompatibilité de type
    Par Leimi dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/03/2009, 11h15
  2. Erreur d'incompatibilité de types
    Par étoile de mer dans le forum Débuter
    Réponses: 27
    Dernier message: 01/06/2008, 17h14
  3. DLookup, Erreur d'incompatibilité de type (13)
    Par athos7776 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/08/2007, 17h25
  4. Erreur 13 : incompatibilité de type
    Par Donatelli dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2007, 12h19
  5. [VBA-A] ADO - Erreur 13 Incompatibilité de Type
    Par db30 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/04/2006, 14h30

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