Newsgroup: it.comp.appl.access
Titolo: NotInList

Ciao a tutti
Questa routine NotInList   funziona bene solo che non
riesco a far comparire il mio messaggio
"digita un codice esistente nella casella"
se nella finestra di messaggio iniziale scelgo NO
Mi sapete dire dove sbaglio
Private Sub IDProdotto_NotInList(NewData As String, Response As Integer)
Dim IntNuovo As Integer, strTitolo As String
Dim IntFinestraMsg As Integer, strMsg As String
strTitolo = "                       codice non in elenco"
strMsg = "ATTENZIONE il Codice   " & NewData & "   è inesistente vuoi
codificarlo ? "
IntFinestraMsg = vbYesNo + vbQuestion
IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
If IntNuovo = vbYes Then
If Forms!ElencoOrdini!CodiceFornitore.Value = 1 Then
 IDProdotto.Undo
Me.Undo
DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, acNormal, NewData
Response = acDataErrAdded
Response = acDataErrContinue
Forms![CodificaProdotti]![Chiudi1].Visible = True
Forms![CodificaProdotti]![Chiudi2].Visible = False
ElseIf Forms!ElencoOrdini!CodiceFornitore.Value = 54 Then
IDProdotto.Undo
Me.Undo
DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, acNormal, NewData
Response = acDataErrAdded
Response = acDataErrContinue
Forms![CodificaProdotti]![Chiudi3].Visible = True
Forms![CodificaProdotti]![Chiudi4].Visible = False
ElseIf Forms!ElencoOrdini!CodiceFornitore.Value = Not 1 Or 54 Then
IDProdotto.Undo
Me.Undo
DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, acNormal, NewData
Response = acDataErrAdded
Response = acDataErrContinue
Forms![CodificaProdotti]![Chiudi5].Visible = True
Forms![CodificaProdotti]![Chiudi6].Visible = False
Else
strTitolo = "                      Informazione   "
strMsg = "   digita un codice esistente nella casella.      "
IntFinestraMsg = vbOKOnly + vbExclamation
IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
Response = acDataErrAdded
Response = acDataErrContinue
Me!IDProdotto.Undo
Me!IDProdotto.Requery
    End If
         End If
                  End If
CIAO Giuseppe


    ElseIf Forms!ElencoOrdini!CodiceFornitore.Value = Not 1 Or 54 Then
                        AAALLLT: QUESTA CHE VOR Dì?!?!
                    La sintassi giusta sarebbe ...value <> 1 and ...value <>
54
                    ma comunque, visto che stai facendo if then else se
arrivi qui sicuramente
                   non è nè 1 nè 54 quindi basterebbe un else e basta ma a
quel punto
                   l'ultimo else che ci sta a fare?!?!
         [skip]
         DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, acNormal,
NewData
         [skip]
    end if
 Else
      messaggio
 end if
Antonio

 Prima di tutto a non indentare correttamente il tuo codice
Che vordě
[ CUT]
Ho provato la tua soluzione ma non mi funziona
sto sbagliando qualcosa
Ricapitoliamo , io ho questo:
( lasciamo perdere la sintassi )
 If IntNuovo = vbYes Then
If Forms!ElencoOrdini!CodiceFornitore.Value = 1 Then
DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, ....
Istruzioni.......
ElseIf Forms!ElencoOrdini!CodiceFornitore.Value = 54 Then
DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, ..........
Istruzioni ........
ElseIf Forms!ElencoOrdini!CodiceFornitore.Value = Not 1 Or 54 Then
DoCmd.OpenForm "CodificaProdotti", , , , acFormAdd, ........
Istruzioni ........
Else
strTitolo = "  Informazione   "
strMsg = "   digita un codice esistente nella casella.      "
IntFinestraMsg = vbOKOnly + vbExclamation
IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
end if
    end if
        end if
Come devo fare per fare in modo che se le tre "opzioni"
non sono vere  si passi al Messaggio personalizzato
Ciao Giuseppe

         end if
C'hai due endif di troppo adesso
Antonio