Newsgroup: it.comp.appl.access
Titolo: if then go .....help me please

egregi signori
ho preso la maschera ordini con sottomaschera dettaglio ordini (Nortwind) e
ho modificato l' istruzione che su evento mi pesca il prezzo di vendita
"privato" nella query "catalogo" modificata per lo scopo in cui ho aggiunto
il calcolo di un prezzo "privato" e uno "pubblico" e inserito un campo
supplementare nella tabella clienti e query ordini che mi indica il tipo di
cliente, adesso ho aggiunto una casella testo sulla maschera principale in
cui mi riporta  il tipo di cliente ("pubblico","privato") dalla query ordini
sottostante;
the question:
dovrei modificare l'istruzione con if..then..go in modo che in base al tipo
di cliente riportato nella casella di testo mi inserisca il relativo prezzo
di vendita nella sottomaschera . In pratica dovrei tradurre in codice il
seguente enunciato
se tipo cliente su maschera=publico
inserisci il relativo prezzo publico nella sottomaschera nel campo prezzo
unitario
altrimenti inserisci il prezzo privato.
allego l'istruzione originale gia modificata e che devo ulteriormente
modificare con quanto scritto
Private Sub IDProdotto_AfterUpdate()
On Error GoTo Err_IDProdotto_AfterUpdate
    Dim strFiltro As String
    ' Valuta il filtro prima di passarlo alla funzione DLookup.
    strFiltro = "IDProdotto = " & Me!IDProdotto
    ' Cerca il prezzo del prodotto e lo assegna al controllo PrezzoUnitario.
    Me!PrezzoUnitario = DLookup("Privato", "Catalogo", strFiltro)
Esci_IDProdotto_AfterUpdate:
    Exit Sub
Err_IDProdotto_AfterUpdate:
    MsgBox Err.Description
    Resume Esci_IDProdotto_AfterUpdate
End Sub
Un caloroso saluto a tutto il NSG e in particolare a chi sarà cosi bravo e
gentile ad aiutarmi.

 End Sub
SE ho capito il problema...
Sulla maschera hai una combo dove selezioni il tipo di cliente che si chiama
cmbTipo.
Diciamo che il valore 1 della combo è il cliente del primo tipo e il valore
2 identifica il cliente del secondo tipo.
A questo punto immagino tu voglia modificare la riga:
Me!PrezzoUnitario = DLookup("Privato", "Catalogo", strFiltro)
con qualcosa del tipo:
if me.cmbTipo = 1 then
    me.PrezzoUnitario = DLookUp ("Privato","Catalogo",filtro)
else
    me.PrezzoUnitario = DLookUp ("Secondo Tipo","Catalogo",filtro)
end if
E' questo quello che ti serviva?!?!
Altrimenti fammi capire meglio... scusa ma è tutta la mattina che sono
davanti al monitor... come tutti noi credo!
Luca

Luca
grazie molte ho scaricato il msg adesso e credo che sia quello che mi serve
,anch'io sono stanco dopo una giornata davanti al monitor percui credo che
la prova sul campo la farň domani e se funziona o meno lo posterň in seguito
intanto ti rigrazio
saluti ate e al nsg.

E' questo quello che ti serviva?!?!
ciao Luca diciamo che per la fretta e la curiosita ho fatto una prova subito
nonostante la stanchezza
questo è il codice modificato e adattato nella mia situazione:
Private Sub IDProdotto_AfterUpdate()
On Error GoTo Err_IDProdotto_AfterUpdate
    Dim strFiltro As String
    ' Valuta il filtro prima di passarlo alla funzione DLookup.
    strFiltro = "IDProdotto = " & Me!IDProdotto
    ' Cerca il prezzo del prodotto e lo assegna al controllo PrezzoUnitario.
    If Me!idtipocl = "1" Then
    Me!PrezzoUnitario = DLookup("Privato", "Catalogo", strFiltro)
Else
    Me!PrezzoUnitario = DLookup("Publico", "Catalogo", strFiltro)
End If
Esci_IDProdotto_AfterUpdate:
    Exit Sub
Err_IDProdotto_AfterUpdate:
    MsgBox Err.Description
    Resume Esci_IDProdotto_AfterUpdate
End Sub
che una volta lanciato mi da "campo non trovato,spostato o eliminato".Credo
che il problema sia nel fatto che il campo stesso si trovi nella maschera
ordini mentre il codice viene lanciato su (after update_ idprodotto) dalla
sottomaschera ordini.Avresti qualche soluzione da propormi tu oppure
qualcuno del nsg.
ciao a tutti e grazie anticipato.

 qualcuno del nsg.
Dunque...
devi riferirti all'oggetto che sta nella maschera "madre" in questo modo:
[Forms]![Nomeforma]![idtipocl]
inoltre vedo un secondo errore...
il campo idtipocl che cosa č?
un radio, una combo?!?!?!
Comunque sia se dentro ci metti dei valori essi saranno interi, a meno che
questo idtipocl non sia una textbox dentro la quale scrivi 1 come stringa...
maddona scusa per l'italiano pessimo ma sono stanco dopo una giornata di
lavoro.
Il succo del discorso č che devi togliere le virgolette ( "1" ) perchč č un
intero e non una stringa!
Ciao
Luca

ho ripreso il lavoro da.........
 If Me!idtipocl = "1" Then
 l'ho sostituito con
 If Me![Forms]![sottomaschera ordini]![idtipocl] = "1" Then
  e ho continuato con il codice..........
 Me!PrezzoUnitario = DLookup("Privato", "Catalogo", strFiltro)
 Else
 Me!PrezzoUnitario = DLookup("Publico", "Catalogo", strFiltro)
 End If
ok fuziona tutto alla perfezione quando inserisco il cliente sulla
principale mi indica il tipo di cliente e quindi dopo inserimento nella
sottomaschera dell'articolo in automatico mi inserisce il suo prezzo vendita
,e con questo ho finito il mio programmino,funziona alla perfezione e questo
lo devo all'esercito americano a bill gates a tutto il nsg e anche a te
 grazie