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 :

Correction code format texte


Sujet :

IHM

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Par défaut Correction code format texte
    Bonjour à Tous,

    Est ce que quelqu'un pourrait m'aider à corriger le code de cette ligne si je souhaite :
    '' Vérifie que l'on a cliqué sur une categorie, format Texte (non pas numérique), pour éviter le NULL"
    If Not IsNumeric(Me!cmb_Categories) Then Exit Sub
    Dans l'attende de vous lire...
    MaR

  2. #2
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsNull(Me.txtLeChamp) Then Exit Sub
    Mais il serait peut-être bon que tu détailles un peu plus.

    Domi2

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Par défaut
    Domi2,

    J'utilise 2 listes déroulantes dans 1 formulaire, 1(cmb_Categories) qui aliment l'autre (cmb_Produits) mais je ne veux pas stocker 1 valeur numérique dans la table (exemple IDCATEGORIE-numauto) mais du texte (le NOM des CATEGORIES). Sinon au final un chiffre se stocke dans ma Table_InventaireDesProsuits alors que je souhaite avoir le nom des Categories.

    Voici le code :
    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
    Private Sub cmbCategories_AfterUpdate()
    Dim lngCat   As Long
    Dim SQL        As String
     
      '' Vérifie que l'on a cliqué sur une catégorie pour éviter le NULL
      If Not IsNumeric(Me!cmbCategories) Then Exit Sub
      '' Affecte la valeur de Categorie à la variable lngCat
      lngCat = Me!cmbCategories
      '' Construit la chaîne SQL avec la catégorie concernée
      SQL = "SELECT IDPRODUIT, PRODUIT, CATEGORIE FROM Table_InventaireDesProduits WHERE CATEGORIE =" & lngCat & " ORDER BY PRODUIT"
      '' Affecte la chaîne SQL à la liste des produits
      cmb_Produits.RowSource = SQL
      '' Déverrouille la liste des produits
      cmb_Produits.Enabled = True
      '' Donne le focus la liste des produits
      cmb_Produits.SetFocus
      '' Déroule la liste des produits
      cmb_Produits.Dropdown
     
    End Sub
    J'ai fait comme vous me dites mais çà ne fonctionne pas...
    Trouvez ci-joint partie de mon projet.

    MaR

  4. #4
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    J'utilise 2 listes déroulantes dans 1 formulaire, 1(cmb_Categories) qui aliment l'autre (cmb_Produits) mais je ne veux pas stocker 1 valeur numérique dans la table (exemple IDCATEGORIE-numauto) mais du texte (le NOM des CATEGORIES). Sinon au final un chiffre se stocke dans ma Table_InventaireDesProsuits alors que je souhaite avoir le nom des Categories.
    je n'ai malheureusement pas Access 2007, donc il ne m'est pas possible de regarder ta base exemple (est de voir par conséquent comment elle est structurée).

    Mais de prime abord, il me semble correct que tu stockes dans ta table Produits l'Id de la catégorie (pour établir la relation avec une table Catégories), et non le libellé de la catégorie.

    Si cela ne fonctionne pas, c'est peut-être que tu as un défaut au niveau de la conception de ta base.

    Si tu n'obtiens pas plus (et de meilleures réponses), il serait peut-être bien que tu repostes ta base exemple après l'avoir convertie au format A2000 par exemple (si c'est possible).

    Ainsi, plus de membres pourront y jeter un coup d'oeil.

    Domi2

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Par défaut
    Bonsoir Domi2 et le Forum,

    Voilà, je suis parvenue à faire fonctionner mes listes comme il se doit, ouf!

    Domi2, comme tu le cites dans ton message :
    il me semble correct que tu stockes dans ta table Produits l'Id de la catégorie (pour établir la relation avec une table Catégories), et non le libellé de la catégorie.
    Effectivement, pour établir 1 relation entre mes tables j'ai utilisé l'ID Catégorie dans ma Table_InventaireDesProduits mais maintenant lorsque je complète mon formulaire "Liste des Courses" et que je choisie 1 article dans la liste déroulante, ce sont les ID qui sont stockées dans la table alors que je souhaiterai stocker le nom complet des catégories. J'ai d'ailleurs le meme problème avec d'autres tables (champs magasins et villes) dans ce projet.

    Serait-il donc possible de stocker les valeurs "Nom de la Catégorie" et plus l'ID de celle-ci ?

    PS : c'est pourquoi, au départ, je souhaitais modifier le code pour reconnaitre du texte et pas une valeur numérique...

    Cordialement
    MaR

  6. #6
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour,

    J'espère avoir compris...

    Une fois le choix fait dans tes listes, vient s'afficher l'Id de la catégorie et non son libellé. C'est bien cela ?

    Si oui, c'est que ta structure est à priori correcte.

    Dans le formulaire, en mode création, tu sélectionnes la liste et tu affiches ses propriétés.

    Je n'ai pas Access 2007 mais cela ne devrait pas changer des autres versions:

    Propriété Largeur colonnes

    Elle devrait être renseignée par 2 valeurs (2cm;6cm) par exemple.

    Tu passes simplement la valeur de la première à zéro (0cm;6cm).

    Ainsi, c'est le contenu de la deuxième colonne (le libellé) qui va s'afficher dans ta liste.

    Domi2

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Par défaut Stocker Nom et pas ID
    Bonjour Domi2,

    Merci de te préoccuper de mon problème...

    Désolée, mais il est vrai qu'en tant que débutant on ne pense pas toujours logiquement les choses et nos questions ne sont pas toujours évidentes à rédiger et surtout à être compréhensives pour tous.

    L’affichage du nom des catégories (1ère liste) et le nom des produits (2ème liste) du formulaire s'affichent correctement dans les listes. Mais pas dans les zones de texte du formulaire ni dans ceux de ma table, dans lesquels ce sont les ID qui sont stockées.

    N'est-il pas possible d’appliquer la clé primaire sur le champ « Catégorie » et non pas sur l’ID pour ne plus avoir ce problème ? J’ai essayé mais ça n’a pas l’air de fonctionner correctement.

    Dans l’attente de vous lire…
    BàV
    MaR

  8. #8
    Expert confirmé
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Par défaut
    Bonjour Mary,

    Désolée
    Et pourquoi donc...

    L’affichage des noms des catégories dans la liste déroulante du formulaire est ok mais pas dans ma table, dans laquelle ce sont les ID qui sont stockées.
    Alors si l'affichage sur le formulaire est ok, c'est que tout fonctionne bien, comme il se doit avec une base de données.

    Ta table ne fait que contenir des données ! Elle n'est pas là pour pour les afficher. Pour cela, il y'a les formulaires et les états.

    Il est donc tout à fait correct que ce soit l'Id de la catégorie et non son libellé qui soit stocké comme information.

    Maintenant, si en ouvrant ta table, tu veux "voir" le libellé de la catégorie et non son Id, c'est possible.

    En admettant que table des catégories s'appelle tblCategories, avec 2 champs, CategorieId et CategorieLibelle.

    Dans ta table Table_InventaireDesProduits, en mode création, tu te positionnes sur le champ qui fais le lien avec ta table tblCategories.

    Au bas de la fenêtre, dans les propriétés du champ, tu cliques sur l'onglet Liste de choix, puis tu modifies les paramètres :

    Afficher le contrôle ==> Zone de liste déroulante
    Origine source ==> Table/Requête
    Contenu ==> tblCategories (à adapter au nom de ta table)
    Colonne liée ==> 1
    Nbre colonnes ==> 2
    En-têtes colonnes ==> Non
    Largeur colonnes ==> 0cm;3cm
    Lignes affichées ==> 8
    Largeur liste ==> Auto
    Limiter à liste ==> Oui

    Si tu ouvres ta table, tu devrais voir le libellé...

    Mais la donnée sous-jacente, c'est toujours l'Id...

    Ok ?

    Domi2

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 111
    Par défaut
    Bonsoir le Forum,
    Bonsoir Domi2,

    Voilà, je viens de prendre le temps d'adapter les dernières corrections à ma table et effectivement la solution était bien là !

    Et comme si bien dit :
    La table ne fait que contenir des données, elle n'est pas là pour pour les afficher.
    Donc dorénavant, je vais penser autrement pour la construction de mes tables.

    En tout cas, un grand merci à vous pour votre aide...


    Cordialement
    MaR

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

Discussions similaires

  1. [validation]Erreur format texte depuis BDD
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2006, 19h49
  2. requête suppression/correction code
    Par sarah67 dans le forum Access
    Réponses: 12
    Dernier message: 15/02/2006, 15h49
  3. incrementation d'un format texte dans une zone de texte
    Par frederic.go dans le forum Access
    Réponses: 6
    Dernier message: 18/10/2005, 14h47
  4. [générale] PhP => flash format texte
    Par Destiny dans le forum Flash
    Réponses: 2
    Dernier message: 17/10/2005, 13h33
  5. CppUnit et la generation de rapport au format text
    Par xxiemeciel dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 03/10/2005, 22h08

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