Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [ACCESS]Invio di risultati query ad Outlook

    Mettendo caso di avere una query che mi restituisca un elenco di email,la funzione ideale sarebbe quella che mi aprisse in automatico Outlook e mi mettesse come campo destinatario di una mail vuota,le email risultato della query...come si potrebbe implementare?

    Grazie per l aiuto

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    Private Sub mandamail_Click()
    FollowHyperlink "mailto:pippo@pluto.it,pluto@pippo.it,pinco@palla.it"
    End Sub

  3. #3
    Ottimo è proprio cio'che volevo ^_^ solo che non essendo pratico di vba, non so come trasferire il risultato della mia query(fatta col wizard di access) nel pulsante di invio email

    Grazie cmq

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Fai una ricerca su google usando come chiave di ricerca

    vba access loop recordset e simili.

    Una volta fatta la query scorri il recordset, via via concateni le singole mail separandole con la virgola o il punto e virgola e infine rimuovi l'ultimo carattere.

  5. #5
    Grazie della dritta ma per curiosita'perchè l ultimo carattere va rimosso?

    cmq io stavo provando a salvare il risultato della query in una stringa
    Private Sub Comando14_Click()
    Dim rs As Recordset
    Dim mystring As String
    Set rs = DBEngine(0)(0).OpenRecordset("nome query")

    FollowHyperlink "mailto:???"
    rs.Close End Sub
    Solo che non riesco a collegare il risultato del recordset a una stringa...ho provato con l istruzione

    mystring = rs.Fields

    ma mi da errore di argomento

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Come ti accennavo devi scorrere il recordset e concatenare le mail in una stringa che passerai poi al metodo FollowHyperlink. Dall'editor vba di access da Strumenti => Riferimenti, aggiungi quello relativo a "Microsoft DAO 3.x Object Library".

    codice:
    Option Compare Database
    Option Explicit
    
    Private Sub cmdApriPosta_Click()
           Dim db As DAO.DataBase
           Dim rs As DAO.Recordset
           Dim strMail As String
           Set db = CurrentDb()
           Set rs = db.OpenRecordSet("select campo_mail from tabella")
                If rs.RecordCount = 0 Then
                    MsgBox "nessun record trovato"
                    Exit Sub
                End If
           While Not rs.EOF
             strMail = strMail & rs("campo_mail") & ";"
             rs.MoveNext
           Wend
           'MsgBox strMail
           Set rs = Nothing
    FollowHyperlink "mailto:" & strMail
    End Sub
    Per quel che riguarda l'ultimo carattere, cioè l'ultimo ";", ho visto che outlook lo rimuove già per conto suo e a dire il vero mi hai anche fatto sorgere il dubbio. Probabile che la mail venga inviata anche con quell'ultimo carattere.

  7. #7
    Grazie infinite!Allora ho ricopiato la tua funzione ma avviandola ottengo un errore 3265 :elemento non trovato in questo insieme

    in particolare facendo il debug la linea in cui è presente l errore è quella relativa a

    strMail = strMail & rs(Email) & ";"

    Poi ho provato ad attivare quell opzione "Microsoft DAO 3.x Object Library" nei riferimenti ma mi da errore dicendo "Nome gia utilizzato per modulo,progetto o libreria degli oggetti esistenti"
    E di fatto non me lo fa selezionare



    EDIT:ho notato che comunque nella stringa str finiscono correttamente tutte le mail risultato della query,inoltre mettendo il campo email tra apici

    strMail = strMail & rs("Email") & ";"

    l errore si sposta piu in basso all ultima riga

    FollowHyperlink "mailto:" & strMail

    dicendomi errore di runtime 87 errore imprevisto

    EDIT 2: Se il numero di email è piccolo,il sistema funziona,il problema sorge quando il numero di mail diventa grande diciamo di 80 email...bè in quel caso da l errore di runtime imprevisto,e ho notato che nella msgbox di prova,il risultato della query non è completo e l ultima mail è troncata a meta'

    Private Sub Comando14_Click()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strMail As String
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT Contatti.Email FROM Contatti WHERE (((Contatti.Esclusione)=0));")
    If rs.RecordCount = 0 Then
    MsgBox "nessun record trovato"
    Exit Sub
    End If
    While Not rs.EOF
    strMail = strMail & rs(Email) & ";"
    rs.MoveNext
    Wend
    'MsgBox strMail
    Set rs = Nothing
    FollowHyperlink "mailto:" & strMail

    End Sub

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    strMail = strMail & rs("Email") & ";"

  9. #9
    Grazie per la pazienza,ma ora pero'rimane il problema fondamentale...in pratica con poche email funziona mentre con 80-100 mi da errore di runtime 87...come se ci fosse un limite
    Posso mettere un file di esempio se puo essere utile...ma credo sia un bug

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Set rs = db.OpenRecordSet("select top 30 campo_mail from tabella")

    fai un pò di prove aumentando di volta in volta il valore fino a quando non si presenta l'errore.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.