Variable string vers textbox (zone de texte) ?

spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007 - 19 févr. 2007 à 06:34
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 20 févr. 2007 à 11:31
salut à tous.
heureux d'etre parmis vous, (meme avec mon mal de tete du dimanche).
(encore un gros newb désolé)

je vous expose mon problème, peut etre vous avez la commande qui me conviendrait, car je ne sais plus ou aller ? (deux semaine à tourner en rond et à faire les forums)

je me suis mi a faire une base de donnée client sous access (2003) avec comme point important une diffusion de mail (moultimail), et voila que je me retrouve à faire du visual vasic :|
(si j'avais sue) ce qui n'est vraiment pas ma tasse thé !! (chapeau les programmeurs)

j'ai quand meme réussi à fais quelque chose de bien en un seul mois de vba. (pas mal pr un newb!!)
il ne me manque plus qu'a finaliser la diffusion de mail.

le probleme est le suivant :
d'une variable string (nommée "mail" (qui vient de "LstResult" si ça vous dit qq chose)), je voudrais l'envoyer vers une textbox  (zone de texte) dans un autre formulaire.
ce formulaire aura comme fonction de recueillir plusieurs mails pour les envoyer via oulook en CCI.
mais je ne sais pas qu'elle commande est le plus appropriée pour ce que je voudrais faire !!
je désespère !!

j'ai testé du : clipboard qui ne fonctionne pas meme en recupérant les modules classes,
- du DoCmd.RunCommand acCmdCopy 
- du DoCmd.OpenForm "frm Message"
- du DoCmd.GoToControl "txtBCC"
- du DoCmd.RunCommand acCmdPaste
- du Me.Controls(txtBCC).Value =
- du Open "c:\txtmail.txt" For Append As #1 mais toujours le meme problème, je n'arrive pas à transferer le texte dans ma "zone de texte".
et plein d'autre commandes qui me sont restées indigestes comme "recordset" et ses syntaxes,, bien que j'ai réussi à extraire l'e-mail de mes tables, pour la metre dans une variable.

 bref.. je vais attaquer ma 3eme semaine en étant toujours bloqué, si vous aviez un lien magic ou une commande à me conseiller je vous serais infiniment reconnaissant.
merci de m'avoir lu et bonne semain ;)

pourquoi faire simple alors que l'on peut faire compliqué !!

11 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
19 févr. 2007 à 10:24
Salut,

Juste une question, tu développes sous VB ou VBA? Car dans ton post tu parles de VBA et tu post dans la catégorie VB6...?
Car si Vb, je ne "vois" pas où est ton problème..
Admettons :

Dim Mail as String
Mail = "Ton adresse mail"
Text1.text = Mail

A+
Exploreur
0
spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007
19 févr. 2007 à 21:00
Salut et merci Exploreur de me répondre.
je me suis rendu compte juste après avoir posté mon message que je n'étais pas dans la bonne catégorie du forum, c'est ce qui arrive lorsque l'on se met à faire du vb le dimanche au reveil. (désolé de tout mélanger)

et oui !! il me semble que c'est du vba
(vba retail 6.4.. celui qui est inclu dans le pack office 2003)  !!
bref..
et malheureusement le probleme persiste, j'ai tester:
Dim Mail as String
Mail = "Ton adresse mail"
Text1.text = Mail
et cela ne fonctionne pas, meme dans tous les sens !!

voila a quoi ressemble mon code pour le moment:
public sub LstResults_DblClick (cancel as integer)
dim rs1 as recordset
dim mail as string

   'recupération d'un e-mail sur une requette
set sr1 = CurrentDb.OpenRecordset ("select Email as iclient from rqmailing where idclient=" & Me.LstResults, dbOpenforwardonly, dbReadOnly)
   'la variable mail récupère l'E-mail (c'est plus court)
mail = rs1.Fields("idclient").Value
rs1.close
msgbox = mail 

   'ouverture du formulaire "frmmessage" faisant la liaison avec outlook.
docmd.openform "frmmessage"
   'cible la zone de texte qui contiendra les e-mails. (txtBCC)
docmd.gotocontrol "txtBCC"
....?
end sub

et c'est là ou tout se passe, plutot ou ça bug.
j'ai testé toutes les commandes citées ci-dessus,
et rien a faire ,  c'est la galère !!
je n'ai pas la logique de la programmation, quoi que en un mois c'est normal,
alors je pense me rabatre sur une autre méthodologie, enregistrer ma variable dans une table et jouer encore avec les docmd.runcommand accmdcopy & paste.
une solution un peut farfelue mais bon peut etre que ça fonctionnera ?
bref .. je vous dirais ce qu'il en est.
encore merci Exploreur pour ta réponse,
à bientot !!

pourquoi faire simple alors que l'on peut faire compliqué !!
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
19 févr. 2007 à 21:10
Salut,

Vraiment à tout hasard, car je ne suis pas expert du tout en VBA, mais ceci peut-être :

Frmmessage.Controls(txtBCC).Value = Mail

Je sens que je vais me prendre de volée...

A+
Exploreur
0
spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007
19 févr. 2007 à 21:45
bin nan !!
ça passe pas.
merci quand meme.

je l'ai testé sous plusieurs façons, sans résultats.
frmmessage.Controls(txtBCC).Value = Mail
frmmessage.Control(txtBCC).Value = Mail
me.Controls(txtBCC).Value = Mail
me.Control(txtBCC).Value = Mail
txtBCC.value = mail
me.txtBCC.value = mail
txtBCC = mail
'je l'ai meme tester en ouvrant le formulaire:
docmd.openform "frmmessage", Controls(txtBCC).Value = Mail
docmd.openform "frmmessage, Controls(txtBCC).Value = Mail "
docmd.openform "frmmessage", me.(txtBCC).Value = Mail
docmd.openform "frmmessage", txtBCC.Value = Mail

j'ai aussi pensé vers la fin à déclarer txtBCC comme control (dim txtBCC as control)
bref.. mais dans le fond ça devrait recembler à ça !! logiquement
quoi qu'il en soit j'apréci énormément ta solidarité Exploreur.
aussi je ne veux pas abuser de ta gentillesse,
alors  if (autre idées) then je suis preneur else je trouverais quelque chose d'autre, enfin j'espère.

pourquoi faire simple alors que l'on peut faire compliqué !!
0

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

Posez votre question
spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 06:20
yopla all !!
j'ai finalement opté pour une autre solution qui fonctionne a moitié !! c'est deja ça !!
le tout reçemble à ça:
'frmlistingclient (nom prenom e-mail)
Public Sub LstResults_DblClick(Cancel As Integer)Dim rs1 As Recordset
Dim mail As String
'je recupère mon email avec recordset par raport au numauto (idclient pour moi)
Set rs1 = CurrentDb.OpenRecordset("select Email as idclient from rqmailing where idclient=" & Me.lstResults, dbOpenForwardOnly, dbReadOnly)
'je recupère mon e-mail dans la variable "mail" c'est plus court.
mail = rs1.Fields("idclient").Value
rs1.close
'je balance l'e-mail dans c:\txtmail.txt
Open "c:\txtmail.txt" For Append As #1
Print #1, (mail); " ; "
Close #1
MsgBox mail
End Sub

dans mon deuxieme formulaire (frmmessage) contenant la zone texte (txtBCC) receuillant les e-mails.
j'y ai placé un code permetant d'afficher mon fichier.txt dans la textbox.
ça recemble à ça :

Public Sub Form_Load()
On Error GoTo fin
Dim cheminfichier As String
Dim a As Long
cheminfichier = "c:\txtmail.txt"
a = FreeFile()
Open cheminfichier For Input As #a
txtBCC.Text = Input(LOF(a), a)
Close #a
fin:
End Sub

wala ça fonctionne !! une solution farfelue je l'avoue.
il doit y avoir surement plus simple, mais bon !! j'ai suffisement perdu de temps !!
reste à:
- ne pas se foutre de ma ma gueule.
- toujours avoir des clups, un tube d'aspirine, et un café à porté de main.
- effacer le fichier.txt (txtmail.txt) à la fermeture du frm "frmlistingclient"
- rafraichir automatiquement la zone de text (txtBCC) du frm "frmmessage"  (comment ? je ne sais pas encore !!)
et puis la boucle sera bouclée :)

merci  Exploreur  pour ton soutien.
i'll be back, à bientot all ;)

pourquoi faire simple alors que l'on peut faire compliqué !!
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 févr. 2007 à 08:10
Salut Spyder404,

Cool, que tu es trouver une solution de contournement et que cela fonctionne comme tu le souhaites...
J'aurai juste une dernière suggestion à te faire :
Si comme dans VB6, où les feuilles qui sont déclarées dans le projet et ou il y a des contrôle sur celle-ci, quant tu veux attribuer une valeur quelquonque sur un te tes contrôle on procéde comme suit-je pense que là je ne t'apprend rien), imaginons que l'on ai une feuille qui se prénome FrmToto, sur celle-ci une zone de text qui se prénome Text1.Text(qui est en visible = true), je veux lui donner la valeur de ma feuille général :
FrmToto.Text1.Text = "Ma valeur"
Là ce la fonctionne...Alors je ne sais pas si cela est identique en VBA, mais cela serai intéressant d'essayer..
Par contre ta Variable : Dim Mail As String, il serai intéressant pour toi de la déclarée en public dans un module, de ce fait, quand tu récupère comme tu le fais : mail = rs1.Fields("idclient").Value , toutes tes feuilles on accées à cette variable, soit tu lis cette variable par un timer(mais prend des ressources) soit on peut essayer cela :
frmmessage.txtBCC.Text.

Maitenant pour détruire ton fichier texte :
Kill "c:\txtmail.txt" 'A voir si cette commande est valable en VBA

Pour le refresh d'une zone de text :
txtBCC.Refresh



Ben voilà pour mes explications...


A+
Exploreur


 


 


 
0
spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 10:53
salut Exploreur.
jsuis super hypra content, ce fichier access commence à briller, et j'aurai plus de mal de tete !!

concernant : FrmToto.Text1.Text = "Ma valeur"
je ne suis pas relaxe, car selon les commandes que j'ai testé, la syntaxe n'était pas à coup sur correct, meme "FrmToto.Text1.Text = "Ma valeur" seul !!
un mois de vba !! il me faut un break !!

sinon la variable public !! j'adore l'idée, cela doit offrir pas mal de possibilité,
mais pour le moment j'en suis pas encore là, j'ai réussi à insérer des modules(fonctionnant avec "frmmessage") ' un pure copié collé. et les faire fonctionner sans conprendre à 100%100 les syntaxes.

Kill "c:\txtmail.txt" fonctionne parfaitement, trait pour trait.
de plus je l'avais deja vu hière !! ou peut etre aujourd hui, bref je l'avais oublié.
' c'est royal merci !!

pour le : txtBCC.Refresh c'est pas passé, et je n'ai pas insisté car
en voulant aller tester la commande sur un autre formulaire, j'y ai vu plein d'autre évènements (lorsque l'on selectionne le formulaire en haut à gauche)
des évènements de fou !! plus d'une quarentaine !!
alors j'ai testé puis choisi "Form_Activate" et j'y ai inséré le code de l'évènement qu'il y avait dans "Form_Load" (frmmessage)
ce qui ré-ouvre le "c:\txtmail.txt dans "frmmessage" et donc le refresh.
ça tourne comme une horloge !! pas de lague, au top.
merci Exploreur, tu m'a fais découvrir plein d'options interessantes.
(qui auraient pu m'être utiles bien avant !!) lol

pour conclure,
j'en ai bien bavé  mais je garderais un bon souvenir de cette expérience en vba.
my.remettrais.surrement. where pas avant 6 mois !!

Exploreur, encore merci, tu es la seule personne à m'avoir aidé, alors les mérites nous reviens (chapeau) !! non ce n'est pas une variable, vous en voyez de partout !!
c'est dingue !!

il y a aussi les tutaux et messages qui aident beaucoup, alors merci aussi à ceux qui partagent leurs sources (belle mentalité).
j'en fais de meme par mail ou par je ne sais quoi ?
y a qu'a demander !!
(un fichier client access pour une boite immobilière avec opération vente aquisition location, nom prénom mail tel adresse,  ect... des filtres a gogo et tout le reste ..)
si ça te dit de jeter un coup d'oeil Exporeur, ça sera avec plaiz !!

sur ce, à bientot, m'en va au lit !!

pourquoi faire simple alors que l'on peut faire compliqué !!
0
spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 11:02
désolé pour la méchante faute d'orthographe !!
a+ all

pourquoi faire simple alors que l'on peut faire compliqué !!
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 févr. 2007 à 11:03
Salut Spyder404,

Oui, cela me dit de regarder ton fichier, ainsi je pourrai avoir une approche de VBA, et je "pourrai peut-être" répondre la prochaine fois avec plus de certitude...Est-ce que je peux le télécharger quelque part ton fichier ?

Sur ce, bonne journée ou bonne nuit,

Au plaisir,

A+
Exploreur
0
spyder404 Messages postés 7 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 20 février 2007
20 févr. 2007 à 11:21
non ne vois pas solution pour le telecharger, j'ai viré mon ftp depuis que je paye le giga, après avoir dépassé 8 giga, encore un fai qui a le monopole, je ne citerais pas son nom mais c'est le seul de la polynésie en pf (bref c'est la misère, ho puis si, "mana") bref il y a 12h de décalage !!

alors fille moi ton mail je te l'envois dans 7 ou 8 heures au boulo, ou si tu vois une autre solution no pb.
j'y go, moin  de 5 heures de sommeil !!
bye Explorer !!

pourquoi faire simple alors que l'on peut faire compliqué !!
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 févr. 2007 à 11:31
Ok, parti par MP


A+
Exploreur
0
Rejoignez-nous