Avatar billede -anders- Juniormester
27. august 2003 - 14:04 Der er 51 kommentarer og
1 løsning

Problemer med kode

Hej Eksperter:
Jeg bruger nedenstående kode til at overføre alle emailadresser fra min forespørgsel fs_emailadresser til send to feltet i en tom mail. Mit problem er at Sendto feltet kun bliver udfyldt med de 3 første tegn fra den første record i forspørgsel, Men der opstår sådanset ikke nogen fejl med msgbox og sådan. Det skal siges at der bruges Lotus Notes som mailsystem, men dette skulle jo ikke have nogen betydning da jeg blot bruger DoCmd.SendObjekt. Nevermind her er koden håber nogen kan hjælpe med at gennemskue hvor den er gal, jeg arbejder i access 2000

mvh Anders
Avatar billede -anders- Juniormester
27. august 2003 - 14:05 #1
Okay her er så koden hæ hæ

Function Mailtest()

Dim cnn As ADODB.Connection

Dim rst As ADODB.Recordset

Dim Output As String

Dim strQuery As String

Set cnn = CurrentProject.Connection

Set rst = New ADODB.Recordset

strQuery = "SELECT * From fs_emailadresser"

rst.Open strQuery, cnn, adOpenStatic, adLockReadOnly, adCmdText

Output = rst.GetString(, , , ", ")
 
DoCmd.SendObject , "", "", Output, "", "", "", "", True, ""

rst.Close

cnn.Close

End Function
Avatar billede terry Ekspert
27. august 2003 - 14:22 #2
what is Output = rst.GetString(, , , ", ")?

I am guesssingthat this is wher eyou rproblem lies!
Avatar billede -anders- Juniormester
27. august 2003 - 14:27 #3
Hi Terry
Tak for indlægget, Output er den variabel jeg gemmer i mit rst.set, forstået på den at varablen Output indehokder de records jeg har trukket fra fs_emailadresser. Denne variabel har jeg så sat ind i SendObjekt (To). Hvis jeg gemmer resultatet i en txtBox i feks. en Form så virker det, men ikke når jeg skal overføre til SendTo i min Mail

Anders
Avatar billede terry Ekspert
27. august 2003 - 14:29 #4
GetString has 4 paramaters and here I am guessing that Access thinks there are 5!
Avatar billede -anders- Juniormester
27. august 2003 - 14:30 #5
Den sidste del af GetString ", ")adskiller emailadresser med et ,
Avatar billede -anders- Juniormester
27. august 2003 - 14:31 #6
Okay, nogen ideer, jeg er ved at kold på det
Avatar billede terry Ekspert
27. august 2003 - 14:32 #7
Take a look at what the paramaters can contain! First try settingthem all to empty to make sure that "," is NOT getting interpreted incorrectly!
Avatar billede terry Ekspert
27. august 2003 - 14:32 #8
Try using ;
Avatar billede terry Ekspert
27. august 2003 - 14:33 #9
TAB is default!
Avatar billede -anders- Juniormester
27. august 2003 - 14:34 #10
Okay prøver lige og vender tilbage hurtigt
Avatar billede -anders- Juniormester
27. august 2003 - 14:39 #11
Hi
Hvis jeg skriver  Output = rst.GetString(, , , , ", ")kommer hele mailadressen fint i SendTo, men kun den første record i fs_emailadresser,der pt 47 records.
Avatar billede terry Ekspert
27. august 2003 - 14:41 #12
You should try using ; in send to!
Avatar billede -anders- Juniormester
27. august 2003 - 14:41 #13
Måske der skal et loop til next record eller sådan noget
Avatar billede -anders- Juniormester
27. august 2003 - 14:43 #14
Okay Terry
Hvis jeg i stedet bruger utput = rst.GetString(, , , , "; "), gør det ingen forskel, stadig kun den første mailadresse fra fs_emailadresser
Avatar billede terry Ekspert
27. august 2003 - 14:45 #15
Try entering then directly!

rst.GetString(, , , , "First@mailAddress.dk;Second@mailAddress.dk"),
Avatar billede -anders- Juniormester
27. august 2003 - 14:49 #16
Nej desværre den hjalp ikke, stadig kun en mailadresse i SendTo. kunne det være noget med at jeg ikke løber hel rst igennem, men kun fanger første record
Avatar billede terry Ekspert
27. august 2003 - 14:58 #17
Oops, sorry!

Try
DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""
Avatar billede terry Ekspert
27. august 2003 - 14:59 #18
DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""

works FINE with Outlook!
Avatar billede -anders- Juniormester
27. august 2003 - 15:03 #19
hej Terry
Sorry jeg misforstod, det virker også her, men bringer det os videre med en løsning
Avatar billede terry Ekspert
27. august 2003 - 15:07 #20
All that I can suggest is that there are other characters which are getting into your string!
If each mail address is in another record then you also need to ensure that the RowDelimiter  (Carriage Return) is NOT getting in by altering this to ; also
Avatar billede terry Ekspert
27. august 2003 - 15:08 #21
Third paramater
Avatar billede terry Ekspert
27. august 2003 - 15:10 #22
Off home now, will look later :o)
Avatar billede -anders- Juniormester
27. august 2003 - 15:11 #23
Okay tak for hjælpen so far, kikker på det i aften, tak for nu

/Anders
Avatar billede terry Ekspert
27. august 2003 - 18:06 #24
Hi Anders,
Do you have any comments to my comment 27/08-2003 15:07:50? The third paramater to GetString is defaulted to Carriage Return. So if each email addresss is in a seperate record then there will be a CR character after each email address.

Something I just noticed!
There are only FOUR paramaters to GetString NOT five which

Try this!

Output = rst.GetString(, ,";" ,  )
Avatar billede terry Ekspert
27. august 2003 - 18:15 #25
Hi Anders,
found this link which seems to work even though I think it is wrong becaus eof the third paramater!
http://www.eksperten.dk/spm/382936
Avatar billede -anders- Juniormester
27. august 2003 - 19:43 #26
Hi Terry
Tak for indsatsen, ja hver emailadresse er jo en record, jeg havede allerede kikket på dit link, men syntes stadig at der kommer fejl. Never mind jeg vil forsøge dette: Output = rst.GetString(, ,";" ,  ). Jeg har desværre ikke mulighed for chekke før i morgen formmiddag, men giver besked så snart jeg har testet. Håber det er ok. Jeg regner med at teste ca kl. 09:30, vi høres ved

/Anders
Avatar billede terry Ekspert
27. august 2003 - 19:49 #27
OK! I am away from midday tomorrow!
Avatar billede terry Ekspert
27. august 2003 - 19:50 #28
If it still doest work then I would try looping throughthe recordset appending each email to a string making sure there are no white spaces (tabs etc)
Avatar billede hekla Nybegynder
27. august 2003 - 21:32 #29
Den her testede jeg, da jeg svarede på http://www.eksperten.dk/spm/373000, og den virkede med Outlook og vist nok også med Outlook Express. Hvad er det for en fejl du får, når du bruger den med Lotus Notes?

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim varOutput As Variant
Dim strQuery As String
Dim strEmail As String

Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset

    strQuery = "SELECT * From fs_emailadresser"
    rst.Open strQuery, cnn, adOpenStatic, adLockReadOnly, adCmdText
    varOutput = rst.GetString(, , , "; ")
    strEmail = "mailto:" & varOutput
    Application.FollowHyperlink strEmail

rst.Close
cnn.Close
Avatar billede -anders- Juniormester
28. august 2003 - 09:54 #30
Hi Terry
Nu har jeg testet, men descærre er problemet det samme, jeg forsøgte sent i går aftes på en outlook, og der ser det faktisk ud til at virke. Jeg tror vi skal ud i din kommentar 27/08-2003 19:50:38 for at få det til at virker.

hekla:
Tak for indlægget. Problemet er at hvis der kun er 3 parametrer i get string for jeg kun de 3 første bogstaver i mailadresse overført, og kun den første record ud af 47, hvis jeg bruger rst.GetString(, , , , "; ")med 4 parametrer kommer hele mailadresse i SendTo, men stadig kun den første record. Jeg mener ikke at det skulle betyde noget med Lotus Noes, da jeg jo ikke sender min mail, men blot benytter send objekt for at åbne en tom mail, og så her få overført mine mailadresser fra fs_mailadresser. Det virker jo fint hvis jeg tester uden at bruge kode direkte til det som sådan her:    DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""


Anders
Avatar billede -anders- Juniormester
28. august 2003 - 09:58 #31
Jeg ønsker ikke at sende mailen i første hug, derfor har jeg lavet lidt om på hekla's kode, Jeg har faktisk forsøgt bare at køre koden som den var, men det spiller ikke til den aktuelle opgave, blot en kommentar
Avatar billede terry Ekspert
28. august 2003 - 10:03 #32
Anders, I would try using the method hekla and I previously have refered to see if it does help!

If  ths works then it can ONLY be how your String (output)is getting formatted.

DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""

OH! Something else worth trying! Change the NAME of your varaible (output) to something else, it may be a reserved word!
And also try debugging to contents

add a line
debug.print output

Ctrl+G to open the debug window so you can see what is getting placed into the string!
Avatar billede -anders- Juniormester
28. august 2003 - 10:27 #33
Okay Terry, jeg prøver og vender tilbage

/Anders
Avatar billede -anders- Juniormester
28. august 2003 - 10:34 #34
Hej igen Når jeg bruger flg. som string Outputadresser = rst.GetString(, , , , "; "), og bruger min sendobjekt flg. DoCmd.SendObject , "", "", Outputadresser, "", "", "", "", True, "", og defefter bruger debub.print outputadresser kan jeg se at stringen faktisk indeholder alle 47 mailadresser, men som sagt er det kun den første record der stå i send to feltet i min notesmail, Måske det aligevel driller fordi det er lotus notes

*Anders
Avatar billede terry Ekspert
28. august 2003 - 11:15 #35
Maybe it is Lotsu Notes, but what puzzles me is you say that this works!

DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""
Avatar billede -anders- Juniormester
28. august 2003 - 11:30 #36
Yes
DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, "", virker, men ikke i forbindelse med at jeg sætter To til variablen Outputadresser. jeg er nu helt sikker på at det er GetString der ikke køre ifb. med Lotus Notes. Hvis du har en anden løsning at foreslå er det fint, men kan du ikke bruge mere tid på det er det også OK. Jeg går til frokost nu, og er tilbage om 45 minutter

*ss* Anders
Avatar billede hekla Nybegynder
28. august 2003 - 15:39 #37
Der er, så vidt jeg kan se, to muligheder.
1. Delimiter til at adskille email-adresserne er forkert.
2. Du mangler anførselstegnene uden om email adresserne.
Avatar billede -anders- Juniormester
28. august 2003 - 16:03 #38
Hej hekla
Tak for tippet, jeg tester videre og vender tilbage, nok først i morgen tidlig
vi høres ved
Avatar billede -anders- Juniormester
28. august 2003 - 16:38 #39
Hej igen
Lige en ting, det er bestemt ikke noget must at det skal gøres på denne måde, det var jo blot et forsøg, hvis i har andre forslag hvordan det kan gøres er dette helt fint
*SSS*
Anders
Avatar billede terry Ekspert
30. august 2003 - 11:45 #40
Anders>
If THIS works (does it?) then you can see that the delimiter (;) between eamil adresses is correct and ALSO that it is possible to get more than one email address into the TO field in Lotus.
So in my opinion the proble lies somewhere else NOT LOTUS, and I have a feeling that it is GetString which is causing the problem.

If you can sen me your dB or the parts of interest the I can take a look to see if I can see the problem. eksperten@santhell.dk

Another idea is loop through the recordset and append each email with a ; between to a string.
Avatar billede -anders- Juniormester
30. august 2003 - 12:49 #41
Hej Terry
Nu har jeg sendt dig en testdb, jeg kan ikke teste op mod Lotus Notes før mandag så det haster ikke, vi høres ved

mvh Anders
Avatar billede terry Ekspert
30. august 2003 - 12:59 #42
well I hope that this was the reason for the problem!

Function Mailtest()

Dim cnn As ADODB.Connection

Dim rst As ADODB.Recordset

Dim Outputmail As String

Dim strQuery As String

Set cnn = CurrentProject.Connection

Set rst = New ADODB.Recordset

strQuery = "SELECT * From fs_emailadresser"

rst.Open strQuery, cnn, adOpenStatic, adLockReadOnly, adCmdText

'NOTE this line has been change, it used Output and not Outputmail
Outputmail = rst.GetString(, , , ";")
 
DoCmd.SendObject , "", "", Outputmail, "", "", "", "", True, ""

rst.Close

cnn.Close

End Function
Avatar billede terry Ekspert
30. august 2003 - 13:00 #43
It works just fine in Outlook!
Avatar billede -anders- Juniormester
30. august 2003 - 13:22 #44
Hi terry
Jeg har nu testet dit sidste indlæg i Outlook, og her virker det perfekt. På mandag vil jeg igen teste op mod Lotus Notes med dit sidste indlæg, så må vi se om det også virker der. Hvis ikke er det så muligt at loope igennem mit recordset, og måske få det til at virke. Jeg håbder det er ok at jeg først kan teste mod Notes mandag. Du skal have mange tak for din indsats so far, vi høres ved mandag, jeg regner med at teste ca kl. 08:15 AM. God weekend

mvh Anders
Avatar billede terry Ekspert
30. august 2003 - 15:26 #45
No problem at all waiting until mondag, only hope it works.
Good weekend to you too

mvh
Terry
Avatar billede -anders- Juniormester
01. september 2003 - 13:01 #46
Hi
Så blev der endelig tid til at teste indlægget fra 30/08-2003 12:59:48. Desværre er problemet det samme som tidligere, kun den første record fra fs_emailadresser bliver overført til SendTo i Lotus Notes mailen, jeg forstår det ikke, hvis jeg køre nøjagtig den samme kode på outlook køre det uden problemer. Jeg er bange for vi ikke lige komme videre, sidste chance kunne være at loope igennem recordset, kan du evt. hjælpe med koden.

mvh Anders
Avatar billede terry Ekspert
01. september 2003 - 17:48 #47
Anders if we loop through the mail addresses do you want to send ONE mail per address or the same mail to them all? If we send one to them all then I am afraid we are going to end up in the same situation!

Can you confirm that this works?

DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""

If it does then does this work?

Outputmail = "First@mailAddress.dk;Second@mailAddress.dk"
 
DoCmd.SendObject , "", "", Outputmail, "", "", "", "", True, ""
Avatar billede -anders- Juniormester
02. september 2003 - 08:53 #48
Hi Terry
Ja jeg kan se hvad du mener. Meningen med funktionen var at man sender en Mail til alle emailadresser. Funktionen var tænket til at brugeren skriver en standardbesked og så sender den til alle i adressereg. som har en mailadresse. Jeg går til møde nu, og er tilbage i eftermiddag, så hvis du har lyst kunne det være fint hvis vi kunne prøve en sidste gang.

mvh Anders
Avatar billede terry Ekspert
02. september 2003 - 10:34 #49
Anders, you didnt give an answer to my question concerning (Can you confirm that this works?)
This may help decide which way to go from here :o)


Function OpenMail()
Dim rs As ADODB.Recordset
Dim sBCC As String
   
    Set rs = New ADODB.Recordset
   

    rs.Open SELECT * From fs_emailadresser" , CurrentProject.Connection, adOpenStatic, adLockReadOnly, adCmdText


    If Not rs.EOF Then

        Do Until rs.EOF
       
                          'Change Email to the name of the field
            sBCC = sBCC & rs!Email & ";"
           
           
            rs.MoveNext
           
        Loop

    DoCmd.SendObject , "", "", sBCC, "", "", "", "", True, ""
       
       
    End If
   

End Function
Avatar billede -anders- Juniormester
02. september 2003 - 17:42 #50
Hi Terry
Undskyld den lange svartid på dit sidste indlæg, har været til møde hele dagen

Denne her virker:
DoCmd.SendObject , "", "", "First@mailAddress.dk;Second@mailAddress.dk", "", "", "", "", True, ""

Denne her virker også
Outputmail = "First@mailAddress.dk;Second@mailAddress.dk"

Det er først når jeg jeg sætter min variable til i send object til recordset det går galt. Never mind din sidste kode med loope igennem virker, så den vil jeg holde mig til so far. Det er nok som du var inde på i sarten "Det er Get string der er problemet". Du skal have mange tusind tak for din store indsats, uden din hjælp var jeg ikke kommet videre, ydermere har jeg jo også lært at loope igennem et recordset, dette kan jeg helt sikkert bruger i andre sammenhænge. Jeg tror at det kan have være Lotus Notes der driller med den GetString, jeg fik det jo til at virke i første omgang på OutLook, så måske vi snart skulle skifte til OutLook her he, he,.

Endnu engang mange tak, her er dine velfortjente points. Vi høres nok ved en anden gang.

Mange hilsner
Anders.
Avatar billede terry Ekspert
02. september 2003 - 18:11 #51
Hi Anders,
first thanks for the points :o)

Do you say that the code from my last example actually does work as it is? If thati sthe case then it can only be Getstring that is giving the problem!
Anyway what is important is its working!

Once again tak !
Avatar billede -anders- Juniormester
02. september 2003 - 18:15 #52
Hi
Ja det rigtigt hvis jeg benytter syntaxen med GetString virker det kun i OutLook og IKKE i Lotus Notes, Men din sidste kode virker begge steder, meget mærkeligt, Men som du siger its working!:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester