Fare somma in una casella di testo

di
Anonimizzato10097
il
7 risposte

Fare somma in una casella di testo

Ciao, ho un problema per molti di voi banale sicuramente... mi spiego
In una tabella ho dei campi con i giorni della settimana (da lunedi alla domenica) ho fatto una maschera riportando una casella combinata che li richiama, dovendo inserire le ore di lavoro, vorrei che con un clck di un pulsante uscisse fuori in una casella di testo il totale delle ore inserite nei giorni della settimana.
Io ho provato con vb a fare questo ma non funziona:

Private Sub Comando4_Click()
Testo8.Text = Val(Lunedi.Text) + Val(Martedi.Text)
End Sub

dove sbaglio?

7 Risposte

  • Re: Fare somma in una casella di testo

    Non conosco il Visual Basic, ma vado a naso.
    La funzione Val restituisce un valore Numerico (nel vero senso della parola) oppure è un Testo (avente una sequenza di cifre)?
    Ma se anche è vera la prima, non è che è sbagliato impostare Testo8.Text? Testo8 deve essere un qualcosa che accolga solo valori numerici, altrimenti il + di somma che metti dopo non funziona.

    Chiedo immensamente scusa, se sbaglio in partenza anch'io essendo totalmente ignorante di Visual Basic.
  • Re: Fare somma in una casella di testo

    Inserendo i valori nei giorni della settimana vorrei che mi desse il totale

    Es. lunedi 25
    Martedi 10 ecc ecc

    Totale su click 35... non riesco a fargli fare questo alla text box
  • Re: Fare somma in una casella di testo

    Non voglio distruggere il tuo desiderio di costruire una corretta istruzione in Visual Basic, ma io proverei a fare così:
    1) Creare una query1 di selezione che prenda i valori (ore lavoro) associati ai giorni della settimana.
    2) Creare una query2, importando la query1 e cliccando sul tasto Totali, scegliere Somma.
    (Forse query 1 e query2 possono essere concepite in un'unica query, adesso non saprei!!!)
    3) Dalla tua maschera potresti creare un controllo-campo che guarda il risultato di query2. Se così diretto non ti piace, puoi sempre creare un pulsante al cui clic corrisponde tale visualizzazione.
  • Re: Fare somma in una casella di testo

    Mhhh interessante.... provo e ti faccio sapere! Grazie per il consiglio!
  • Re: Fare somma in una casella di testo

    Perdonami, unchiarimento:
    Nella maschera che hai, hai messo alcune o forse 7 (una x giorno), ComboBox (caselle a discesa) da cui selezioni il giorno (Lunedi, Martedi,...) - e accanto ad ognuna di esse hai una TextBox (casella testo), dove inserisci un numero (ore) e vorresti che alla pressione di un Pulsante (CommandButton), ti facesse la somma di queste ore e te lo inserisse in ulteriore textBox (casella testo) che avrebbe un'etichetta del tipo: 'Totale Ore' ?!
    E' così...?
    Saluti.
  • Re: Fare somma in una casella di testo

    Buona giornata Lucio;
    credo potresti provare ad inserire nella Tua maschera una casella di testo, poniamo [Totale], non indicizzata ad un origine controllo, con fomato ugule a quello dei campi in cui inserisci le ore, poniamo [Lunedì], [Martedì] ... [Sabato]. Ad ogni campo in cui vengono imputate le ore puoi creare un evento del tipo "Dopo aggiornamento" e impostare le seguenti routine in VBA:

    Private Sub Lunedì_AfterUpdate()
    [Totale]= [Lunedì]+[Martedì]+ ... +[Sabato]
    End Sub

    Private Sub Martedì_AfterUpdate()
    [Totale]= [Lunedì]+[Martedì]+ ... +[Sabato]
    End Sub
    ...

    Private Sub Sabato_AfterUpdate()
    [Totale]= [Lunedì]+[Martedì]+ ... +[Sabato]
    End Sub

    Credo che dopo ogni inserimenti delle ore nei campi [Lunedì] ... [Sabato] il valore della casella di testo [Totale], verrebbe aggiornato automaticamente.

    In alternativa puoi creare, nella tabella esistente, un ulteriore campo [Totale] con lo stesso formato dei campi ore; e poi seguire il concetto precedente espresso ma, naturalmente, con il campo [Totale] indicizzato all'origine controllo [Totale]. Questo Ti permetterebbe di gestire più adeguatamente eventuali Query e/o Report che intendi utilizzare.

    Cordiali saluti e buon lavoro.

    A disposizione.

    Giuseppe Guernieri
  • Re: Fare somma in una casella di testo

    In quello che chiedi ci sono molti concetti discutibili ed anche un'errore tecnico.
    Con Access non si usa MAI la proprietà TEXT a meno che il Controllo non abbia il focus, quindi sono pochi gli eventi sui quali gestire la proprietà TEXT e non è il tuo caso.

    Per concetti discutibili invece non capisco perchè hai N campi quanti sono i GG della settimana... la cosa è DENORMALIZZATA e cocnettualmente errata.
    Per sommare le Ore lavorate in una settimana, basterebbe registrare le ore con la Data, ed effettuare la Somma usando il Numero di Settimana come AGGREGANTE.

    A prescindere dai suggerimenti che ti sono stati dati che risolvono solo il problema contingente, io credo che la tua impostazione possa essere migliorata facendo riferimento ad una Struttura NORMALE più vicina a quanto si deve fare con Database Relazionale, che si gestisce diversamente da un Foglio di EXCEL.

    P.S. i campi calcolati non si salvano in Tabella, a meno che non siano dati affetti da RICALCOLI temporali, ma non è anche quì il tuo caso...!

    Ovviamente poi ognuno è libero di farsi male come crede...
Devi accedere o registrarti per scrivere nel forum
7 risposte