Estrazione indirizzo e-mail da campo database

di il
9 risposte

Estrazione indirizzo e-mail da campo database

Salve ragazzi,
chiedo aiuto per risolvere questo problema, forse banale, ma ho poca pratica di access, (l'ho usavo anni ed anni fa)

Ho un database con un solo campo testo, chiamato campo1, ed ogni tanto ho righe di questo tipo:

E-mail: <mailto:>
Indirizzo e-mail:
E-MAIL

Mi occorre impostare una query che mi restituisca il solo indirizzo e-mail. Praticamente tutti i caratteri prima e dopo della chiocciola, fin quando non trovo uno spazio....l'ho detta giusta?
E' possibile?

grazie a tutti

9 Risposte

  • Re: Estrazione indirizzo e-mail da campo database

    Direi di no... perchè in base a quello che hai pensato. la tua prima riga di esempio già ti metterebbe in crisi...:
    
    E-mail: prova.prova@libero.it <mailto:prova.prova@libero.it>
    Questo infatti contiene 2 @... qual'è la buona...?
    Oltretutto se analizzi la 2° parte, [<mailto:>] contiene una chiocciola... ma se applichi il criterio dello spazio... sei fregato... così come lo sei se alla fine non c'è lo spazio... e mi pare siano i 2 esempi successivi...

    Quinsi se la consistenza dei tuoi dati è tale da rendere funzionale il criterio che dici... allora puoi procedere, sapendo che cercare la @ non è il criterio unico... nè tanto meno considerare come DELIMITATORI di indirizzo il Char(Space) prima e dopo...
    In sostanza è sempre un problema mettere le pezze a posteriori, tuttavia io fossi in te scriverei una Funzione di Parsing intelligente che restituisca un dato di indirizzo il meno affetto da possibili errori...
  • Re: Estrazione indirizzo e-mail da campo database

    @Alex ha scritto:


    Direi di no... perchè in base a quello che hai pensato. la tua prima riga di esempio già ti metterebbe in crisi...:
    
    E-mail: prova.prova@libero.it <mailto:prova.prova@libero.it>
    Questo infatti contiene 2 @... qual'è la buona...?
    Oltretutto se analizzi la 2° parte, [<mailto:>] contiene una chiocciola... ma se applichi il criterio dello spazio... sei fregato... così come lo sei se alla fine non c'è lo spazio... e mi pare siano i 2 esempi successivi...

    Quinsi se la consistenza dei tuoi dati è tale da rendere funzionale il criterio che dici... allora puoi procedere, sapendo che cercare la @ non è il criterio unico... nè tanto meno considerare come DELIMITATORI di indirizzo il Char(Space) prima e dopo...
    In sostanza è sempre un problema mettere le pezze a posteriori, tuttavia io fossi in te scriverei una Funzione di Parsing intelligente che restituisca un dato di indirizzo il meno affetto da possibili errori...
    La riga che contiene due e-mail, praticamente è sempre la stessa e-mail, ripetuta due volte, quindi basterebbe cercarla solo una.
  • Re: Estrazione indirizzo e-mail da campo database

    Vista la mia ignoranza sono ad un punto fermo
  • Re: Estrazione indirizzo e-mail da campo database

    Taluccio ha scritto:


    ...
    La riga che contiene due e-mail, praticamente è sempre la stessa e-mail, ripetuta due volte, quindi basterebbe cercarla solo una.
    Si lo intuivo... ma Access è estremamente supido e questo ragionamento non lo fa... anzi, Access fa proprio il ragionamento che tu gli scrivi... e tutte le varianti che ti ho esposto devono far parte delle istruziuoni di controllo condizionanti da scrivere per istruire Access...
    Se tuttavia non hai alcuna esperienza, credo sia un poco complicato...
  • Re: Estrazione indirizzo e-mail da campo database

    La parte iniaziale del valore del campo1 è sempre:

    E-mail: o Indirizzo e-mail: o E-MAIL ?
  • Re: Estrazione indirizzo e-mail da campo database

    CarlettoFed ha scritto:


    La parte iniaziale del valore del campo1 è sempre:

    E-mail: o Indirizzo e-mail: o E-MAIL ?
    Sempre!
  • Re: Estrazione indirizzo e-mail da campo database

    Taluccio ha scritto:


    Sempre!
    Allora usa la funzione Replace :
    1. Sostituisci tutte le ricorrenze che non c'entrano, con una stringa vuota
    2. poi 'prendi' solo la stringa iniziale fino allo spazio (se c'è) ed eliminando tutto quello che segue
  • Re: Estrazione indirizzo e-mail da campo database

    Ma è un problema Acess o Excel

    http://www.excelvba.it/Forum/thread.php?f=1&t=1245

    ?
  • Re: Estrazione indirizzo e-mail da campo database

    Se è vero che i valori nel Campo1 possono essere solo i tre tipi da te presentati e premesso che la tabella contenente il Campo1 l'ho chiamata tblEmail basta che, se già non ce ne è uno crei un Modulo, poi in esso inserisci la seguente funzione
    
    Public Function EstraiEmail(strCampo As String) As String
        If Left(strCampo, 7) = "E-mail:" Then
            Dim intPosRic As Integer
            intPosRic = InStr(Mid(strCampo, 9), " ")
            EstraiEmail = Mid(strCampo, 9, intPosRic - 1)
        ElseIf Left(strCampo, 17) = "Indirizzo e-mail:" Then
            EstraiEmail = Mid(strCampo, 19)
        ElseIf Left(strCampo, 6) = "E-MAIL" Then
            EstraiEmail = Mid(strCampo, 8)
        End If
    End Function
    


    dopodichè crei una query, che io ho chiamato qEmail dove inserisci nell' Sql la segente istruzione
    
    SELECT EstraiEmail([Campo1]) AS Email FROM tblEmail;
    
    quando esegui la query avrai come risultato il solo indirizzo email.
Devi accedere o registrarti per scrivere nel forum
9 risposte