Rimuovere hyperlink da stringa di testo

di il
6 risposte

Rimuovere hyperlink da stringa di testo

Buongiorno,

ho alcuni campi che contengono delle  stringhe di collegamento a files o cartelle di rete. Alcune di queste stringhe hanno anche il collegamento ipertestuale e vorrei eliminarlo, mantenendo solamente la stringa di collegamento.

I campi sono impostati come Collegamento Ipertestuale e li vado a compilare nelle forms usando il FilePicker o il FolderPicker, il problema l'ho riscontrato solo su vecchi records importati da altro db (i piu' recenti inseriti con il metodo indicato non hanno il collegamento ipertestuale).

C'e' un metodo in VBA o con una query di aggiornamento per poterlo fare massivamente? 

Grazie in anticipo

6 Risposte

  • Re: Rimuovere hyperlink da stringa di testo

    Quì trovi un po di spiegazioni:

    http://www.allenbrowne.com/casu-09.html

    Per rimuovere il campo HyperLink conviene creare un Nuovo Campo di tipo Testo, ed eseguire una Query UPDATE che strippa dal contenuto del campo HyperLink, la parte dei Caratteri #...# ed eventuali Label... e scrive nel campo testo il contenuto Netto del Percorso. 

  • Re: Rimuovere hyperlink da stringa di testo

    Perfetto, grazie @Alex come sempre un fonte inesauribile di conoscenza.

    A beneficio di che ne avesse bisogno, riporto di seguito la soluzione adottata seguendo il tuo suggerimento: ho creato un nuovo campo memo in tabella (non sia mai che il percorso e' piu' lungo di 255 caratteri),  poi con una query UPDATE ho inserito la seguente funzione che taglia il percorso fra gli hastag dell'HyperLink :

    Mid$([myHyperlink];(InStr(1;[myHyperlink];"#")+1);(InStr((InStr(1;[myHyperlink];"#")+1);[myHyperlink];"#"))-(InStr(1;[myHyperlink];"#")+1))

    Ho poi aggiornato il campo Hyperlink con i nuovi valori ottenendo il risultato voluto.

    Grazie

    P.S. La funzione e' presa da un Tuo post, l'ho adattata alle mie esigenze 

    https://www.iprogrammatori.it/forum-programmazione/access/access-2007-estrarre-parte-una-stringa-t24183.html

  • Re: Rimuovere hyperlink da stringa di testo

    Ciao,

    volendo potrebbe essere ancora più semplice e intuitivo...

    UPDATE YourTable SET myHyperlink= HyperlinkPart([myHyperlink], 2) WHERE myHyperlinkIS NOT NULL AND myHyperlink <> "";

    Dove HyperlinkPart([myHyperlink], 2)  restituisce l'indirizzo (address), con parametro = 2, del collegamento ipertestuale 
    altrimenti HyperlinkPart può restituire:

    NameValueDescription
    acAddress2The address part of a Hyperlink field.
    acDisplayedValue0The underlined text displayed in a hyperlink.
    acDisplayText1The displaytext part of a Hyperlink field.
    acFullAddress5The address and subaddress parts of a Hyperlink field, delimited by a "#" character.
    acScreenTip4The tooltip part of a Hyperlink field.
    acSubAddress3The subaddress part of a Hyperlink field.


    e nella where condition un minimo di controllo che non sia null o vuoto (i controlli sono sempre utili e necessari)

    Vedere:
    https://learn.microsoft.com/en-us/office/vba/api/access.application.hyperlinkpart
    https://learn.microsoft.com/en-us/office/vba/api/access.achyperlinkpart

  • Re: Rimuovere hyperlink da stringa di testo

    Grazie Franco,

    gentilissimo come sempre.

  • Re: Rimuovere hyperlink da stringa di testo

    23/04/2025 - By65Franco ha scritto:

    Ciao,

    volendo potrebbe essere ancora più semplice e intuitivo...

    UPDATE YourTable SET myHyperlink= HyperlinkPart([myHyperlink], 2) WHERE myHyperlinkIS NOT NULL AND myHyperlink <> "";

    Dove HyperlinkPart([myHyperlink], 2)  restituisce l'indirizzo (address), con parametro = 2, del collegamento ipertestuale 
    ....

    Bella Franco non la conoscevo, credo sia di relativa recente introduzione, ottimo riferimento, ho scoperto anche la funzione PlainText che non era implementata fino a qualche periodo fa... e chissà quante me ne sono scappate...

  • Re: Rimuovere hyperlink da stringa di testo

    24/04/2025 - @Alex ha scritto:

    ho scoperto anche la funzione PlainText che non era implementata fino a qualche periodo fa... e chissà quante me ne sono scappate...

    Pure io @Alex ne ho perse tante tante tante ... poi non lavorandoci più in MsAccess ho solo ricordi e soprattutto un certo salto di qualità lo feci solo quando anni fa ebbi l'onore e il piacere di conoscerti. 

    Su quelle basi oggi mi diverto a trovare soluzioni e tecniche (anche nuove, se riesco) e leggervi è sempre interessante e di notevole stimolo.

    La PlanitText https://learn.microsoft.com/en-us/office/vba/api/access.application.plaintext la conosco solo adesso ed è veramente molto interessante.
    In pratica quando vai a trattare delle stringhe che contengono delle formattazioni, in un battibaleno puoi ottenere una stringa ripulita e pronta per essere confrontata con altre.
    Veramente Forte !!!

Devi accedere o registrarti per scrivere nel forum
6 risposte