+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 8 su 8

Discussione: sintassi apici singoli e doppi

  1. #1
    Rinaldino23 non è in linea Scolaretto
    Post
    227

    sintassi apici singoli e doppi

    Buonasera a tutti, ho un problema con questo banale If, penso dovuto al fatto che in quel campo ci sono caratteri e quindi dovrei gestire meglio gli apici singoli. potreste mettermi sulla retta via dandomi qualche guida per imparare le sintassi basilari di questi campi, grazie mille


    codice:
    If Me.TipoFattura <> "'saldo'" Then
        MsgBox "non è una fattura di saldo"
        Exit Sub
    End If

  2. #2
    L'avatar di muttley005
    muttley005 non è in linea Scribacchino
    Post
    1,926
    immagino che me.tipofattura sia un listbox e che tu abbia popolato manualmente o da tabella il suo elenco di valori giusto?
    domanda ... perchè usi sia i doppi che i singoli apici? nel listbox hai per caso il valore SALDO racchiuso tra singoli apici?!
    (poi normalmente si usano codici e non decodifiche in caso tu voglia come penso registrare questa informazione)

  3. #3
    Rinaldino23 non è in linea Scolaretto
    Post
    227
    avevo usato i singoli apici oltre ai doppi come ulteriore prova, il primo codice era questo:
    codice:
    If Me.TipoFattura <> "saldo" Then
        MsgBox "non è una fattura di saldo"
        Exit Sub
    End If
    ma non funzionava, o meglio si verificava l'If anche se il valore era "saldo"

    con decodifica intendi che ho direttamente scritto saldo e non ho creato un codice per quel valore? se così fosse è perchè ci sono solo due valori e quindi mi sembrava esagerato creare una tabella. sbaglio?

    grazie
    Ultima modifica di Rinaldino23; 13-08-2019 18:22 

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Prima di confrontare un dato con un'altro... devi sapere che valore assume quel dato dal momento che l'altro è una COSTANTE...!!!!
    Perchè non hai fatto un DEBUG.Print prima dell'IF... ...???????
    codice:
    Debug.Print Me.TipoFattura
    La butto li... quel controllo è una COMBOBOX che ha come origine una Tabella con i TIPI di Fattura quindi ha 2 COLONNE di cui la prima è Numerica a larghezza=0 quindi il valore restituito dal Me.TipoFattura è un NUMERO...!
    Te ne accorgi se fai come ho detto....

    P.S. la questione degli APICI e DOPPI APICI non ha assolutamente alcun senso tecnico, la formattazione del Testo è richiesta dal MOTORE del Database NON DAL VBA...!!!!!
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    Rinaldino23 non è in linea Scolaretto
    Post
    227
    non ho creato un tabella ma un semplice elenco valori a quella combo box perchè avrei avuto una tabella con solo due righe "saldo" e "acconto", dato che mi sono trovato altre volte in questa situazione nel database, tu consigli di creare tabelle anche quando ho così pochi valori? (domanda retorica dato quello che hai scritto) ma è solo per essere sicuro prima di creare alcune tabelle.

    ho fatto il debug.print e il valore che assume è "acconto" quindi diverso da "saldo" di conseguenza mi aspetto che mi appaia l'errore del msgbox e così è, però se inserisco saldo e faccio di nuovo il debug.print mi assume correttamente il valore saldo, tuttavia compare anche il msg box che invece non dovrebbe apparire
    Ultima modifica di Rinaldino23; 13-08-2019 18:47 

  6. #6
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Non è possibile... stai ncommettendo qualche errore banale di cui non ti accorgi.
    La questione Tabella non è obbligo... ma uno strumento di flessibilità.
    Sappi che usare valori testuali... Non è proprio una idea BRILLANTE... se domani devi cambiare il testo...?
    Se domani devi fare applicazioni Multilingua...?
    Insomma la.strategia tecnica di PK o Indici numerici ha un suo motivo di essere..
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  7. #7
    Rinaldino23 non è in linea Scolaretto
    Post
    227
    trovato lo stupido errore:

    il vba non è case sensitive, ma in questo caso riferendomi ad un valore specifico si.. era "Saldo" e non "saldo"
    Ultima modifica di Rinaldino23; 14-08-2019 01:13 

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,091
    Dipende...
    Prova a leggere in merito alla definizione nel Modulo VBA di [Option Compare Text] invece di [Option Compare Database].
    Altrimenti puoi sempre usare
    codice:
    If StrComp(String2Compare, StringTarghet, vbTextCompare) = 0 Then
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi