Avatar billede nmk Nybegynder
22. marts 2006 - 14:04 Der er 9 kommentarer og
1 løsning

søge, se og sende emails

Jeg har en database med en række tidsskrifter. Til hvert tidsskrift er der knyttet et antal email adresser. I en formular vil jeg gerne kunne 1: vælge et bestemt tidsskrift. 2: fremsøge de tilknyttede emails og se dem i en tekstbox adskilt af semikolon. 3: sende disse emails. Jeg er kun lidt over begynderstadiet!
Hvordan gør jeg det på den enkleste måde? Jeg har forsøgt med SQL søgning og dlookup, men kan ikke få det til at fungere.
Avatar billede ffsoft Praktikant
22. marts 2006 - 14:19 #1
Det kommer helt an på hvordan du har struktureret tabellerne.
Jeg vil forslå at du laver en formular der indeholder tidsskrift
med en underformular der indeholder emails. Så er det ikke det
vilde problem at lave en knap der sender en mail (hvor skal teksten
til den komme fra) til de modtagere der er tilknyttet det tidskrift
der vises.
Mange gange får man et bedre hjælp hvis man istedet for at fokusere
på den tekniske side af løsningen i stedet fokuserer på anvendelsen.

Så hvad skal du mere præcist bruge det til ?? Hvilke tabeller har du ??
Hvordan er de relateret til hinanden ??
Avatar billede nmk Nybegynder
22. marts 2006 - 20:37 #2
Jeg har, som du skriver, en formular med tidsskrifter og en underformular med emails. Brugerne kan vælge et tidsskrift på en liste og indtaste deres email-adresse. Det ser ud til at virke ok. Når der udkommer et nyt tidsskrift skal jeg sende brugerne et link til en scanning af indholdsfortegnelsen. Det er det jeg gerne vil lave en formular til.
Jeg arbejder med to tabeller: 1 med tidsskrifterne, som er relateret til en tabel med emailadresser, så ét tidsskrift indeholder mange emails. Det kan godt være det ikke er det store problem, men jeg kan ikke hitte ud af det og har ikke tid til at sætte mig ordentligt ind i sagerne...
Avatar billede nmk Nybegynder
23. marts 2006 - 11:08 #3
Tabeller:
tblemail: IDemail, email, tidsskrifter
tidsskrifter: tidsskrifter, IDemail, annotation

tabellerne er forbundet med IDemail (1 i tblemail, mange i tidsskrifter)

Det ser ud til at jeg kan hente alle de oplysninger jeg skal bruge i tblemail. Men hvordan gør jeg det i en formular?
Avatar billede ffsoft Praktikant
23. marts 2006 - 13:28 #4
Et eller andet sted på din form, som er bundet til tabellen tblEmail
kan du sætte et skjult felt, som indeholder IDemail. Lav en knap
der laver en forespørgsel, hvor du sætter de to tabeller sammmen.
Gennemløb recordsettet og opbyg en tekststreng med ; separerede email
adresser. Denne tekststreng kan du så overføre til sendobject() og
så er den hjemme. Jeg kan godt skrive noget kode, der viser hvad jeg
mener, men først i aften.
Avatar billede nmk Nybegynder
23. marts 2006 - 13:37 #5
Tak. Jeg vil blive lykkelig for noget kode. Jeg forstår metoden, men...
Avatar billede ffsoft Praktikant
23. marts 2006 - 18:03 #6
Du kan hente en demo her: http://www.ffsoft.dk/kunde/nmk.mdb
Avatar billede ffsoft Praktikant
23. marts 2006 - 18:04 #7
Sub cmdSendMail_Click()
'---------------------------
' Henter email adresser fra en tabel og
' sender en mail til alle
'
' www.ffsoft.dk
' Rettet 23-03-2006
'---------------------------
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strSQL As String
Dim strModtager As String
Dim intTidsskriftID

Set conn = CurrentProject.Connection
Set rst = New ADODB.Recordset
' Hvilket tidsskrift er på skærmen nu
' hvis der ikke er noget bruges 0
intTidsskriftID = Me!TidsskriftID
If Len(intTidsskriftID) < 1 Or IsNull(intTidsskriftID) Then
    intTidsskriftID = 0
End If
' SQL udtrykket der finder de tilhørende email adresser
strSQL = "SELECT tblEmail.email "
strSQL = strSQL & "FROM tblTidsskrift INNER JOIN (tblEmail INNER JOIN tblEmail_Tidsskrift ON "
strSQL = strSQL & "tblEmail.emailID = tblEmail_Tidsskrift.EmailID) ON "
strSQL = strSQL & "tblTidsskrift.TidsskriftID = tblEmail_Tidsskrift.TidsskriftID "
strSQL = strSQL & "WHERE tblTidsskrift.TidsskriftID=" & intTidsskriftID & " "
strSQL = strSQL & "ORDER BY tblEmail.email;"
'MsgBox "" & strSQL
rst.Open strSQL, conn
' Er der ingen emails tilknyttet så gør intet
If rst.BOF And rst.EOF Then
Else
    ' Gennemløb recordsettet og opbyg en tekststreng
    ' med modtagere
    Do Until rst.EOF
        strModtager = strModtager & rst("email") & ";"
        rst.MoveNext
    Loop
End If
' Luk & sluk
rst.Close
Set rst = Nothing
conn.Close
Set conn = Nothing
' Hvis der står noget i modtager strengen så send
' ved hjælp af en af de to metoder
If Len(strModtager) > 1 Then
FollowHyperlink "mailto:" & strModtager & ""
'DoCmd.SendObject acSendNoObject, , , strModtager, , , "Overskrift", "Tekst i mail"
End If

End Sub
Avatar billede ffsoft Praktikant
23. marts 2006 - 18:07 #8
Imellem de to tabeller tblEmail og tblTidsskrift er der en
en-til-mange relation. Da en email (person) kan have nul, et
eller flere tidsskrifter og et tidsskrift kan købes af nul, en
eller flere personer. Derfor skal der være en "mellemtabel"
Avatar billede nmk Nybegynder
23. marts 2006 - 21:09 #9
Tak for det. Jeg prøver i morgen. Læg et svar, så du kan få dine point
Avatar billede ffsoft Praktikant
24. marts 2006 - 09:18 #10
Et svar :0)
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