Pubblicato il 21 Marzo 2021 da Maurizio Matetich
Produco degli articoli che poi devo inserire in scatole da spedire. Gli articoli sono sempre diversi e per ogni articolo conosco quanti pezzi inserire in una scatola.
Ad esempio: dell’articolo ABC posso inserire 24 pezzi in ogni scatola. Se ho prodotto 127 pezzi quante scatole mi servono?
Per risolvere il problema posso utilizzare l’operatore MOD. Questo operatore permette di ottenere il resto di una divisione.
E’ necessario ricordarsi che, nella divisione, non è possibile dividere per zero
Soluzione: ho creato 3 campi
NrPezziPerScatola = indica quanti pezzi (al massimo) dell’articolo possono entrare in una scatola
NrPezziDaSpedire = indica i pezzi che ho prodotto e devo spedire con le scatole
NrScatole = è il numero di scatole necessarie per spedire gli articoli prodotti
Quando inserisco il numero di pezzi da spedire, sull’evento “Dopo aggiornamento” aggiungo il seguente codice
Private Sub NrPezziDaSpedire_AfterUpdate()
Dim Resto As Integer
If Nz(Me. NrPezziPerScatola) > 0 Then
Me.NrScatole = Me.NrPezziDaSpedire / Me.NrPezziPerScatola
Resto = (Me.NrPezziDaSpedire) Mod (Me.NrPezziPerScatola)
MsgBox “Resto = ” & Resto
If Resto < Me.NrPezziPerScatola / 2 Then
Me.NrScatole = Me.NrScatole + 1
End If
Else
MsgBox “Attenzione: manca il numero di pezzi per scatola”
Me.NrScatole = 0
End If
End Sub
Spiegazione:
L’operatore MOD permette di ottenere il resto della divisione.
Se utilizzo dei numeri interi devo considerare l’arrotondamento, ovvero:
se il risultato della divisione è 9,6 verrà scritto 10
se il risultato della divisione è 9,4 verrà scritto 9 e quindi devo aumentare di una unità perchè non posso utilizzare solo una parte della scatola 🙂
Quindi quando divido i pezzi da spedire e il numero di pezzi per scatola devo considerare quanti pezzi rimangono come resto.
Se il resto è minore della metà del numero di pezzi per scatola allora devo aumentare di UNO il numero di scatole totali necessarie.
Se il resto è maggiore o uguale alla metà del numero di pezzi per scatola allora non devo fare alcunchè perchè il numero viene arrotondato automaticamente
Scrivi un commento