Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    65

    [VBA/ACCESS]Comparazione stringhe ed eliminazione di una parte uguale della stringa

    In una maschera access ho una casella testo chiamata "codice". I valori di questa casella possono essere per es: "AB, CD, EF" oppure "CD, EF" oppure "AB, CD"
    Vorrei che se la stringa "CD" fosse trovata in "codice", questa parte scomparisse dalla stringa "codice" insieme alla virgola e allo spazio (che però possono trovarsi prima o dopo a seconda che la stringa "CD" capiti all'inizio o alla fine della stringa "codice").

    Ho pensato di fare come segue ma oltre a non essere corretto il confronto, non so come inserire il valore di "codice" una volta eliminata la stringa "CD"
    If InStr(Mid(codice.Value, "CD", 2), codice.Value, "CD", vbTextCompare) = 1 Then codice.Value = ??


    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Una soluzione ai casi che hai evidenziato potrebbe essere questa:

    codice:
        If Left(a, 2) = "CD" Then 'caso di a = "CD, EF"
            a = Mid(b, 5)
        ElseIf Right(a, 2) = "CD" Then 'caso di a = "AB, CD"
            a = Mid(a, 1, Len(a) - 4)
        Else
            X = InStr(1, a, "CD") 'caso di a = "AB, CD, EF"
            If X > 0 Then
                a = Mid(a, 1, X - 2) & Mid(a, X + 4)
            End If
        End If
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    65
    Funziona grazie.

    Però ho dimenticato il caso in cui a="CD"

  4. #4
    Solo per dovere di informazione:

    Occorre specificare che questo codice funziona solo se la coppia "CD" è presente 1 sola volta nella stringa; al contrario se è presente più volte viene eliminata solo la prima coppia a partire da sinistra.

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Per km5000
    Se trova solo CD cosa deve fare? Eliminarlo o lasciarlo?

    Per MdE2005, forse non hai letto bene ma ho specificato:
    Una soluzione ai casi che hai evidenziato potrebbe essere questa
    Solo per dovere di informazione!

  6. #6
    Hai ragione..non l'avevo letto. Mi premeva soltanto che l'utente si accorgesse di tale limite, per il resto tutto ok..

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    65
    OOOOOOPS

    "CD" se rimane devo eliminarlo ...

    La stringa comunque presenta un solo elemento per coppia di caratteri, grazie

  8. #8
    Meglio così, almeno il codice è più semplice..

    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Ti posto il codice variato, io ho considerato a = "CD", se invece a = "CD," il len deve essere = 3:


    codice:
        If Left(a, 2) = "CD" Then 'a = "CD, EF" oppure a = CD
            If Len(a) = 2 Then
                a = ""
            Else
                a = Mid(a, 5)
            End If
        ElseIf Right(a, 2) = "CD" Then 'a = "AB, CD"
            a = Mid(a, 1, Len(a) - 4)
        Else
            X = InStr(1, a, "CD") 'a = "AB, CD, EF"
            If X > 0 Then
                a = Mid(a, 1, X - 2) & Mid(a, X + 4)
            End If
        End If
    Ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    65
    grazie per l'aiuto
    ciao

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.