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 :

[VBA] Type de données, #Nom ?


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 169
    Points
    169
    Par défaut [VBA] Type de données, #Nom ?
    Bonjour,

    J'ouvre un formulaire avec DoCmd.OpenForm avec l'option acFormAdd.
    Dans ce formulaire, j'ai les champs dépendant txtID, txtDate, txtTitre et txaNote.

    Je veux initialiser txtID à partir d'une valeur connue.

    Le problème : j'obtiens une erreur "Impossible d'attribuer une valeur à cet objet" quand je passe par txtID.value = str. En passant par txtID.DefaultValue, j'ai le bon résultat (j'ouvre toujours un nouvel enregistrement).

    DefaultValue fonctionne... mais tout est convertit en entier.
    • Si str = "12", c'est OK.
    • Si str = "342-42", il met 300!
    • Si str = "une vraie chaîne", j'obtiens #Nom ?
    Je n'arrive pas m'expliquer pourquoi ça fait ça. Le champ lié est bien un string. Il n'y a ni masque ni formatage sur le champ.

    Que regarder d'autres?
    Auriez-vous une idée?

    Merci!
    Caroline

    Bout de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "frmCreerNote", , , , acFormAdd, , [Forms]![frmMenuAccueil]![lstDatas].Value
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        'Lire les paramètres
        If Not IsNull(Me.OpenArgs) Then
            Me.txtID.DefaultValue = Me.OpenArgs
        Else
            MsgBox "Nombre de paramètres invalide!"
            Cancel = true
        End If
    Source = "tblNotes"
    txtID.ControlSource = "IDNote" (IDNote est un string)

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    t'as essayé un :
    histoire de voir si le problème vient du lstDatas ou du txtId?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 169
    Points
    169
    Par défaut Oui
    Oui. Avec l'espion, je vois que OpenArgs contient ce à quoi je m'attends.

    J'ai essayé de mettre directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtID.DefaultValue = "342-42" 'Donne 300
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtID.DefaultValue = "une vraie chaîne" 'Donne #Nom ?
    et j'obtiens aussi une drôle de conversion en entier.

    Quand je fais le même test sur un champ indépendant, ça s'affiche correctement.

    Caroline

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    mets des guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.txtID.DefaultValue = """" & Me.OpenArgs & """"
    (tu t'aperçois en entrant une valeur directement dans la propriété qu'il met automatiquement des guillemets)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 169
    Points
    169
    Par défaut DefaultValue: utilisez une expression de chaîne
    Trouvé dans l'aide Access :

    Propriété Default Value
    Dans Visual Basic, utilisez une expression chaîne pour attribuer une valeur à cette propriété. Par exemple, le code suivant définit la valeur « espèces » pour la propriété DefaultValue d'un contrôle zone de texte nommé MéthodePaiement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!frmInvoice!PaymentMethod.DefaultValue = """Cash"""
    Quand on a une variable, ça devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.txtID.DefaultValue = """" & me.OpenArg & """"

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 169
    Points
    169
    Par défaut ah ben...
    lol. Merci Arkham.

    Caroline
    (Il faudrait un bouton auto pour ajouter ça au message : "Merci Arkham" . Le forum serait vide sans toi!)

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par Caroline1
    lol. Merci Arkham.

    Caroline
    (Il faudrait un bouton auto pour ajouter ça au message : "Merci Arkham" . Le forum serait vide sans toi!)
    Lol ça me plaît bien l'idée du bouton "Arkham"

    Merci beaucoup mais heureusement je suis pas tout seul!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/07/2015, 18h43
  2. [DAO][VBA] Type de données d'un bookmark
    Par mout1234 dans le forum VBA Access
    Réponses: 7
    Dernier message: 08/02/2007, 16h42
  3. [VBA-E]type de donnée range en vba utilisée dans une feuille
    Par Yoyo51 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/03/2006, 10h26
  4. [VBA-E] Type de données
    Par forsay1 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/03/2006, 13h37
  5. Type de données pour effectuer une différence en vba
    Par snoopy69 dans le forum Access
    Réponses: 4
    Dernier message: 03/03/2006, 07h49

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