Tolleranza numerica



  • Tolleranza numerica
    di sergran (utente non iscritto) data: 10/07/2013 11:43:09

    Ciao a tutti, ho in un database excell dei valori così strutturati: 80+-20
    Avrei bisogno che venisse effettuato il conteggio dopodichè venisse ridotto il range di tolelranza di 10. Vi faccio un esempio:

    80+-20 --> 60-100 --> 70-90

    150+-30 --> 120-180 --> 130-170
    Spero di essermi spiegato bene
    Grazie
    Ciao



  • di Textomb data: 10/07/2013 12:20:29

    Lo vuoi fare in VBA?
    Non ho capito come lo vuoi gestire...



  • di sergran (utente non iscritto) data: 10/07/2013 14:11:33

    Si se fosse possibile. Dovrei utilizzarlo su Access... un utente gentilmente mi aveva fornito la soluzione su Excell ma l'importazione in access mi ha dato dei problemi
    Grazie



  • di totygno71 (utente non iscritto) data: 10/07/2013 14:29:41

    Non mi è chiarisimo cosa vuoi ottenere...
    Il conteggio di cosa?
    La riduzione del range dove la vuoi visualizzare?
    Non hai uno schemi tanto per capirci?



  • di sergran (utente non iscritto) data: 10/07/2013 15:10:23

    Si certo...

    allora ipotizziamo di avere come dati all'interno di un campo

    200+-30 --> 170-230 --> 180-220
    180+-20 --> 160-200 --> 170-190

    In pratica se io ho come dato 200+-30 il codice dovrebbe fare il calcolo il cui risultato sarebbe 170-230 e dai numeri 170 e 230 vorrei che venisse quello di sinistra aumentato di 10 e quello di destra ridotto di 10
    Spero di essere stato + chiaro
    Grazie



  • di totygno71 (utente non iscritto) data: 10/07/2013 15:20:49

    ma bastano 2 formule per fare questo...



  • di sergran (utente non iscritto) data: 10/07/2013 15:31:27

    Si in effetti le formule me le ha fornite un utente ma a me servirebbe su access.



  • di Vecchio Frac data: 10/07/2013 19:42:05

    Guarda, non uso nemmeno una variabile ^_^
    Si usa così (riprendo il tuo esempio):
    limite_inferiore = split(tolleranza(200, 30), "-")(0) '---> 180
    limite_superiore = split(tolleranza(200, 30), "-")(1) '---> 220
     
    Option Explicit
    
    Function tolleranza(numero, scarto) As String
    'il risultato è composto da una coppia di valori
    'separato da segno meno; si può usare Split() per ottenere
    'il limite inferiore e il limite superiore
        tolleranza = numero - scarto + 10 & "-" & numero + scarto - 10
    End Function






  • di sergran (utente non iscritto) data: 10/07/2013 20:38:51

    Grazie molte..scusa ma ho inserito il codice in un routine Evento ma non funziona....sicuramente sbaglio qualcosa.....



  • di Vecchio Frac data: 10/07/2013 21:26:18

    Una routine evento? quale evento? e perchè? sai cosa sono le routine evento? :)
    Questa è una semplice Function pubblica... mettila in un modulo e la potrai richiamare ovunque nel tuo progetto Access.





  • di sergran (utente non iscritto) data: 10/07/2013 21:51:02

    opppssss... grazie per l'informazione... di vba sono "0"... ve ne sarete resi conto.
    Ho provato a copiare il testo in un modulo ma non funziona.
    Ho creato una tabella con dentro un campo "tolleranza"
    Dove sbaglio?

     
    Option Compare Database
    
    Function tolleranza(numero, scarto) As String
    'il risultato è composto da una coppia di valori
    'separato da segno meno; si può usare Split() per ottenere
    'il limite inferiore e il limite superiore
        tolleranza = numero - scarto + 10 & "-" & numero + scarto - 10
    End Function



  • di Vecchio Frac data: 10/07/2013 22:15:30

    Hai copiato il codice nel modulo.
    Benissimo. Adesso la function è visibile a tutto il progetto.

    Adesso parliamo di tabelle: non c'entra alcun campo "tolleranza" nella tabella.
    Devi creare una maschera associata alla tabella dei dati, poi nella maschera ci metti una casella di testo con questa formula nella proprietà "origine controllo": =tolleranza([numero];30)
    Questa formula suppone che ci sia un campo chiamato "numero" nella tabella dati, ed è il numero che verrà incrementato e decrementato per mostrarti i valori calcolati sulla tolleranza specificata (in questo caso, 30).
    In questo modo ogni record passerà alla casella di testo il "numero" che esso contiene nella tabella dati e la function "tolleranza" provvederà a calcolare dinamicamente la coppia di valori che cerchi.





  • di sergran (utente non iscritto) data: 10/07/2013 23:03:22

    Cioa, ma non riesco.... abbi pazienza... mi compare un errore nella casella di testo.......



  • di Vecchio Frac data: 11/07/2013 15:14:55

    Hai ricreato lo scenario che ho ipotizzato io?
    - crea un modulo nuovo e mettici la Function tolleranza
    - crea tabella dati con un campo chiamato "numero"
    - crea alcune righe di dati con un numero in detto campo
    - crea una maschera collegata alla tabella dati
    - nella maschera metti una casella di testo con la formuletta già detta nella sua proprietà origine controllo": =tolleranza([numero];30)
    - avvia la maschera
    - ad ogni record che scorri vedrai nella casella di testo la tolleranza calcolata dalla function "tolleranza" partendo dal numero immesso nel campo numero di quel record