Probelmi con il generatore di espressioni

di il
14 risposte

Probelmi con il generatore di espressioni

Salve a tutti...
Ho bisogno del vostro aiuto in quanto sto facendo un piccolissimo database (sono alle primissime armi) ed è sorto un problema.
Devo mettere in un campo il BMI che ottengo facendo una divisione tra due valori presenti in altri due campi della tabella. Sono andata ad utilizzare il generatore di espressioni ma apparte le funzioni prdefinite operatori e costanti nella colonna di sx non mi appaiono le tabelle quindi non posso prendere da li i campi che mi servono nell'espressione.
Ho provato anche a fare semlicemente la formula inserendola cosi
=[Peso]/[Altezza]*[Altezza]
ma mi dice che il modulo di gestione del db non riconosce il campo peso in una espressione di convalida o il valore predefinito nella tabella controlli.
Premetto che il campo Peso si chiama proprio cosi... io non capisco.
Mi potete aiutare?
Grazie mille

14 Risposte

  • Re: Probelmi con il generatore di espressioni

    Ciao,prova ad inserire nel campo calcolato della query questa esp.bmi: [peso]/([altezza]*[altezza])
    attenta alle parentesi.fammi sapere
  • Re: Probelmi con il generatore di espressioni

    Ciao!
    In effetti io non utilizzavo una query ma inserivo direttamente l'espressione prima in valore predefinito nella tabella modalità struttura poi in origine controllo in maschera modalità struttura. Ora ho fatto la query e sono riuscita ad inserire il calcolo. Per limitare a due i decimali ho dovuto cmq mettere Testo di lunghezza 5 invece che Numerico... perchè?
    Dato che ci sono ho un altro problema... volevo calcolare l'età a partire dalla data di nascita... devo fare la query anche qui o posso inserirla come funzione??
  • Re: Probelmi con il generatore di espressioni

    Continuo con i miei progressi o meglio i miei problemi
    Ho provato a fare la query per il calcolo dell'età... ebbene ho messo in aggiorna la formula
    Fix(Date()-[DataNascita])/365,25
    Sperando in un valore di età intero. M ele calcola tutte giuste tranne una.. come mai?
    Data di Nascita Età
    01/01/1960 52
    13/03/1943 68
    25/06/1970 41
    09/07/1948 63
    28/11/1960 51
    20/04/1952 59
    09/12/1940 71
    02/02/1971 40
    08/09/1969 42
    12/05/1950 61
  • Re: Probelmi con il generatore di espressioni

    Ciao Mara,aggiungi alla tab.la data di nascita,e alla query metti la seguente espressione:eta: eta: DateDiff("yyyy";[DataNascita];Date())+(Format(Date();"mmdd")<Format([DataNascita];"mmdd")).
    dovrebbe funzionare .aggiornami.ciao
  • Re: Probelmi con il generatore di espressioni

    Ciao.
    Ho inserito la formula nel campo aggiorna a della query e nella tabella è presente il campo Età ma mi da un errore, il seguente:
    Impossibile aggiornare tutti i record nella query di aggiornamento
    Numero di campi non aggiornati per un errore di conversione tra tipi:10
    che poi sarebbero tutti...
    La data di nascita è un data/ora per l'età ho provato numerico data/ora e testo.. continua a darmi l'errore..
    uffff
  • Re: Probelmi con il generatore di espressioni

    Ciao,per quel che riguarda il campo peso e altezza usa dati tipo numerico,e giù dove dice dimensione campo inserisci "precisione singola" e posizioni decimali 2.
    perchè utilizzi una query di aggiornamento?;con una query semplice il campo età si aggiorna automaticamente quando cambi il valore dell'età nella tab.fai queste modifiche.io ho simulato una tab. con i campi nome ,peso,altezza,datanascita.nella query semplice ricavata da questa tab.ho inserito il campo bmi e il capo età e funziona.
    insisti ciao.
  • Re: Probelmi con il generatore di espressioni

    Mmmm... e come dovrei farla la quesy semplice??
    Cioè io voglio che nella tabella Pazienti in cui ho tutti i campi compresa DataNascita l'età venga calcolata automaticamente a partire proprio d aquesta... possibile che inserindo la formula che mi hai dato tu in valore predefinito non funzioni???
    Per questo avevo fatto la query perchè il generatore di espressioni mi sta creando problemi.
    Avevo pensato a quella di aggiornamente e inserivo la form ula in aggiorna a... in quella semplice come devo fare?
    Scusa ma non ho mai usato access...
  • Re: Probelmi con il generatore di espressioni

    Ok! è buona norma mettere nelle tab. i dati cosidetti "fissi" cioè che non devono subire aggiornamenti.Nome, cognome,data di nascita,codice fiscale ecc. mentre numeri di tel.,indirizzi,età, quantitativi di materiale,saldo contabile ecc... possono cambiare nel tempo si aggiornano pertanto non devono essere inseriti di regola nelle tab.
    Le query sono delle "domande " che noi chiediamo al programma,ed hanno il compito di prendere i dati dalle tab. o da altre query e di fornire un risultato.esempio:se hai in una tab. un elenco di prodotti, ogni prodotto composto da più pezzi ed il prezzo per ogni singolo pezzo;il totale non puoi metterlo nella stessa tab.perchè saresti costretta a modificare manualmente l'importo totale al variare della quantità dei pezzi.rischiando di sbagliare i calcoli.inserendo la formula nella query ogni volta che nella tabella verrà aggiunto o tolto un pezzo il prezzo totale si aggiornerà automaticamente. detto questo:apri il tuo database,la schermata che ti compare dovrebbe avere a sinistra gli oggetti(tab.,query,maschere,report ecc.clikka su query,nel riquadro più grande a fianco agli oggetti clicca su crea un query mediante una creazione guidata.comparirà un seconda schermata dove ti chiede da dove vuoi prendere i dati(tabella/query)clicca sulla freccetta e ti compariranno tutte le tab.del tuo db.scegli la tab.che ti serve ;in basso compariranno tutti i campi della tab. che hai scelto .clcca sulla doppia freccia per inserirli tutti.poi il pulsante avanti sino a che non si crea la query.questa è una query semplice.dopo la puoi rinominare se il nome dato in automatico non ti piace.a questo punto apri la query in visualizzazione struttura,inserisci in un campo vuoto la formula dell'età,e in un altro campo quella del bmi.se tutto và come previsto all'apertura della query avrai tutti i dati che si aggiornano quando cambi i valori di peso o altezza nella tab.anzi di dirò di più :i dati altezza, peso ,e data di nascita prova a variarli direttamente nella query(semplice) poi clicca al rigo di sotto e si aggiorneranno in diretta.ok! prova
  • Re: Probelmi con il generatore di espressioni

    Mamma mia come sono dura!
    Ho creato la query mediante creazione guidata... query semplice inserendo tutti i campi della tabella pazienti.
    L'ho aperta in modalità struttura ed ho inserito la formula della data che mi avevi dato in criteri (sbagliando evidentemente?)
    Quando vado a ad aprirla mi dice...
    Chiamata di routine non valida!
    Non capisco cmq perchè con la query di aggiornamento e la formula che avevo messo io quella Fix(Date()-[DataNascita])/365,25 funzionare funzionava era solo il problema della prima età che la calcolava sbagliata... non si potrebbe tentare di aggiustare il tiro a quella?
  • Re: Probelmi con il generatore di espressioni

    Aggiornamento.. sono riuscita a calcolare l'età ma ho tenuto la query di aggiornamento.
    con una formula sempre datediff ma un pò meno complessa.
    Adesso mi avventuro nella funzione IIf... per un altro campo.
    Speriamo bene!
  • Re: Probelmi con il generatore di espressioni

    Bene,se hai trovato una strada diversa che ti soddisfa seguila.comunque la formula non la devi inserire in criteri, ma sempre in modalità struttura della query nella riga campo.come se fosse un'altra voce della tab.a fianco a peso ,o altezza o data di nascita(non nella stessa casella ma in una libera).non voglio insistere pensando che il mio metodo sia migliore,ma vorrei che tu riuscissi a farlo e poi scegliere quello che più ti piace.Io personalmente provo ad addentrarmi nella programmazione solo se non posso realizzare con metodi più semplici ciò che voglio.
    Spostandoci sulla tab.hai inserito sulla dimensione campo "precisione singola "sia per altezza e peso per poter ottenere misure tipo peso 67,7 e altezza 1,72 e non solo numeri interi?
    Ho risposto ad un tua domanda su come riazzerare il campo contatore che continuava ad aumentare anche se si cancellavano i record hai provato? non ricordo chi aveva posto il quesito tu avevi risposto di non voler eliminare le relazioni per poter azzerare il contatore.
  • Re: Probelmi con il generatore di espressioni

    Ciao,ho un'idea per spedirti la query ma devo conoscere tutti i campi della tab.Pazienti.Esempio io ho messo cognome ,nome,peso,altezza,datanascita .se manca qualcosa dimmelo.se invece le voci corrispondono apri la query semplice in visualizzazione struttura,sulla barra dei menù vai a visualizza .troverai visualizzazione SQL CLICCA sopra e ti apparirà un codice tipo questo:

    SELECT Pazienti.cognome, Pazienti.nome, Pazienti.peso, Pazienti.altezza, Pazienti.datanascita, [peso]/([altezza]*[altezza]) AS bmi, DateDiff("yyyy",[DataNascita],Date())+(Format(Date(),"mmdd")<Format([DataNascita],"mmdd")) AS età
    FROM Pazienti;

    cancella il tuo e metti questo.dopo chiudi salva se te lo chiede.riapri la query in visualizzazione struttura per vedere come è realizzata oppure eseguila per vedere il risultato.speriamo bene.
  • Re: Probelmi con il generatore di espressioni

    Ciao Sal! Grazie mille per l'aiuto.
    Dunque... ho provato a fare la query semplice e ad inserire la formula che mi hai dato in SQL ma quando praticamente vado ad eseguirla mi rimangono i dati nella query.. cioè io il calcolo del BMI e dell'età voglio che finisca nella mia tabellla iniziale che è quella dei pazienti.
    Ti dirò.... la soluzione con la query di aggiornamento mi pare possa andare bene per le mie esigenze attuali anche se non dubito che avrei benissimo potuto fare in cento modi diversi. Quello che infatti sto imparando in questi giorni di full immersion in access è che ci sono mille possibilità per raggiungere il risultato basterebbe saperle utilizzare eheheheh! Vabbè cmq ho usato anche IIf per determinare in base al valore di BMI la categoria di condizione nutrizionale (sovrappeso, normopeso, obeso, sottopeso) ma continuo cmq a ripetere che non so se dipende da me che non sono capace ma anche qui volevo inserire la formula semplicemente con il generatore di espressione in valore predefinito del campo condizionenutrizionale e invece riscontro problemi per cui via con la queryyyyyyyy ehehhehee!
    In questo modo riesco a fargli fare ciò che voglio nell'altro non se ne parla.
    Indubbiamente sarà un problema mio. Al momento devo consegnare il db in poco tempo per cui l'importante è raggiungere l'obiettivo.. ma per il futuro potrei cominiciare ad addentrarmi di piu nella cosa e capire il perchè.
    Adesso provo anche con l'inserimento di un foglio excel... così per includere un pò tutte le funzionalità.
    Chissà potrei ancora aver bisogno di aiuto!
    Grazie mille
    Mara
  • Re: Probelmi con il generatore di espressioni

    Brava.se in futuro hai bisogno fai un fischio.ciao
Devi accedere o registrarti per scrivere nel forum
14 risposte