Newsgroup: it.comp.appl.access
Titolo: Dopo Aggiornamento

 
Buona sera , 
 
vorrei fare una Routine dopo aggiornamento del controllo PesoLordo
 
tipo questo :
 
se Nazione.Value = Italia
se Pesolordo.Value da kg. 0,000 a kg.4,000
 
allora ( controllo )CostoSpedizione.value = 4,14
 
se PesoLordo.Value da 4,001 a 4,999
 
allora CostoSpedizione.Value = 4,64
 
se PesoLordo.Value da 5,000 a 10,000
 
allora CostoSpedizione.value = 7,570
 
Mi date una mano ?
più che altro capire se il concetto è esatto e se questo è il modo giusto per 
affrontare il problema 
 
Grazie Giuseppe


Ti conviene usare Select Case
If me.Nazione = "Italia" then
   Select Case Pesolordo
      Case => 0  and  >=4    'Ho il dubbio su questi operatori
        me.CostoSpedizione = 4,14
      Case => 4,001 and <= 4,999
         me.CostoSpedizione = 4,64
               ...etc...
      End Select
End if
 
Ciao

Le possibilità ci sono:
 
Private Sub CalcoloTariffa()
    If IsNull(Me.Nazione) Or IsNull(Me.Pesolordo) Then
        Me.CostoSpedizione = Null
    Else
        If Me.Nazione = "Italia" Then
            Select Case Pesolordo
                Case Is <= 4
                    Me.CostoSpedizione = 4.14
                Case Is < 5
                    Me.CostoSpedizione = 4.64
                Case Is <= 10
                    Me.CostoSpedizione = 7.57
            End Select
        Else
            Me.CostoSpedizione = Null
        End If
    End If
End Sub
 
Private Sub CalcoloTariffa()
    If IsNull(Me.Nazione) Or IsNull(Me.Pesolordo) Then
        Me.CostoSpedizione = Null
    Else
        If Me.Nazione = "Italia" Then
            Select Case Pesolordo
                Case 0 To 4
                    Me.CostoSpedizione = 4.14
                Case 4.1 To 4.999
                    Me.CostoSpedizione = 4.64
                Case 5 To 10
                    Me.CostoSpedizione = 7.57
            End Select
        Else
            Me.CostoSpedizione = Null
        End If
    End If
End Sub

perfetto , 
 
questo funziona benissimo , ora lo adatterò anche per automatizzare altri controlli 
If IsNull(Me.Nazione) Or IsNull(Me.Pesolordo) Then 
        Me.CostoSpedizione = Null 
    Else 
        If Me.Nazione = "Italia" Then 
            Select Case Pesolordo 
                Case 0 To 4 
                    Me.CostoSpedizione = 4.14 
                Case 4.1 To 4.999 
                    Me.CostoSpedizione = 4.64 
                Case 5 To 10 
                    Me.CostoSpedizione = 7.57 
            End Select 
        Else 
            Me.CostoSpedizione = Null 
        End If 
    End If 
End Sub 
 
 
Grazie mille
Giuseppe 


Valuta di migliorare il SELECT CASE... in quanto si può scrivere in modo da non costringerlo a fare 2 Confronti....
 
    Select Case Pesolordo
        Case Is <= 4
            Me.CostoSpedizione = 4.14
        Case Is < 5
            Me.CostoSpedizione = 4.64
        Case Is <= 10
            Me.CostoSpedizione = 7.57
    End Select
 
 
Saluti
@Alex

 >     End If 
------
anche altra istruzione ma con parametro Germania,Francia,Austria,Spagna,inghilterra, ecc ecc...
così fatta :
 
If Me.Nazione = "Germania" or "Francia"  ecc. ecc.. Then
Select Case  Peso lordo
	Case 0 To 1
	Me.CostoSpedizione =10,00
	Me.Corriere = BRT-DPD 2 
	Me.TipoSpedizione = STANDARD UE 371
	Me.ZonaSpedizione =Europa Unione
 
	Case 1.1  To 25.00
	Me.CostoSpedizione = Null
 
ma  non ho ben chiaro  dove piazzare il tutto senza errori 
e sapere se la sintassi è quella giusta .
 
Grazie 
Giuseppe