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 :

Supprimer et ajouter des cases textes dans un formulaire en vba [AC-2003]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 73
    Points : 67
    Points
    67
    Par défaut Supprimer et ajouter des cases textes dans un formulaire en vba
    Bonjour,

    J'ai un formulaire (en feuille de données) qui a comme source une table (T). Dans ce formulaire j'ai des colonnes dont leur nom sont stockées dans une table (T_nom) qui sont triées dans un certain ordre.

    Lorsque j'ajoute une nouvelle colonne dans la table T_nom, je voudrais l'ajouter également dans le formulaire. J'ai mis T comme source dans le formulaire mais lorsque j'ajoute une colonne. Elle apparait dans le formulaire mais elle se met tout à la fin. Ce que je veux c'est si j'ajoute une colonne au milieux de la table T_nom, je voudrais qu'elle se trouve au milieux dans le formulaire.

    J'ai donc fais un petit bout de code vba, mais il ne marche pas bien.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Private Sub Form_Open(Cancel As Integer)
    Dim nom As String
    Dim ctl As Control
    Dim n As Integer
    Dim rs As Recordset
     
    '/////////////////////////////////////////////////////
    '/////// Supprimer les zones de textes du form ///////
    '/////////////////////////////////////////////////////
     
    DoCmd.OpenForm "form", acDesign, , , , acHidden
    ' On sélectionne toutes les colonnes pour les insérer dans le formulaire
        Set rs = CurrentDb.OpenRecordset("SELECT Nom_Colonne FROM T_nom ORDER BY NORDRE;", dbOpenSnapshot)
        rs.MoveFirst
        'Ajoute les champs dans le formulaire
        Do Until rs.EOF
            nom = rs![Nom_Colonne]
            ' --lui affecter une zone de texte et la source
            DeleteControl "Ecran_PT_nom", nom
            rs.MoveNext
        Loop
        rs.Close
        Set rs = Nothing
    'DoCmd.Requery T_nom
    DoCmd.Save acForm, "form"
    DoCmd.Close acForm, "form"
     
     
    '/////////////////////////////////////////////////////
    '//////// Ajouter les zones de textes du form ////////
    '/////////////////////////////////////////////////////
     
    DoCmd.OpenForm "form", acDesign, , , , acHidden
    ' On sélectionne toutes les colonnes pour les insérer dans le formulaire
        Set rs = CurrentDb.OpenRecordset("SELECT Nom_Colonne, NORDRE FROM T_nom ORDER BY ONORDRE;", dbOpenSnapshot)
        rs.MoveFirst
        'Ajoute les champs dans le formulaire
        Do Until rs.EOF
            nom = rs![Nom_Colonne]
            n = rs![NORDRE]
            ' --lui affecter une zone de texte, la source et l'ordre d'affichage
            Set ctl = CreateControl("form", acTextBox, acDetail, , nom, n)
            ' --lui affecter un nom
            ctl.Name = nom
            rs.MoveNext
        Loop
        rs.Close
     
    DoCmd.Save acForm, "form"
    DoCmd.Close acForm, "form"
    DoCmd.OpenForm "form", acFormDS
    End Sub
    Si j’exécute les deux code séparément, sa marche mais lorsque je les met dans le même sub, il supprime toutes mes zones de textes et les recréer sauf qu'il y a un message d'erreur
    Erreur 3799: Impossible de trouver le champ "texte8856"
    . Pourtant je l'ai jamais créé et il n'est pas dans ma table T_nom.

    Si quelqu'un peut m'éclairer ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Personnellement je ne vois pas l'intérêt de ton code de supprimer et recréer des contrôles

    Un chose me choque :

    Lorsque j'ajoute une nouvelle colonne dans la table T_nom, je voudrais l'ajouter également dans le formulaire. J'ai mis T comme source dans le formulaire mais lorsque j'ajoute une colonne.
    Pourquoi ajouter des colonnes dans ta table ? Si cela se fait souvent, je pense que tu as un problème de conception.

    Merci de donner des détails.

    Philippe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    Pourquoi ajouter des colonnes dans ta table ? Si cela se fait souvent, je pense que tu as un problème de conception.
    Oui en fait j'ai une table ou certaines colonnes peuvent être supprimées ou ajoutées. Je n'ai pas réalisé la conception de la table, le cahier des charges a été écrit et je doit le respecter (pas de possibilité de le modifier)

    En fait j'ai deux tables, une pour des offres et l'autre pour des options. La 3e table fait le lien des offres options (avec les offres en ligne et les options en colonne). Bien sur si une offre est supprimée elle doit être supprimée dans la 3e table et si options est supprimée et elle doit être également supprimée.

    J'ai tenté de faire un formulaire en feuille données base sur une requête, mais impossible de faire des modifications.
    Donc j'ai pensé a créer des controls, ensuite en cas de modification je supprime tous les controls et je les recréé pour avoir le formulaire à jour.

    Si vous avez une autre méthode plus optimisée je suis preneur.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    J'ai résolus mon problème en fait le code marche bien, j'ai supprimé mon formulaire et j'en ai créé un autre.
    Et curieusement le code marche bien

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

Discussions similaires

  1. Ajouter un champ texte dans mon formulaire
    Par mademoizel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/12/2010, 16h12
  2. [Toutes versions] supprimer des cases vides dans une colonne
    Par vivi4561 dans le forum Excel
    Réponses: 2
    Dernier message: 09/09/2009, 23h14
  3. RCP ajouter zone de texte dans la barre des menus
    Par kespy13 dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 02/05/2009, 23h12
  4. ajouter des caractère complexes dans un formulaire
    Par strongwave dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/07/2008, 16h25
  5. Ajouter zone de texte dans un formulaire continu
    Par nadia68 dans le forum IHM
    Réponses: 17
    Dernier message: 06/12/2006, 09h00

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