Case con not Like

di il
4 risposte

Case con not Like

Vorrei usare Select Case con non Like, quindi ho scritto:

Select Case True

Case Tipo Like "*pippo*"
XXX
end select
e funziona
ma se scrivo:

Select Case True

Case Tipo Like "*pippo*"
XXX
Case Tipo not Like "*pluto*"
yyy

end select
Non va, avendo diverse condizioni non posso usare else case, dove sbaglio?

4 Risposte

  • Re: Case con not Like

    Quello che chiedi ha una LOGICA assurda, è un errore sostanziale.

    Il confronto ha 2 Opzioni:
    1° Like "*pippo*"
    2° NOT Like "*pippo*" (in questa seconda che equivale ad ELSE, rientrano tutte le altre opzioni e tutti gli altri CASE)

    Il Select case usato come lo hai usato tu, richiede che i vari CASE abbiano una sequenza estremamente ben definita... quindi, posta eventualmente come lo hai costruito, ma probabilmente nel tuo caso NON SERVE nemmeno prevedere il NOT LIKE..., oppure lo prevedi in modo IMPLICITO come ELSE alla fine...
    
    SELEC CASE TRUE
       Case Like "*pippo*"
        .....
       Case 2° Criterio
        .....
       Case 3° Criterio
        .....
       Case Else
        ..... ' quì metti quanto avresti messo nel NOT LIKE
    END SELECT
  • Re: Case con not Like

    Ho risolto cosi:
    
    Case Like "A1*"
    
    XXX
    Exit function
    
    Case Like "A2*"
    
    XXx
    Exit function
    
    Case Like "B1*"
    
    XXX
    Exit function
    
    Case Like "B2*"
    
    XXX
    Exit function
    
    Case Like "A*"
    
    XXX
    Exit function
    
    Case Like "B*"
    
  • Re: Case con not Like

    Serve ripetere EXIT FUNCTION sempre...?
    Il SELECT CASE, appena trova 1 CASE non valuta gli altri..., quindi puoi ometterli ed inserire un ExitFunction, sempre serva, alla fine...
  • Re: Case con not Like

    Si, perche se una delle condizioni è vera deve uscire dalla function, se nessuna è vera allora si avvia una procedura guidata per la ricodifica. Volendo posso spostare il pezzo di codice dalla ricodifica in una function a parte e richiamarla con case else, non so se mi conviene pero... in termini di prestazioni non cambierebbe nulla suppongo
Devi accedere o registrarti per scrivere nel forum
4 risposte