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 :

Problème dans la définition de la valeur par défaut d'un champ


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut Problème dans la définition de la valeur par défaut d'un champ
    Salutations à tous,

    Voici le problème auquel je suis confronté :

    Je travaille actuellement sur une application de gestion de facturation. Dans cette application j'ai une table avec les factures et une autre table avec les éléments exceptionnels liés à ces factures.

    J'ai créé un formulaire permettant à mes utilisateurs de saisir les éléments exceptionnels de factures. Pour ce faire, ils doivent sélectionner le dossier concerné dans une liste déroulante faisant apparaître un sous-formulaire en mode tableau dans lequel ils font les saisies.
    Afin d'apporter un peu de confort, lorsque l'utilisateur sélectionne un dossier, j'alimente la valeur par défaut du code client dans le sous-formulaire avec celui choisi. Les codes clients (que je ne peux pas changer) sont composé de 5 à 6 chiffres. Tout ceci fonctionne très bien.

    Mon problème provient en fait d'un cas particulier : Si le code client commence par un ou plusieurs "0", ceux-ci sont tronqués et je perd donc le lien entre les éléments saisis et le client concerné.

    J'ai déjà exploré quelques pistes et fait des vérifications :
    - Mon champs de code client est bien en champ texte.
    - Lorsque j'exécute mon code en pas à pas, la valeur affectée contient bien le "0".
    - J'ai placé une message box sur l'évènement de sortie du sous formulaire pour afficher le code choisi dans la liste par l'utilisateur et le code placé en valeur par défaut : ils sont identiques et ont tous les deux le "0".
    - J'ai tenté de forcer la valeur par défaut avec CStr ou de concaténer un autre "0" avant le code, mais cela n'a eu aucun effet.
    - Marlgré cela, quand j'affiche le champs je vois bien que la valeur par défaut sur la ligne d'ajout n'a pas le "0" et si je fais une saisie elle est également chargée sans le 0.

    Voilà si quelqu'un a la solution, je suis plus que preneur et si vous avez besoin d'informations complémentaires, n'hésitez pas.

    Merci à ceux qui on eu le courage de lire ^^.

  2. #2
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 118
    Points : 1 615
    Points
    1 615
    Par défaut
    Es-tu certain que dans ton code, il n'y a pas une acquisition du code client en numérique ?
    Parce que si tout est en texte, il ne devrait pas y avoir de problème de perte de "0".

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut
    Oui, oui j'en suis certain. Voici d'ailleurs le bout de code qui définit la valeur par défaut (le code se répète sur 3 sous formulaire car je travaille par trimestre avec détail au mois le mois) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub filtrer(NumCli As String, m1 As String, m2 As String, m3 As String, periode As String)
     
    'Modification des valeurs par défaut des champs des sous formulaire de saisie exceptionnelle selon client et periode
    Form_F060_FACTURE_TRIM.SF_ExcepM1.Form![PerPaie].DefaultValue = m1
    Form_F060_FACTURE_TRIM.SF_ExcepM2.Form![PerPaie].DefaultValue = m2
    Form_F060_FACTURE_TRIM.SF_ExcepM3.Form![PerPaie].DefaultValue = m3
    Form_F060_FACTURE_TRIM.SF_ExcepM1.Form![Code_Client].DefaultValue = NumCli
    Form_F060_FACTURE_TRIM.SF_ExcepM2.Form![Code_Client].DefaultValue = NumCli
    Form_F060_FACTURE_TRIM.SF_ExcepM3.Form![Code_Client].DefaultValue = NumCli
    Form_F060_FACTURE_TRIM.SF_ExcepM1.Form![Cpt_Facture].DefaultValue = GetLastFacture(NumCli, m1)
    Form_F060_FACTURE_TRIM.SF_ExcepM2.Form![Cpt_Facture].DefaultValue = GetLastFacture(NumCli, m2)
    Form_F060_FACTURE_TRIM.SF_ExcepM3.Form![Cpt_Facture].DefaultValue = GetLastFacture(NumCli, m3)
    Je travaille bien avec une variable en string, le champs de ma table est bien de type texte et si j'affiche une message box le contenu de la variable est bon. Cependant, à l'affichage dans le formularie je perds le 0.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 56
    Points : 67
    Points
    67
    Par défaut
    Petite piste au cas où....

    Est-ce que ton champs qui affiche ton code client est de type Texte (on ne sais jamais)

    As-tu essayé dans ton bout de code de mettre de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_F060_FACTURE_TRIM.SF_ExcepM1.Form![PerPaie].DefaultValue = "'" & m1 &"'"

  5. #5
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 118
    Points : 1 615
    Points
    1 615
    Par défaut
    Regarde le format de la zone de texte qui affiche la valeur.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut
    Alors le champs qui affiche la donnée est directement celui de ma table en mode tableau, donc ca ne devrait pas venir de là.

    Sinon j'ai mis en place une solution de contournement par un update du code client déclenché automatique après chaque mise à jour d'occurrence. Ce n'est pas très confortable mais ça fonctionne.

  7. #7
    Membre expérimenté Avatar de stigma
    Homme Profil pro
    Créateur jeux vidéo
    Inscrit en
    Octobre 2003
    Messages
    1 118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Créateur jeux vidéo
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 118
    Points : 1 615
    Points
    1 615
    Par défaut
    Tu pourrais envoyer un bout de ta base zippée pour qu'on se rende compte mieux ?

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    A tester (par ordre de priorité):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_F060_FACTURE_TRIM.SF_ExcepM1.Form![PerPaie].DefaultValue = Cstr(m1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form_F060_FACTURE_TRIM.SF_ExcepM1.Form![PerPaie].DefaultValue = "=" & chr(34) & Cstr(m1) & chr(34)
    Est ce que m1 passé à la procédure est bien de type texte dans le code appelant ?

Discussions similaires

  1. [AC-2010] Utilisation d'une fonction dans la valeur par défaut d'un champ
    Par efilippi dans le forum Modélisation
    Réponses: 4
    Dernier message: 08/07/2013, 21h29
  2. Réponses: 2
    Dernier message: 29/01/2013, 16h35
  3. Insert dans une vue avec une valeur par défaut
    Par adiGuba dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/07/2010, 15h12
  4. [Tableaux] Définition de la valeur par défaut
    Par ciel65 dans le forum Langage
    Réponses: 1
    Dernier message: 24/12/2006, 19h01
  5. Valeur par défaut d'un champ date
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2004, 12h48

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