Condizione su inserimento di un valore

di il
4 risposte

Condizione su inserimento di un valore

Buongiorno,
premetto che uso access da poco tempo e mi scuso in anticipo se risulterò poco chiaro nella mia richiesta.
Vorrei chiedere qualche suggerimento riguardo a come procedere per inserire una condizione sull'inserimento di un valore in una casella di testo di una maschera.
Mi spiego meglio, ho una maschera che uso per inserire nuovi progetti nella tabella progetti, per ogni progetto che inserisco devo selezionare un finanziamento a cui fa riferimento (quindi posso mettere più progetti sotto lo stesso finanziamento).
Oltre ai campi NomeProgetto DescrizioneProgetto e la casella combinata da cui seleziono il finanziamento a cui lo voglio associare, c'è la casella di testo del budget del progetto e qui c'è la mia difficoltà ovvero, vorrei che quando inserisco il valore del budget mi ritorni un errore se: il valore inserito più eventuali altri budget di altri progetti associati allo stesso finanziamento superano il valore totale del finanziamento.
Ho provato in vari modi, tutti piuttosto fallimentari anche perchè non so bene dove è meglio impostarla questa condizione se devo generare una espressione nel campo Valido Se delle proprietà della casella o devo generare un evento ad esempio dopo l'aggiornamento di quest'ultima.
Grazie in anticipo

4 Risposte

  • Re: Condizione su inserimento di un valore

    Potresti fornire più dettagli circa lo scenario tabelle? Ossia:
    - nomi propri di tutte le tabelle (almeno quelle coinvolte nel problema)
    - i nomi propri di tutti i campi di ogni tabella, con indicazione della chiave primaria
    - le relazioni
    - poi rispiega il problema indicando esattamente i nomi propri degli "oggetti malati"
  • Re: Condizione su inserimento di un valore

    Quando dici "ho provato in tutti i modi..." cosa intendi... dicci cosa hai provato a fare e come magari ci aiuta...

    Questa frase mi preoccupa
    
    il valore inserito più eventuali altri budget di altri progetti associati allo stesso finanziamento superano il valore totale del finanziamento.
    Tutto molto VAGO... altri progetti e altri Budget...
    Tu sai che Access è un elemento STUPIDO e non dotato di veggenza, quindi quando tu dici "ALTRI" se vuoi che lui sappia cosa e come calcolare la somma di quegli altri... lo devi istruire tu...!

    Come hai fatto quindi nei tuoi tentativi a dirgli di effettuare il Calcolo della Somma di quegli "ALTRI"... per confrontarlo con il TOTALE_FINANZIAMENTO... perchè va da se che se la differenza è Negativa hai sforato...!

    Non rispondere che il problema è questo, perchè la somma degli "ALTRI" dipende da come hai strutturato il tuo lavoro... e devi poterla calcolare sempre conoscendo la struttura... quindi su DOPO AGGIORNAMENTO della combo del FINANZIAMENTO, ricavi la somma degli altri e la confronti con il FINANZIAMENTO...!
  • Re: Condizione su inserimento di un valore

    Allora, le tabelle coinvolte sono:
    tbl_progetto con ID_progetto(chiave primaria), Progetto, descrizione progetto, budget, ID_fin (fk)
    tbl_Fin con ID_Fin(pk), Finanziamento, Anno, Note, ImportoComplessivo

    la maschera msk_progetto ha come origine record tbl_progetto poi ha delle caselle di testo per l'inserimento del nome_progetto, descrizione_progetto, ID_progetto(automatica) e budget_progetto in più ha una casella combinata che che attraverso una query su tbl_Fin (dove prendo ID_fin e Finanziamento) mi fa scegliere il finanziamento.

    Quindi io devo fare in modo che inserito il budget_progetto mi torni un errore se l'importo è superiore all'importo del finanziamento selezionato rimasto, ovvero tolti altri possibili progetti associati a quello.

    Io ho creato una query dove ho finanziamento, la somma dei budget_progetti associati, l'importo complessivo del finanziamento e un campo calcolato che mi fa importoFinanziamento - budget_progetti:
    SELECT tbl_Fin.Finanziamento, Sum(tbl_Progetto.Budget) AS SommaBudgetPerFinanziamento, tbl_Fin.ImportoComplessivoIVA, [ImportoComplessivoIVA]-[SommaBudgetPerFinanziamento] AS BudgetRimanente
    FROM tbl_Progetto INNER JOIN tbl_Fin ON tbl_Progetto.ID_Fin = tbl_Fin.ID_Fin
    GROUP BY tbl_Fin.Finanziamento, tbl_Fin.ImportoComplessivoIVA;


    e pensavo appunto di usare quest'ultima colonna calcolata per confronto con il budget inserito nella maschera, solo che non so come richiamare quel campo li nella casella budget nella maschera e in più credo che questo non basti perchè di quella query li mi interessa solo il BudgetRimanente del finanziamento che ho scelto con la casella combinata nella maschera.
    Spero di essere stato più chiaro.
    Grazie delle risposte comunque
  • Re: Condizione su inserimento di un valore

    Non sei stato più chiaro... ma è chiaro che forse commetti un errore tecnico concettuale.
    I dati che devi trattare non sono quelli nelle Maschere, ma quelli nelle Tabelle e nelle query conseguenti...!
    Quindi la selezione del finanziamento, che viene memorizzata, non ha importanza che nella Maschera sia in una TextBox o in una Combo... essendo un Campo di Tabella associato...!

    Ne consegue che devi ragionare a livello di DATI... usando Query, ed inserendo nella Query la Tabella Finaziamenti che sarà collegata alla tua Tabella Budget tramite la Chiave Primaria/ChiaveEsterna potrai recuperare il dato...
Devi accedere o registrarti per scrivere nel forum
4 risposte