{Access}

Résolu
Bonjour,

Dans un état Access 2007 peut-on dans une cellule intégrer un saut à la ligne.

Par exemple, j'ai un champs adresse et un champs ville. Je veux les mettre tous les deux dans le même champs mais sur deux lignes séparées.

Merci pour votre aide
Configuration: Windows Vista
Firefox 3.5.5

8 réponses

  1. Modérateur
    Salut,

    c'est sûrement possible... avec un peu de code dans l'évènement 'au formatage'.

    Connais-tu le VBA ?
    0
    1. salut,

      non ou du moins tres peu, j'arrive juste à bidouiller les noms et autres quand on me donne quelque chose de déjà programmé
      0
      1. Modérateur
        Je te propose un truc, tu essayes et on en recause.

        pré-requis :
        - une table qui contient (entre autres) les champs : adresse, ville
        - un état basé sur cette table

        actions sur l'état, en mode création :

        - éditer l'état, dans sa zone 'détail', rajouter un contrôle de type 'zone de texte' (assez grand), le nommer 'ad_total', par exemple
        - toujours dans l'état, afficher les propriétés de la zone détail (par double-clic sur la barre 'détail') et aller sur l'onglet 'évènement', et sur la ligne 'au formatage', sélectionner '[Procédure événementielle]'. Doit s'ouvrir une fenêtre de code. Il suffit d'y taper la ligne suivante :

        ad_total = adresse & vbCrLf & ville

        et c'est tout.

        explications :

        on va rechercher dans l'état les valeurs des zones adresse et ville et on va les concaténer en ajoutant un saut de ligne (variable VBA nommée vbCrLf), puis mettre le résultat dans la zone ad_total créée précédemment.

        Bien entendu, les noms de variable sont à remplacer avec les tiens...
        0
        1. Juste pour donner quelques infos complémentaires. j'ai donc 2 champs [Adresse] et [Ville].
          Je ne veux créer qu'un champ avec les fonctions VraiFaux suivantes imbriquées

          VraiFaux ( [Adresse] est null ; VraiFaux ( [Ville] est null ; ""; [Ville] ) ; VraiFaux ( [Ville] est null ; [Adresse] ; [Adresse] &" " & [Ville] ) )

          et en fait je veux remplacer ce qui est en gras par un retour à la ligne

          Merci du coup de pouce
          0
          1. Modérateur
            Un truc comme ça (ou dans un ordre différent, j'ai pas testé) :

            If isnull(adresse) then
               if isnull(ville) then
                  ad_total = ""
               else
                  ad_total = ville
               end if
            else
               if isnull(ville) then
                  ad_total = adresse
               else
                  ad_total = adresse & vbcrlf & ville
            end if
            
            0
            1. j'essaye et je te tiens au courant. En tout cas merci d'y avoir passé un peu de temps
              0
              1. Impeccable, ça marche, il manque juste un dernier END IF à la fin.
                Je ne connais pas les codes visual basic mais j'ai fait un peu de programmation en Basic il a plus de 25 ans et j'ai quelque restes.
                Il faudrait que je prenne un peu de temps pour apprendre le VBA, c'est juste une question de facilité et de fainéantise parce que j'ai appris à utiliser Access avec utilisation des macros mais je me rends bien compte qu'on peut en faire un peu plus avec VBA.

                Merci beaucoup
                0
                1. Modérateur
                  Fallait bien que j'oublie quelque chose, aussi :-)
                  0