Avatar billede Slettet bruger
09. februar 2004 - 17:21 Der er 11 kommentarer og
1 løsning

getrows og aktive links

Hej - jeg skal trække mails ud fra min access database med deltagerne fra 7 forskellige projekter. Jeg regnede med at prøve at bruge getrows - men har i den forbindelse 2 problemer.

Kode:

<% Set RS = server.createobject ("ADODB.recordset")
SQL = "SELECT email FROM deltagere WHERE project1 = true ORDER by email asc"
ConnString= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
RS.open SQL, ConnString, 1

if not rs.eof then
alldata=rs.getrows


For i=0 to UBound(alldata,2)
emails = alldata(0,i) & ","
finalstring = finalstring & emails
Next
finalstring = left(finalstring,len(finalstring)-1)
response.write "Emails: " & finalstring & ""

end if

RS.Close
Set RS = Nothing

%>

Problemer:

1) Jeg vil gerne at emails'ene kommer udsom EET aktivt mailto-link - sådan at jeg kan emaile til alle ved at klikke på EET link.

2) Jeg skal som sagt trække ud fra 7 projekter - skal det laves med 7 udgaver af ovenstående kode - eller kan genbruge database-åbningen eller sådan - det er jo kun SQL'en der er forskellig? Der vil jeg meget gerne se et eksempel med flere udtræk...
Avatar billede nute Nybegynder
09. februar 2004 - 17:31 #1
hmm ... hvorfor bruge getRows ? hvorfor ikke bare:

<%
Set RS = server.createobject ("ADODB.recordset")

ConnString= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")

for i = 1 to 7 step 1
    SQL = "SELECT email FROM deltagere WHERE project" & i & " = true ORDER by email asc"
    RS.open SQL, ConnString, 1
    finalString = "mailto:"
    while not RS.EOF
        finalstring = finalString & RS("email") & ","
        RS.MoveNext
    wend
    Response.write finalString
next
%>

måske jeg har misforstået

/nute
Avatar billede Slettet bruger
09. februar 2004 - 17:34 #2
Som jeg forstår det er getrows god hvis det eks. drejer sig om _mange_ poster der skal trækkes ud.

Ift. din løsning så skal mail-adresserne ikke samles for alle 7 projekter - men for hvert projekt - og så altså i EET aktivt mailto-link...
Avatar billede nute Nybegynder
09. februar 2004 - 17:42 #3
det eneste getRows gør, er at kopiere multiple rækker, fra et recordset, ind i en 2-dimentional array. kan ikke helt se pointet med at du bruger det her, for det eneste du gør, er at løbe alle records igennem for at læse ud emailadresser. det er en omvej at skulle først hive ud alle records, lægge dem ind i en array for så at læse dem ud fra din array.

min løsning vil give et resultat ála:

mailadresse for projekt1 = mailto:[mange aresser for projekt1]
mailadresse for projekt2 = mailto:[mange aresser for projekt2]
...
mailadresse for projekt7 = mailto:[mange aresser for projekt7]

skal det være sådan:

mailadresser: mailto: [projekt1],[projekt2],...,[projekt7]

?

/nute
Avatar billede Slettet bruger
09. februar 2004 - 17:51 #4
Aha, nej, din løsning kan for så vidt godt bruges - men der må være en glitch i det loop - for jeg får "Operation is not allowed when the object is open." - men du åbner vel også bare igen og igen - som det ser ud nu?
Avatar billede Slettet bruger
09. februar 2004 - 17:52 #5
Hov - ja i øvrigt - jeg vil faktisk gerne have begge løsninger - en for hvert projekt - og een samlet med ALLE som du angiver det...


mailadresse for projekt1 = mailto:[mange aresser for projekt1]
mailadresse for projekt2 = mailto:[mange aresser for projekt2]
...
mailadresse for projekt7 = mailto:[mange aresser for projekt7]

ALLE:
mailadresser: mailto: [projekt1],[projekt2],...,[projekt7]
Avatar billede Slettet bruger
09. februar 2004 - 18:10 #6
Altså : dette virker jo sådan set - her kun for projekt1... men jeg vil jo helst ikke skulle åbne nye database connections hver gang. Hvis du kan klare det - så er pointene dine:

Set RS = server.createobject ("ADODB.recordset")
ConnString= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")

    SQL = "SELECT navn,email FROM deltagere WHERE project1 = true ORDER by navn asc"
    RS.open SQL, ConnString, 1
    do while not RS.EOF
    response.write ""& RS("navn") & ", " & RS("email") & "<br>"
        finalstring = finalString & RS("email") & ","
        RS.MoveNext
    Loop
    RS.Close
    Set RS = Nothing

response.write "<br><a href='mailto:" & finalstring & "'>Send email:</a>"
Avatar billede nute Nybegynder
10. februar 2004 - 09:46 #7
ja, jeg har nok lige glemt at lukke mit RS inden jeg prøver at åbne det igen. en anden lille ændring, vil så være at lægge alle adresser ind i en array. jeg prøvet lidt med getRows metoden for dette, men jeg fik den ikke umiddelbart til at fungere, så jeg har gjort det lidt anderledes (har ikke tid til at lege for meget med det)

<%
Set RS = server.createobject ("ADODB.recordset")

ConnString= "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("database.mdb")
Dim arrMailRecipients(7)

for i = 0 to 6 step 1
    SQL = "SELECT email FROM deltagere WHERE project" & ( i + 1 ) & " = true ORDER by email asc"
    RS.open SQL, ConnString, 1
    mailString = ""
    while not RS.EOF
        mailString = mailString & RS("navn")
        RS.MoveNext
        if( i < 6 ) then
            mailString = mailString & ","
        else
            if( not RS.EOF ) then
                mailString = mailString & ","
            end if
        end if
    wend
    RS.Close
    arrMailRecipients(i) = mailString
next
for i = 0 to 6 step 1
    Response.Write( "<a href=""mailto:" & arrMailRecipients( i ) & """>Projekt " & ( i + 1 ) & "</a><br>" )
next
%>
<a href="mailto:<%= JOIN( arrMailRecipients ) %>">alle projekter</a>

/nute
Avatar billede nute Nybegynder
27. februar 2004 - 18:55 #8
har du fået det svar du søgte ?
Avatar billede Slettet bruger
07. oktober 2008 - 11:41 #9
Svarer du for point?

Beklager den sene tilbagemelding - prøver at rydde lidt op i mine spørgsmål :-)
Avatar billede nute Nybegynder
07. oktober 2008 - 12:39 #10
Hehe ... disse 60 points har jeg ventet på i over 4 år nu - så jeg vil jo selvfølgelig have dem ;-)

Tror faktisk dette er et af de sidste aktive svar jeg har givet, så points betyder ikke noget længre - du må gerne beholde dem :-)

/nute
Avatar billede Slettet bruger
07. oktober 2008 - 15:15 #11
Ja, vi går langt tilbage ;-) Endnu en gang tak for hjælpen!
Avatar billede nute Nybegynder
07. oktober 2008 - 15:26 #12
yup :-)

bare hyggelig ...
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
Kurser inden for grundlæggende programmering

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