Concatena record in un'unica stringa

di il
6 risposte

Concatena record in un'unica stringa

Salve sono alle prime armi con access 2007.Ho creato un data base per l'ufficio contenente i dati del personale compresi gli indirizzi e-mail: es. NOME - COGNOME - EMAIL . Adesso vorrei creare un query che mi raggruppi in tutti gli indirizzi email in un'unica stringa separati da ; es. ";;"ecc....., eliminandomi i doppioni Grazie.

6 Risposte

  • Re: Concatena record in un'unica stringa

    Ciao, scusa non fai prima ad esportare tutti i dati in un file di testo?! Inserendo come separatore ";"?! Altrimenti potresti usare un ciclo in VBA
  • Re: Concatena record in un'unica stringa

    Facendo come dici tu, ho già provato però il problema si presenta quando faccio il copia/incolla degli indirizzi e-mail per incollarli nel campo dei destinatari dell'email, mi copia soltanto il primo indirizzo Di visual basic non sono pratico. Grazie per la risposta sollecita.
  • Re: Concatena record in un'unica stringa

    Ciao,
    prova con qualcosa del tipo
    
    select nome+';'+cognome
    from tabella
    where nome=''
    
  • Re: Concatena record in un'unica stringa

    Perchè hai impostato che il nome dev'essere uguale a vuoto?!
  • Re: Concatena record in un'unica stringa

    Era un esempio, mi pareva chiaro...
  • Re: Concatena record in un'unica stringa

    Antonior76 ha scritto:


    Salve sono alle prime armi con access 2007.Ho creato un data base per l'ufficio contenente i dati del personale compresi gli indirizzi e-mail: es. NOME - COGNOME - EMAIL . Adesso vorrei creare un query che mi raggruppi in tutti gli indirizzi email in un'unica stringa separati da ; es. ";;"ecc....., eliminandomi i doppioni Grazie.
    Mah... soluzioni diverse dall'uso di VBA non ne vedo.
    Io farei così:
    1) apri un recordset, magari basato su una query che già seleziona solo l'indirizzo e-mail, con un Distinct che elimina i doppioni.
    2) fai il ciclo per ogni record del recordset, accodando l'indirizzo ad una variabile stringa
    strEmail = strEmail & ";" & recordset.Fields("nomecampoemail").value
    3) finito il ciclo, la stringa strEmail contiene tutte le e-mail separate dal puntoevirgola. Quella stringa però inizia con un puntoevirgola. Per toglierlo
    strEmail = Mid$(strEmail, 2)
    Ovviamente serve un po' di dimestichezza con vba ma per questa operazione non serve molto. Chiedo scusa al forum de "IProgrammatori.it" se suggerisco un link esterno: http://forum.masterdrive.it/access-79/access-leggere-scrivere-dati-nelle-tabelle-tramite-vba-dao-13176/ come inizio. Comunque trovi esempi di cicli su recordset all'infinito, cercando anche qui o in generale sul web con un motore di ricerca.
    (aspetta che forse avevo già trattato qualcosa del genere, vado a cercare)
    Guarda! Oh, sembra fatto apposta: Concatena email
    Ora rileggo quello che ho scritto, guardando se ti ho dato i suggerimenti giusti e ho appreso le correzioni a suo tempo fatte da @Alex. (più o meno)
Devi accedere o registrarti per scrivere nel forum
6 risposte