10. april 2007 - 11:42Der er
7 kommentarer og 1 løsning
Dynamisk udvælgelse af mailadresser via liste med multiselect
Hej Eksperter
Jeg anvender nedenstående kode for at oprette en ny mail for alle personer i min DB som er registreret med den MedlemstypeID jeg har markeret på min liste "lstselecttype", dette virker perfekt:
'kode start' Private Sub cmdopretemails_Click() 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
Problem: Jeg ville gerne kunne markere flere MedlemstyperID's på min liste (multiselect), og så ved klik på min knap oprette en email for alle personer der er registrert med den eller de medlemstyperID's der er markeret på min liste, det må være noget med en løkke, men jeg er ikke så skrap til netop dette. Min forspørgsel Qopretmail indeholder felterne "email" (tekst), og "MedlemstypeID (tal). Jeg har indsat kriteriet Is Not Null i feltet "email", for at undgå fejl. Jeg arbejder Access 2003 DA
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Tak for indlægget, jeg tror jeg venter, hvergang jeg forsøger at arbejde med løkker går der altid helt kuk i den, det selvfølgelig fordi jeg ikke er dygtig nok :o)
DB modtaget retur fra terry med nedenstående løsning som er testet og virker:
Private Sub cmdopret_Click() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim varOutput As Variant Dim strQuery As String Dim strEmail As String Dim i As Integer Dim s As String
Set cnn = CurrentProject.Connection Set rst = New ADODB.Recordset
Og her med fejlhåndtering hvis der ikke er nogen medlemmer med emailadresse i de valgte medlemstyper:
Private Sub cmdopret_Click() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim varOutput As Variant Dim strQuery As String Dim strEmail As String Dim i As Integer Dim s As String
Set cnn = CurrentProject.Connection Set rst = New ADODB.Recordset
s = " IN("
For i = 0 To Me!lstselecttype.ListCount
If Me!lstselecttype.Selected(i) Then
s = s & Me!lstselecttype.Column(0, i) & ","
End If
Next i
s = Left(s, Len(s) - 1) s = s & ") "
strQuery = "SELECT [Email]From Qmail WHERE [MedlemstypeID] " & s 'Me!lstselecttype.Column(0) rst.Open strQuery, cnn, adOpenStatic, adLockReadOnly, adCmdText 'Kun hvis der er mindst en emailadresse oprettes mail' If rst.RecordCount > 0 Then varOutput = rst.GetString(, , , ";") strEmail = "mailto:" & varOutput Application.FollowHyperlink strEmail
rst.Close cnn.Close Else 'Meddelse hvis .rst er tom' MsgBox "De markeret medlemstyper indeholder ikke nogen medlemmer med emailadresser, handlingen annulleres", vbExclamation, "Opret email"
End If
Synes godt om
Ny brugerNybegynder
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.