Affichage dynamique d'un champ Mémo

xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008 - 28 oct. 2008 à 09:33
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008 - 31 oct. 2008 à 09:18
Bonjour,

je créer dynamiquement un formulaire avec une requete qui me ramene notamment un champ Mémo supérieur à 2048 caractères.


Dans quoi puis-je afficher ce texte ???
Dans un Texbox, une Listbox, un label j'ai droit à une erreur car plus de 2048 caracteres !

Mon code :
controle(j).ControlSource = "='" & Replace(rec_mod.Fields(1).Value, "'", "''") & "'"

Le plus énervant c'est que l'info est là, complète, mais qu'à part dans une msgbox ou en debug je ne sais pas l'afficher !




Xilaciol [Insert_Emoticon('/imgs2/smile_approve.gif'); ]

12 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 oct. 2008 à 09:36
Salut,
Une erreur dans un Textbox?

@+: Ju£i€n
Pensez: Réponse acceptée
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
28 oct. 2008 à 09:41
Bonjour,
Pourquoi ne pas l'afficher dans une liste mais en cassant ta chaine en plusieurs morceau et les ajouter au fur et à mesure dans ta liste?
Bon courage
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008
28 oct. 2008 à 09:52
Bonjour Lillith212,

Bah, j'y ai bien pensé, mais je ne sais pas comment ajouter dans une listbox à part en faisant

Set controle(j) = CreateControl("archi_modules", acListBox)
controle(j).Name = "lst_text_mod_" & j
controle(j).ControlSource = "='" & Replace(rec_mod.Fields(1).Value, "'", "''") & "'"

J'ai bien essayé le AddItem, mais Access me dit gentillement que cette propriété ou méthode n'est pas applicable ou un truc du genre, grrrr !

Xilaciol [Insert_Emoticon%28%27/imgs2/smile_approve.gif%27%29; ]
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 oct. 2008 à 09:55
Salut,

>[../auteur/XILACIOL/1508799.aspx xilaciol] : Dommage d'attendre ton second post pour faire apparaître une variable importante Access
.
Dommage aussi de ne pas avoir utiliser la section adéquate...
@+: Ju£i€n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008
28 oct. 2008 à 10:02
Salut M'sieur,

Ouais bah j'ai pas trouvé la section adéquate (ou j'ai pas cherché assez, bon d'accord !)

Xilaciol [javascript:Insert_Emoticon('/imgs2/smile_big.gif'); ]
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 oct. 2008 à 10:05
Salut,

Ah mais moi j'dit ca pour toi.
Si nous n'avons pas toutes les clés en mains comment veux tu avoir une aide précise....

Sur ce le M'sieur te dit @+
 Ju£i€n
Pensez: Réponse acceptée
0
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008
28 oct. 2008 à 10:20
Bonjour Julien

Peut-etre aurais-je dû placer mon post sur
--> Thèmes  / VB.NET et VB 2005 / Base de données / Access

Le problème c'est que je suis en Access 2000 avec du VB 6.3 alors je l'ai mis à l'endroit me parraissant le plus approprié.

Xilaciol [Insert_Emoticon%28%27/imgs2/smile_approve.gif%27%29; ]
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
28 oct. 2008 à 10:27
Re:
Tu aurais du poster dans la section vba...
Tu dis que ton formulaire est le résultat d'une requête... Elle te ramene un champs avec x caracteres...
Ce qui m'interpelle c'est comment tu fais pour avoir ce resultat? Tu concatène plusieurs valeurs?
rec_mode est un recordset?

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008
28 oct. 2008 à 10:53
Bonjour,

Je construit dynamiquement un formulaire
DoCmd.OpenForm "archi_modules", acDesign, , , , acHidden

j'ai une requete sql
sql_mod = "SELECT  ..., text_mod,... FROM Table WHERE..." <-- text_mod est un champ Mémo dans la Table

et un recorset associé
Set rec_mod = CurrentDb.OpenRecordset(sql_mod)

puis je créer des controles et je les "alimente"
If rec_mod.RecordCount <> 0 Then
    While Not rec_mod.EOF
       
            Set controle(j) = CreateControl("archi_modules", acTextBox) <-- Ici un Textbox
            controle(j).Name = "txt_text_mod" & j
            controle(j).ControlSource = "='" & Replace(rec_mod.Fields(1).Value, "'", "''") & "'"
...
...
    wend
end if

Le problème est que rec_mod.Fields(1).Value est supérieur à 2048 caractères et c'est apparemment la limite.

Note : si je créé un formulaire à l'aide de l'assistant Access sur la table en question, pas de problème, il affiche tout le texte dans une textbox sans problème !

Xilaciol [Insert_Emoticon%28%27/imgs2/smile_approve.gif%27%29; ]
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
28 oct. 2008 à 11:12
Question qui va paraitre bête...
Pourquoi ne pas le remetre dans un memo???
Préfére if rec_mod.recordcount > 0 then pluto que "<>0"

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008
28 oct. 2008 à 11:38
Désolé je ne comprends pas. C'est quoi le mémo dont tu parles, c'est un controle pour l'affichage ?

Ma problématique est d'afficher dans un formulaire créé dynamiquement un champ de type Mémo (jusqu'à 65535 caractères) dans un controle, mais lequel ???

J'ai essayé d'écrire le résultat dans un fichier texte (ça marche).
'ecrire dans un fichier texte
        Open Application.CurrentProject.Path & "\lolo_" & j & ".txt" For Output As #1
        Print #1, rec_mod.Fields(1).Value
        Close #1

Alors je me suis dit pas c...le gars il va lire le fichier texte pour l'afficher dans ... Eh, bah non ! Même problème !Le String est beaucoup trop grand (Ah!Ah!Ah)

A moins qu'il y est un controle magique pour afficher un fichier texte ?

PS : je débute en Access et c'est du sport !

Xilaciol [Insert_Emoticon%28%27/imgs2/smile_approve.gif%27%29; ]
0
xilaciol Messages postés 7 Date d'inscription lundi 25 décembre 2000 Statut Membre Dernière intervention 31 octobre 2008
31 oct. 2008 à 09:18
Bon, pour ceux que ça pourrait interesser :
En mode création (acDesign) par le biais de la propriété ControlSource d'un acTextBox on ne peut pas effecter plus de 2048 caractères, pour l'affichage d'un champ de type Mémo (65535 caractères max ) c'est donc difficile !

Par contre après création du controle acTextBox vide en acDesign et affichage du formulaire en acNormal, là on peut lui affecter plus de 2048 caractères par le biais de la propriété Value
Attention : SetFocus obligatoire sur le textbox à remplir sinon, ça marche pas !
                   
exemple
            For j = 0 To 20
                If Not rec.EOF Then
                    For Each ctl In Forms!NOM_FORM.Controls
                        If ctl.Name = "nom_text" & j Then
                            ctl.SetFocus
                            ctl.Value = rec!text_memo
                        End If
                    Next ctl
                rec.MoveNext
                End If
            Next j

Xilaciol [javascript:Insert_Emoticon('/imgs2/smile_wink.gif'); ]
0
Rejoignez-nous