Problema campo calcolato report

di fabionik2004 il
13 risposte

Ciao A tutti, 

su un report ho un campo calcolato che sul mio PC funziona bene, mentre sul pc di un mio collega francofono da problemi.

Non riesco a capire Il problema

Mettiamo che abbia 2 campi 

VpCHpercet con valore 1

VpChCHF (vuoto) 

=IIf([VpCHPercent] Or [VpCHCHF];(IIf([VpCHPercent];[VpCHPercent] & " %";[VpCHCHF] & " CHF"));"%")

A me questa stringa da come risultato 1 %

sul PC del mio collega da solo %

Ho provato a correggere cosi

=IIf((Len([VpCHPercent])>0) AND (len([VpCHCHF])>0);(IIf((Len([VpCHPercent])>0);[VpCHPercent] & " %";[VpCHCHF] & " CHF")));"%")

a me da acora 1%

al mio collega invece da CHF

 Riuscite  a capire dove sia il problema?

Grazie!

13 Risposte

  • Usando una TextBox come controllo, si usa la Funzione FormatPercent:

    Function FormatPercent(Expression, [NumDigitsAfterDecimal As Long = -1], [IncludeLeadingDigit As VbTriState = vbUseDefault], [UseParensForNegativeNumbers As VbTriState = vbUseDefault], [GroupDigits As VbTriState = vbUseDefault]) As String
        Membro di VBA.Strings

    Modifichi l'Origine Controllo con:

    =FormatPercent([NomeCampo];0)
  • Grazie appena ho un attimo provo.

    Ma come mai sul mio pc funziona e su quello del collega no?

  • Di che tipo sono i campi [VpCHpercet] e [VpChCHF]?

  • Mi dispiace ma non ho idee…

  • 25/09/2023 - fabionik2004 ha scritto:


    su un report ho un campo calcolato che sul mio PC funziona bene, mentre sul pc di un mio collega francofono da problemi.

    Il tuo collega cioè ha Access in francese? Anche il sistema operativo è in francese?

  • 26/09/2023 - Philcattivocarattere ha scritto:


    25/09/2023 - fabionik2004 ha scritto:


    su un report ho un campo calcolato che sul mio PC funziona bene, mentre sul pc di un mio collega francofono da problemi.

    Il tuo collega cioè ha Access in francese? Anche il sistema operativo è in francese?

    Si esatto. Tutto in francese.

    Infatti ho provato ha dare un occhiata al suo pc e tipo iif viene tradotto in vraifaux

  • 26/09/2023 - fabionik2004 ha scritto:


    iif viene tradotto in vraifaux

    E magari è giusto che sia così. Non che tutti i problemi di Access siano bug ma anch'io ho avuto problemi con l'origine dati di una textbox in un report. Prova a seguire le indicazioni di questo thread per vedere se magari anche Access in francese in un certo modo ha qualche difetto in fase di “traduzione”.

    https://www.iprogrammatori.it/forum-programmazione/access/errore-sharpname-in-textbox-report-principale-con-riferimento-a-sottorep-t52198.html

    Lì trovi la spiegazione dettagliata di come ho scoperto l'origine del problema (ma non è detto che sia la stessa tua). Magari i workaround validi per quel difetto possono aiutare anche te, o meglio il tuo collega con Access in francese. Non cercare i file che avevo messo a disposizione, non ci sono più e nel tuo caso specifico non servono, devi solo ripetere pari pari le operazioni che ho illustrato.

    Per completezza: Access “del francese” è aggiornato? Nel 2022 avevano corretto alcuni difetti proprio nella traduzione 

    https://answers.microsoft.com/it-it/msoffice/forum/all/errore-nel-salvataggio-dellorigine-dati-di-una/7550826b-5c2c-44d8-9f5d-e2fc8fb7ca1d

    O magari è tutta un'altra cosa e allora non so che dirti. So solo che quella grana, confermata da Microsoft, è stata un tarlo in testa dal 2015 principalmente per curiosità che per reale necessità, quindi posso capirti.

  • 25/09/2023 - fabionik2004 ha scritto:


    VpCHpercet con valore 1

    VpChCHF (vuoto) 

    =IIf([VpCHPercent] Or [VpCHCHF];(IIf([VpCHPercent];[VpCHPercent] & " %";[VpCHCHF] & " CHF"));"%")

    A me questa stringa da come risultato 1 %

    Windows10 x64 ed Access 365 32bit, entrambi in francese, installazione base: a me dà lo stesso risultato tuo, non come dal tuo collega francofono. Se indichi la versione di Access si può provare ad andare più mirati.

  • Dunque, grazie per i vostri consigli. 

    Dando un'occhiata ad uno dei link inviati da Philcattivocarattere ho deciso di eliminare il  codice nelle proprietà del campo calcolato, e di calcolarlo all'apertura del report con codice VBA. 

    Questa mattina ho potuto testare sul PC del collega e funziona.

    Il mistero rimane irrisolto, ma almeno ho risolto il problema.

    Per info la versione di access é   Versione 2308 Build 16.0.16731.20182) a 64 bit

  • Per info la versione di access é   Versione 2308 Build 16.0.16731.20182) a 64 bit

    Ok, ma Access 2016/2019/2021/365?

  • 365

  • Su Win1064bit e Access365 versione 2308 build 16.0.16731.20182 64 bit, installati appositamente su VM, a me questo codice

    =IIf([VpCHPercent] Or [VpCHCHF];(IIf([VpCHPercent];[VpCHPercent] & " %";[VpCHCHF] & " CHF"));"%")

    funziona, dà 1%.

    Questa 

    =IIf((Len([VpCHPercent])>0) AND (len([VpCHCHF])>0);(IIf((Len([VpCHPercent])>0);[VpCHPercent] & " %";[VpCHCHF] & " CHF")));"%")

    va in errore, non c'è la corrispondenza giusta tra parentesi aperte/chiuse e il numero delle “parti” della IIf (condizione; parte vera; parte falsa)

Devi accedere o registrarti per scrivere nel forum
13 risposte