Visualizzazione formato campo numerico in maschera di inserimento dati

di il
79 risposte

79 Risposte - Pagina 5

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    15/07/2023 - BarLudwig ha scritto:


    Caro Franco ti ringrazio e procedo come da indicazioni

    Quando hai fatto l'import nelle due tabelle, dovrai fare dei controlli per validare che tutto sia a posto.

    Per esempio puoi fare due query per controllare in automatico se tutti i ValoriAggregati sono stati riportati e in modo corretto:

    Con una prima query devi ottenere un elenco dei campi presenti nelle due tabelle Header e Rows

     

    La salvi con nome Qry_TestImport01


    poi crei una seconda query per confrontare i valori riportati dalla vecchia tabella su quelle nuove:

    Esegui questa seconda Query di nome Qey_TestImport02 e se non presenta nessun record allora vuol dire che tutti i records sono stati importati e con i valori giusti in ValoreAggragati


    Fai la stessa cosa per controllare qualsiasi altro valore che dalla vecchia tabella sono stati riporti sulle due nuove tabelle.

    e così via dicendo… i numeri di records che dovevano essere importati , etc etc etc 

    Tieni conto che è più facile scrivere un po' di codice Vba che fare i Test dovuti per validare quanto realizzato.

    Ok ?

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    Ok procedo con le query 

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    15/07/2023 - BarLudwig ha scritto:


    Caro Franco

    ha funzionato tutto alla perfezione. Le tabelle sono a posto e ora procedo con la maschera e la sottomaschera e contemporaneamente mi metto a studiare.

    Non ho parole per ringraziarti, buon fine settimana !!!!!!

    OK … certo che funziona, di questo non avevo assolutamente dubbi… qui non siamo mica a pettinare i criceti ;-))  (scherzoooo)

    Prima di andare oltre fai i controlli come ti ho indicato sopra , così ti esercitati cercando di studiare con quali sistemi e modalità poter controllare e validare tutti i dati che hai trattato.  E' molto importante saper testsare un applicazione, è un lavoro molto più oneroso che creare un App

    Buon Week anche a te 

    The End

    ;-) 

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    Buonasera Franco

    ho fatto tutti i controlli che mi hai indicato e funziona tutto.

    Ho avuto difficoltà esclusivamente con l'istruzione di caricamento della maschera Header

    Private Sub Form_Current()
    'set subform rows
    Me.subfrmAggregatiAnnualiRows.Visible = Me.ApprovazBilancio
    End Sub

    perchè ricevevo l'errore 94 “Utilizzo non valido di Null”, probabilmente perchè avevo settato a falso tutti i dati relativi all'approvazione del bilancio 2022.

    Ho cambiato l'espressione come segue e funziona, non so se sia un'inguacchio….

    Private Sub Form_Current()
    'set subform rows
    If IsNull(Me.ApprovazBilancio) Then
    Me.subfrmAggregatiAnnualiRows.Visible = False
    Else
    Me.subfrmAggregatiAnnualiRows.Visible = Me.ApprovazBilancio
    End If
    End Sub

    Sto studiando il comando SELECT @@IDENTITY" che hai utilizzato nella tua routine ma mi è solo vagamente chiaro.

    Grazie di tutto

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    17/07/2023 - BarLudwig ha scritto:


    perchè ricevevo l'errore 94 “Utilizzo non valido di Null”, probabilmente perchè avevo settato a falso tutti i dati relativi all'approvazione del bilancio 2022.

    Attenzione… se ti dice non ammesso valore Null non vuol dire che è impostato a False, ma vuol dire che è impostato a Null
    Per evitare che questo accada puoi agire in due modi.

    1. impostare valore di Default in struttura tabella e impostare “non ammessi valori Null”. Questo consente di inserire o modificare records sempre con un valore valido per il campo. In questo caso o True o False… ma non sarà mai Nul perchè access non lo consentirà mai, nè in in fase di immissione nè in aggiornamento del record.
    2. un altro modo è quello di controllare da codice l'immissione e/o aggiornamento dei records. Quindi si controllerà sempre che venga inserito un valore True oppure False, ma mai Null.

    Quindi ti conviene selezionare tutti i records che hanno un valore NUll e, anche con una query di aggiornamento, se = Null aggiornare in False


    17/07/2023 - BarLudwig ha scritto:


    Ho cambiato l'espressione come segue e funziona, non so se sia un'inguacchio….

    Private Sub Form_Current()
    'set subform rows
    If IsNull(Me.ApprovazBilancio) Then
    Me.subfrmAggregatiAnnualiRows.Visible = False
    Else
    Me.subfrmAggregatiAnnualiRows.Visible = Me.ApprovazBilancio
    End If
    End Sub

    Questa non va bene… (andrebbe bene solo se hai intenzione di permettere l'uso del valore Null per tale colonna)
    Come detto sopra correggere e controllare che il campo abbia sempre un valore valido.. o True oppure False

    Facendo in questo modo stai gestendo un valore Null che tale campo non deve assolutamente avere. Quindi il problema va risolto alla radice e non tamponare solo per andare avanti…. Capito cosa voglio dire?


    In pratica la DBEngine(0)(0) SELECT @@IDENTITY restituisce l'ultimo records inserito nel Database… (nota bene…non nella tabella ma nel Database su una qualsiasi delle tabelle in esso caricate e pertanto va utilizzato con criterio)
    Per Default ritorna il valore della prima colonna della tabella in cui è stato appena inserito un nuovo record.

    Per approfondire vedere il linguaggio Sql. @@IDENTITY (Transact-SQL) - SQL Server | Microsoft Learn

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    A inizio anno con una routine che esegue query di accodamento nella tabella Header dovrei inserire per ciascun acronimo un nuovo record contenente il valore del nuovo esercizio finanziario . 

    Fino al 31.12. dell'anno successivo il valore del campo ApprovazBilancio rimane nullo. Successivamente, quindi 12 mesi più tardi, si potrà stabilire se il bilancio va considerato approvato o meno. Durante questo periodo il valore del campo è nullo.

    Avrei anche una domanda banale: il campo in questione è di tipo S/N: se inserisco il flag il valore è Si; se non lo inserisco, a quanto ho potuto constatare, il valore viene assunto come nullo. Come si fa a inserire il valore No ?

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    17/07/2023 - BarLudwig ha scritto:


    Avrei anche una domanda banale: il campo in questione è di tipo S/N: se inserisco il flag il valore è Si; se non lo inserisco, a quanto ho potuto constatare, il valore viene assunto come nullo. Come si fa a inserire il valore No ?

    No dai, non va bene , stai snaturando le cose in questo modo e poi come vedi succede che avrai problemi nel poterlo gestire

    Quindi se hai bisogno di tre stati, il Boolean non fa al caso. Non si utilizza un Vero/Falso oppure un Si/No che prevedono solo due stati validi.

    Ma non capisco la necessità di avere 3 stati.

    1. Vero = Bilancio Approvato
    2. Falso = Bilancio da Approvare
    3. Null = a cosa deve corrispondere come stato questo valore Null, a cosa serve ? Non comprendo proprio l'utilità. O il Bilancio è approvato oppure non è approvato…. ma scusa tanto se mi permetto, quale fase intermedia ti vai ad inventare ? io non riesco a trovare un senso logico. Poi fai come meglio credi , ma secondo me è del tutto fuori luogo. 

    17/07/2023 - BarLudwig ha scritto:


    il campo in questione è di tipo S/N: se inserisco il flag il valore è Si; se non lo inserisco, a quanto ho potuto constatare, il valore viene assunto come nullo

    Errato!!! da penna blue ;-) …. se non è SI vuol dire che è NO…. se non è NO vuol dire che è SI….
    Quindi se è SI e togli la spunta, diventa NO e viceversa. Introduzione ai tipi di dati e alle proprietà dei campi - Supporto tecnico Microsoft

    Però non capisco perchè si continua a cambiare le carte in tavola… sei partito dicendo di avere un SI e un NO per indicare se un bilancio è approvato oppure no.. adesso scappa fuori una terza ipotesi oltre al Si e al NO.
    Così non va bene … mi fai vedere l'analisi di questo progetto cosa prevede ? … ma esiste un analisi del progetto ? 

    Scusa ma bisogna che chiamo fratac e mi faccia imprestare sto carro con i buoi perchè adesso te lo tiro dietro per davvero…. ;))  (scherzo)

    Ma scusa davvero, così è impossibile capire il progetto, la logica il fine e se ha un senso compiuto. E' impossibile in questo modo, non credi? 

    E poi vedi che ad ogni passo che fai in avanti ne fai 10 indietro e non riesci mai ad arrivare alla fine?
    Mi permetto di dirti queste cose a titolo di consiglio, poi ovviamente fai come meglio credi.

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    17/07/2023 - BarLudwig ha scritto:


    Fino al 31.12. dell'anno successivo il valore del campo ApprovazBilancio rimane nullo. Successivamente, quindi 12 mesi più tardi, si potrà stabilire se il bilancio va considerato approvato o meno. Durante questo periodo il valore del campo è nullo.

    Non gestire la visualizzazione subForm.Visible = True or False

    La subForm sarà sempre visibile sia che il bilancio è approvato oppure no…. quindi elimina dal codice quelle istruzioni che non servono più.

    Quando arriva il momento di approvarlo metti la spunta su ApprovazioneBilancio e basta.

    A questo punto puoi selezionare e visualizzare, con qualsiasi metodo e oggetto, quali sono i bilanci approvati e quelli non approvati.
    Per esempio su una SubForm o su una ComboBox puoi elencare i Bilanci da Approvare se ApprovazioneBilancio = False
    Oppure puoi elencare i Bilanci Approvati se ApprovazioneBilancio = True

    Che ne fai di un terzo stato ?  Stò Null a mio parere non serve prorpio a nulla… non a caso si chiama Null  ;))
    In più ti complichi solo la vita perchè per assegnare Null al Booleano puoi farlo solo da codice .. a meno che trovi il sistema nella form con il click del mouse o con la tastiera di fargli assumere il valore Null. 

    A mio avviso si stà parlando proprio del Null  (oppure … del nulla, mettila come vuoi)
    ma ripeto, fai come meglio credi ;-)
    Le mie non sono critiche ma solo consigli.

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    17/07/2023 - BarLudwig ha scritto

    67 risposte e ancora fermi con le 4 frecce…

    Dopo l'ultimo intervento e la risposta ricevuta circa il pane quotidiano sulla contabilità vilevo stare a guardare.

    All'ennesima incongruenza, sperando di chiarire le idee a chi sta tentando di sciogliere la matassa causata da una errata esposizione del problema, intervengo come interprete tra un programmatore ed un contabile caduto in confusione (do per certo che sai il fatto tuo in materia di bilancio).

    17/07/2023 - BarLudwig ha scritto:


    A inizio anno con una routine che esegue query di accodamento nella tabella Header dovrei inserire per ciascun acronimo un nuovo record contenente il valore del nuovo esercizio finanziario . 

    Fino al 31.12. dell'anno successivo il valore del campo ApprovazBilancio rimane nullo. Successivamente, quindi 12 mesi più tardi, si potrà stabilire se il bilancio va considerato approvato o meno. Durante questo periodo il valore del campo è nullo.

    17/07/2023 - BarLudwig ha scritto:


    A inizio anno con una routine che esegue query di accodamento nella tabella Header dovrei inserire per ciascun acronimo un nuovo record contenente il valore del nuovo esercizio finanziario . 

    Fino al 31.12. dell'anno successivo il valore del campo ApprovazBilancio rimane nullo. Successivamente, quindi 12 mesi più tardi, si potrà stabilire se il bilancio va considerato approvato o meno. Durante questo periodo il valore del campo è nullo.

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    8/07/2023 - sihsandrea ha scritto:


    A inizio anno con una routine che esegue query di accodamento nella tabella Header dovrei inserire per ciascun acronimo un nuovo record contenente il valore del nuovo esercizio finanziario . 

    Fino al 31.12. dell'anno successivo il valore del campo ApprovazBilancio rimane nullo. Successivamente, quindi 12 mesi più tardi, si potrà stabilire se il bilancio va considerato approvato o meno. Durante questo periodo il valore del campo è nullo.

    Confermo questa affermazione, che può sembrare una eresia a un contabile: ma il progetto che sto tentando di sviluppare non ha niente a che fare con la contabilità. Risponde ad un obbligo adempimentale imposto alle pubbliche amministrazioni dal c.d. TUSP e dalla normativa sulla trasparenza.

    18/07/2023 - By65Franco ha scritto:


    Che ne fai di un terzo stato ?  Stò Null a mio parere non serve prorpio a nulla… non a caso si chiama Null  ;))

    Il ragionamento che ho fatto è che solo dopo la scadenza del termine che la legge mi impone per trasmettere i dati alla piattaforma del Ministero Economia e Finanze posso stabilire se il bilancio è stato approvato o meno, non prima. Comunque mi riservo di riflettere meglio su questo punto.

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    Faccio un altro esempio.

    Chi esercita un'attività professionale deve pagare l'Irpef entro il mese di giugno. Solo dopo la scadenza del termine è possibile dire se l'imposta è stata pagata nei termini oppure no (Si/No) non prima. In questo senso ho pensato a un campo che potesse accogliere anche il valore Null nel periodo che precede la scadenza. Dopo la scadenza l'operatore potrà stabilire se l'imposta è stata versata nei termini e quindi attribuire al campo il valore Si oppure il valore No.

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    Non entro in merito e non vedo la differenza tra tenere False oppure no

    Ad ogni modo hai una possibilità semplicissima e strutturalmente validissima.
    Crea una Tabella StatusBilancio  con IdStsBil (Chiave Primaria) e un campo char StsBilDescr (descrizione status bilancio)
    Inserisci tutti gli elementi che vuoi:
    Esempio….

    1. Bilancio Approvato
    2. Bilancio non Approvato
    3. Bilancio da Approvare
    4. Bilancio non Approvabile
    5. Bilancio in Fase di Approvazione
    6. Bilancio Fasullo
    7. Bilancio Speram in Bene che non se ne accorga nessuno
    8. Bilancio Sbilanciato
    9. Bilancio con Falso in Bilancio
    10. Bilancio Approvato e Spedito
    11. Bilancio Approvato e da Spedire
    12. Bilancio da non spedire
    13. Bilancio in attesa di spedizione
    14. Bilancio Spedito ma non Arrivato
    15. Bilancio da Rispedire
    16. Bilancio Rispedito
    17. Bilancio da Revisionare
    18. Bilancio Revisionato
    19. Bilancio de stò..…. ops, questo non si può dire ;))
    20. Etc etc etc etc 

    Adesso prendi la tabella Header 

    1. Togli il Campo Approvazione Bilancio come Booleano
    2. Inserisci sotto forma di ComboBox l'Id della Tabella StatusBilancio come Colonna nascosta IdStsBil (e colonna associata = 1) e la seconda colonna come visualizzabile il campo StsBilDescr 

    Nella Form vai a sostituire il vecchio campo Booleano con la ComboBox di cui sopra.

    Fatto !!!

    E adesso hai tutti gli stati di Bilancio che vuoi, da 1 a quasi infinito  ;-))

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    18/07/2023 - BarLudwig ha scritto:


    Faccio un altro esempio.

    Chi esercita un'attività professionale deve pagare l'Irpef entro il mese di giugno. Solo dopo la scadenza del termine è possibile dire se l'imposta è stata pagata nei termini oppure no (Si/No) non prima. In questo senso ho pensato a un campo che potesse accogliere anche il valore Null nel periodo che precede la scadenza. Dopo la scadenza l'operatore potrà stabilire se l'imposta è stata versata nei termini e quindi attribuire al campo il valore Si oppure il valore No.

    Ultimo intervento…

    L'obbligo di presentazione bilancio è marzo… sulla carta!

    Quanto al fiscale, beh, esiste il ravvedimento, l'unico o sp integrativo o a rettifica…. Esistono anche le pendenze verso il fisco…. 

    Avrai un bilancio sempre e comunque al 31/12 e all'1/1 avrai debiti v/erario.

    Ma sono percorsi indipendenti. In bilancio puoi anche trovare i debiti v/erario ancora non liquidati.

    Ma qui si sposta la conversazione in un forum per commercialisti ed esperti contabili… 

    Per quanto riguarda la programmazione devi solo tenerne traccia. Basterebbe un file excell salvato su una cartella “bilanci ufficiali” suddivida per anni.

    Non confondere le idee a chi sta tentando di aiutarti. Metti solo una spunta approvato che ti evita la modifica accidentale del bilancio e lo lasci in archivio.

    Di questo passo aprirai un 3d per le scritture che portano alla formazione del bilancio…

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    18/07/2023 - sihsandrea ha scritto:


    Dopo l'ultimo intervento e la risposta ricevuta circa il pane quotidiano sulla contabilità vilevo stare a guardare.

    E ma adesso mi metto anch'io alla finestra a guardare… ho esaurito la pazienza ;-) 
    Non si può partire con una affermazione "ho bisogno di un campo SI/NO e poi in corso d'opera si cambia idea perchè mo' adesso ce vogliono il SI/NO/NI e poi magari fra un giorno o due si avrà bisogno di un SI/NO/NI/PUO'DARSI

    Esistono tante soluzioni “normali”… per esempio un gruppo di opzioni, opzioni radio, elenco valori,  etc etc etc … e si va a snaturare un campo Booleano… ma perchè ????

    Io normalmente mi incacchio quando il vba mi restituisce errore perchè salta fuori il valure Null di un oggetto/controllo/etc etc etc che non è ammesso…. Per me un valore Null nel 99% dei casi rappresenta una condizione di errore per valori non assegnati, per attributi errati, etc etc etc… ma per quale motivo lo devo considerare come un valore valido e soprattutto in un campo Booleano…. ma percheeeeeeèèèè   !!!!!????

  • Re: Visualizzazione formato campo numerico in maschera di inserimento dati

    18/07/2023 - By65Franco ha scritto:


    Esistono tante soluzioni “normali”… per esempio un gruppo di opzioni, opzioni radio, elenco valori,  etc etc etc … e si va a snaturare un campo Booleano… ma perchè ????

    Buongiorno Franco

    Lo snaturamento del campo è frutto esclusivamente della mia scarsa comprensione della natura di un campo booleano. Ora che mi hai spiegato approfonditamente come funziona questa tipologia di campo, valuto se percorrere l'ultima strada che mi hai suggerito e che, a parte l'ironia, mi sembra risolverebbe egregiamente il problema senza snaturare il campo booleano.

    18/07/2023 - BarLudwig ha scritto:


    Ad ogni modo hai una possibilità semplicissima e strutturalmente validissima.
    Crea una Tabella StatusBilancio  con IdStsBil (Chiave Primaria) e un campo char StsBilDescr (descrizione status bilancio)
    Inserisci tutti gli elementi che vuoi:

Devi accedere o registrarti per scrivere nel forum
79 risposte