Avatar billede bagnavnet Nybegynder
24. november 2005 - 15:21 Der er 25 kommentarer og
1 løsning

sammensæt af fields

Hej,

Jeg har en tabel i en mdb fil som bl.a. indeholder nogle email-adresser. Jeg kunne godt tænke mig at jeg kunne få dem ud i et format så jeg bare kan copy-paste dem ind i mit emailprogram når jeg skal sende dem.
Fx

E-mail
eks1@eksperten.dk
eks2@eksperten.dk

at disse kan vises sådan her:
eks1@eksperten.dk; eks2@eksperten.dk osv.

Nogen der ved hvordan man gør det?
Avatar billede mugs Novice
24. november 2005 - 15:29 #1
Hvorfor ikke sende din e-mail direkte fra Access. Du kan bruge handlingen SendObjekt fra en makro eller Docmd.SendObject fra Access.
Avatar billede mugs Novice
24. november 2005 - 15:32 #2
I denne artikel er der i detaljer vist hvordan du kan vælge een eller alle e-mail i en liste og sende til alle valgte på een gang, direkte fra Access:

http://exp.dk/artikler/371
Avatar billede bagnavnet Nybegynder
24. november 2005 - 15:59 #3
jeg vil gerne kunne tjekke mailsne for dobbeltgængere inden jeg sender til dem. Hvis der er 2 adresser som er ens vil jeg kun sende én mail...?
Avatar billede -anders- Juniormester
24. november 2005 - 16:28 #4
Som mugs er inde på kan du via SendObjekt oprette din mail direkte fra acces feks. ved klik på en knap, for at undgå at sende den samme mail mere en gang ville jeg gøre flg.

Opret en forspørgsel, og medtag blot di emailfelt fra tabellen, i design på forespørgselen skal du højreklikke i det grå område og vælge egenskaber, der sætter du unikke værdier til Ja, gem din forspørgsel som et fysiks objekt navngiv den Q_mailadresser. Denne forspørgsel er dynamisk og vil altid kun vise emailadresser der ikke er ens, på denne måde slipper du for at tjekke det i kode.

Opret nu et dynamisk recordset, og benyt resultatet i din SendObjekt metode, recordsettet skal så spørge løbe emailadresserne i Q_emailadresser, nedenstående et eks.

Dim rs As ADODB.Recordset
Dim sTo As String
   
    Set rs = New ADODB.Recordset
   

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


    If Not rs.EOF Then

        Do Until rs.EOF
       
                         
            sTo = sTO & rs!Email & ";"
           
           
            rs.MoveNext
           
        Loop

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

Feltet Email er så feltnavnet fra din tabel, dette skal naturligvis ændres til dit eget feltnavn.

PS. er ikke testet, men skrevet ud af hovedt, men ideen er god nok
Avatar billede -anders- Juniormester
24. november 2005 - 16:39 #5
Du kan også benytte SELECT DISTINCT i ovenstående kode i stedet for at oprette og gemme en forspørgsel som et fysisk objekt, det en smagssag hvad man syntes der er bedst, resultatet bliver det samme
Avatar billede mugs Novice
24. november 2005 - 16:59 #6
Hvis du giver din liste rækkekilde med Select Distinct, vil den kun medtage e-mail adressen een gang.

For øvrigt er det ligegyldigt, for min testdb sender kun een gang til hver adresse.
Avatar billede mugs Novice
24. november 2005 - 17:14 #7
Hvis du lægger din e-mail, kan jeg sende dig de testdb, der ligger til grund for artiklen.
Avatar billede bagnavnet Nybegynder
24. november 2005 - 18:32 #8
jeg kender overhovedet intet til access, men det virker godtnok vanskeligt. Jeg troede, at man bare kunne lave en eller anden from for select statement, som gav en udskrift af alle field-data og tilføjede et ";" mellem hver post. Denne liste kunne jeg så copy-paste over i mit mailprogram. Jeg er ikke interesseret i at benytte outlook, men vil bare gerne have en liste af mine data, med et ; mellem hver post, hvor posterne er sorteret så der ikke er gengangere....?
Avatar billede mugs Novice
24. november 2005 - 18:37 #9
"Jeg er ikke interesseret i at benytte outlook"

eksemplerne benytter det til rådighed værende e-mail program, selv bruger jeg OutLook Express.

Min liste har en select sætning som postkilde, og du klikker blot på den eller de adresser som du vil benytte og koden sætter automatisk ; mellem hver adresse.
Avatar billede bagnavnet Nybegynder
24. november 2005 - 19:27 #10
punkt 12 er vel hvad jeg skal gøre?

Jeg er dog så meget på bar ben her, at jeg tror det vil være for omfattende at gå i gang med.

Hvor opretter man en liste??

Jeg kan nu stadig ikke forstå, at der ikke er en simple simple funktion som bare kan vise de adresser.
Avatar billede mugs Novice
24. november 2005 - 19:33 #11
Punkt 12 ja.

Listen tager du fra din værktøjskasse, og i fanen data > Rækkekildetype vælger du Tabel / forespørgsel > Derefter sætter du markøren på linien Rækkekilde og trykker på de 3 små .. i højre side > Vælg tabel > Træk feltet med e-mail ned i forespørgselsgitteret. Så har du listens data.

Der er mange simple funktioner der kan give dig dine adresser på hver sin måde, men jeg finder denne mest anvendelig når du vil e-maile.
Avatar billede terry Ekspert
24. november 2005 - 19:45 #12
if you want to get all of your email addresses then you can use the GetString method to a recordset

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
   
    Set rs = New ADODB.Recordset
    With rs
       
        Set .ActiveConnection = CurrentProject.Connection
       
        .Open "Select email From tblCustomer", , , adLockOptimistic

        Debug.Print rs.GetString(2, , , ";")
        rs.GetRows
        .Close
    End With
Avatar billede terry Ekspert
24. november 2005 - 19:46 #13
and actually you dont need
Dim cn As ADODB.Connection
Avatar billede bagnavnet Nybegynder
24. november 2005 - 20:29 #14
nu spørger jeg sikkert dumt, men hvor er værktøjskassen??

Jeg har været alt igennem og kan ikke finde nogen liste? Hedder den noget helt andet på engelsk? Det virker ikke som om at jeg ser det samme, som det du beskriver?
Avatar billede mugs Novice
24. november 2005 - 20:32 #15
Værktøjskassen ligger i Vis > Værktøjslinier

Jeg har en dansk version af Access. Men vil du ikke have mine databaser, så er det nok nemmere at gennemskue. Blot læg din e-mail.
Avatar billede terry Ekspert
24. november 2005 - 20:33 #16
Try opening a form in design view and then choose view+toolbox from the menu
Avatar billede bagnavnet Nybegynder
24. november 2005 - 21:16 #17
der er et eller andet sted jeg er fuldstændig ude af kurs! Jeg har en mailinglist.mdb. Når jeg åbner den har jeg i venstre side "Objects" og herunder tables, queries, forms, reports, pages, macros og modules. Hvis jeg klikker på tables har jeg min tbMailingList. Den kan jeg så dobbeltklikke på hvorefter jeg ser tabellen med colonner og fields. Her har jeg en colonne der hedder: SubscriberEmail og under den har jeg 250 emailadr. Spørgsmålet er så, hvad gør jeg nu?
Avatar billede mugs Novice
24. november 2005 - 21:18 #18
Ja - Du er noget ude af kurs.

Du skal have lavet en formular inden du kan begynde at programmere. Kan du sende db til:

mugs@mail.dk

Så hjælper jeg dig igang. Husk at zippe den.
Avatar billede bagnavnet Nybegynder
24. november 2005 - 21:35 #19
hermed gjort. Håber du kan hjælpe, jeg får slidegigt af at skulle copy/paste adresserne ud...;-)
Avatar billede mugs Novice
24. november 2005 - 21:44 #20
db modtaget, rettet og returneret.
Avatar billede bagnavnet Nybegynder
24. november 2005 - 22:13 #21
weiii, det er sgu godt arbejde det der!!! Hvordan pokker lavede du det så hurtigt??
Min db ændrer sig hele tiden og der tilføjes hele tiden nye mailadresser til den. Hvis jeg vil benytte din form i en anden db, kan jeg så bare copy paste den til den, eller skal de sættes op fra bunden af igen?
Avatar billede bagnavnet Nybegynder
24. november 2005 - 22:16 #22
den frasorterer også dobbeltgængere gør den ikk?
Avatar billede mugs Novice
24. november 2005 - 22:17 #23
Jeg brugte min testdb som jeg tilbød dig Kl 17:14. Derefter importerede jeg dine tabeller og gav listen en anden postkilde fra din tabel.

når du tilføjer / sletter e-mail adresser vil listen altid vise den eksisterende adresser.

Du kan sagtens benytte min form i en anden db. Det eneste du skal ændre er listens datakilde.
Avatar billede mugs Novice
24. november 2005 - 22:21 #24
Jo den viser kun en adresse een gang. Det kan du se i listens rækkekilde:

SELECT DISTINCT tblMailingList.SubscriberEmail FROM tblMailingList; 

Ordet distinct betyder at den kun medtager den første af flere ens adresser.

Hvis du bruger.

SELECT tblMailingList.SubscriberEmail FROM tblMailingList;

Medtages alle adresser uanset om der er dubletter. Men som tidligere skrevet, så er det ligegyldigt, fordi den kun sender til en adrese en gang, uanset om denne adresse er med 1, 2 eller 10 gange.
Avatar billede bagnavnet Nybegynder
24. november 2005 - 22:27 #25
Genialt! TAK
Avatar billede mugs Novice
24. november 2005 - 22:29 #26
Selv tak - Går til køjs nu, men får du problemer vender du bare tilbage.
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