Newsgroup: it.comp.appl.access
Titolo: If...Then includere più condizioni

Buona sera 
 
non riesco a far funzionare questa istruzione , non capisco dove sbaglio , 
ho bisogno  che  la condizione prima è :
se nel controllo NDocumentoEMS c'è un valore e 
se la seconda condizione che la nazione sia 
una di quelle elencate 
se questo è vero allora   prezzo pesolordo .......
 
io ho fatto questo :
 
 If IsNull(Me.Nazione) Or IsNull(Me.PesoLordo) Or IsNull(Me.NDocumentoEMS) Then
      Me.CostoSpedizione = Null
 
 
    If Me.Nazione = "Cile" Or Me.Nazione = "AUSTRALIA" _
		        Or Me.Nazione = "BAHAMAS" _
		        Or Me.Nazione = "BARBADOS" _
		        Or Me.Nazione = "BELIZE" _ 
		        Or Me.Nazione = "BERMUDA" Then
 
     ElseIf Me.NDocumentoEMS.Value = True Then
 
             End If
 
 
         Select Case PesoLordo
 
          Case Is <= 1
               Me.CostoSpedizione = 42#
               Me.TSP = "FI"
           Me.Corriere = "EMS ( Express Mail Service )"
                Me.TipoSpedizione = "EXPRESS (EMS)"
                    Me.ZonaSpedizione = "Europa Extra Unione"
                         Me.TipoOrdine = "Ebay"
                            Me.Pagamento = "Paypal"
          Case Is <= 2
               Me.CostoSpedizione = 47#
               Me.TSP = "FI"
           Me.Corriere = "EMS ( Express Mail Service )"
                Me.TipoSpedizione = "EXPRESS (EMS)"
                    Me.ZonaSpedizione = "Europa Extra Unione"
                         Me.TipoOrdine = "Ebay"
                            Me.Pagamento = "Paypal"
 
 
mi date una mano ? 
 
grazie  Giuseppe


no dovrebbe essere cosi?
 
 If Me.Nazione = "Cile" AND _
         (Me.Nazione = "AUSTRALIA" _
                        Or Me.Nazione = "BAHAMAS" _
                        Or Me.Nazione = "BARBADOS" _
                        Or Me.Nazione = "BELIZE" _
                        Or Me.Nazione = "BERMUDA")

Perche non hai seguito quanto ti avevo suggerito... scrivere un codice simile non è solo illeggibile... ma veramente poco funzionale e tecnicamente inflessibile...
 
Boh...
@Alex


non capisco perché mi dice questo 
illeggibile poco funzionale e tecnicamente inflessibile 
 
non sono un professionista , ho solo un po' di passione per i database e basta 
dopotutto ho un applicazione che mi funziona benissimo e cerco di migliorarla , però certo è molto difficile , mi hai smontato 
 
ciao

Ti devo ripetere cose che ti ho già detto è per  le quali ti diedi anche una soluzione tecnica strutturata...
 
Ragioni in modo non sistemico cercando di risolvere le cose a spot non avendo una logica di insieme...
Aggiungo...
Con le tabelle relazionare si lavora nella maggior parte dei casi con gli indici tu invece utilizzi im tutto un valore Descrittivo... che di indicizzato ha poco...
Ipotizza di avere una tabella TipiPagamento con IdTp counter e TipiPagamento testo.
Di norma si usa una combo o listbox per selezionare il tipo o i tipi di pagamento... e tu pensi di dover trattare "Bancomat/Bonifico..." oppure gli indici ad essi associati...?
 
Chiaramente se le critiche ti smontano il problema va risolto... e per questo puoi sfruttarele per imparare e crescere o pensare che non essendo un professionista quello che fai è già perfetto... ma in questo caso purtroppo per non ricevere quelle che tu chiami critiche devi premettere nella domanda che non vuoi suggerimenti intelligenti ma solo finalizzati alla soluzione specifica...
 
Beh scherzi a parte... prendila come credi.
 
@Alex

Risolto  grazie 
 
If IsNull(Me.Nazione) Or IsNull(Me.PesoLordo) Then
        Me.CostoSpedizione = Null
    Else
 
  If Me.Nazione = "Cile" Or Me.Nazione = "ANGOLA" _ 
Or Me.Nazione = "ANTIGUA" Or Me.Nazione = "ANTILLE OLANDESI" _
Or Me.Nazione = " ARGENTINA" Or Me.Nazione = "SINGAPORE" Then
 
  Select Case PesoLordo
 
          Case Is <= 1
               Me.CostoSpedizione = 42#
          Case Is <= 2
               Me.CostoSpedizione = 47#
          Case Is <= 3
               Me.CostoSpedizione = 52
          Case Is <= 4
               Me.CostoSpedizione = 55
          Case Is <= 5
               Me.CostoSpedizione = 60
          Case Is <= 6
               Me.CostoSpedizione = 65
          Case Is <= 7
               Me.CostoSpedizione = 72
          Case Is <= 8
               Me.CostoSpedizione = 78
          Case Is <= 9
               Me.CostoSpedizione = 84
          Case Is <= 10
               Me.CostoSpedizione = 92
          Case Is <= 11
               Me.CostoSpedizione = 98
          Case Is <= 12
               Me.CostoSpedizione = 104
          Case Is <= 13
               Me.CostoSpedizione = 110
          Case Is <= 14
 
End Select
            End If
                End If
 
 

La condizione IS<=14 è particolarmente importante...?
 
Ha senso secondo te fare una definizione dei costi di spedizione in questo modo...?
 
Sei in un Database Relazionale in cui hai la possibilità di rendere strutturale la gestione delle Tariffe di spedizione per paese... e tui scrivi 20 condizioni per 4 paesi...?
Se domani cambiano le Tariffe di "ANGOLA" rispetto a "CILE"...? cosa fai riscrivi tutto quell'elenco...?
 
Dovresti ragionare per consentire di rendere PARAMETRICI questi dati e non toccare più il codice... questo è come si dovrebbe fare per ottimizzare.
 
@Alex