Newsgroup: it.comp.appl.access
Titolo: NotInList da A2000 a A97

salve a tutti
uso questo codice in access2000 per NotInList
Option Compare Database
Option Explicit
Private Function IsLoaded(strName As String, _
Optional lngType As AcObjectType = acForm) As Boolean
IsLoaded = (SysCmd(acSysCmdGetObjectState, _
acForm, strName) <> 0)
End Function
Private Sub cboCliente_NotInList(NewData As String, Response As Integer)
Dim mbrResponse As VbMsgBoxResult
    Dim strMsg As String
    strMsg = NewData & _
     " isn't an existing customer. " & _
     "Add a new customer?"
    mbrResponse = MsgBox(strMsg, _
     vbYesNo + vbQuestion, "Invalid Customer")
    Select Case mbrResponse
        Case vbYes
            DoCmd.OpenForm "frmInserimentoClienti", _
             DataMode:=acFormAdd, _
             WindowMode:=acDialog, _
             OpenArgs:=NewData
            ' Stop here and wait until the form
            ' goes away.
            If IsLoaded("frmInserimentoClienti") Then
                Response = acDataErrAdded
                DoCmd.Close acForm, "frmInserimentoClienti"
            Else
                Response = acDataErrContinue
            End If
        Case vbNo
            Response = acDataErrContinue
    End Select
End Sub
ho provato ad usarlo anche in access97 ma mi da errore
Optional lngType As AcObjectType  in A97 non esiste
Dim mbrResponse As VbMsgBoxResult in A97 non esiste
si può modificare in qualche maniera?
grazie
ciao

 Dim mbrResponse As VbMsgBoxResult in A97 non esiste
Dim mbrResponse As Integer
-- 
HTH
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 Dim mbrResponse As VbMsgBoxResult in A97 non esiste
Dim mbrResponse As Integer


 ha scritto nel messaggio
news:uVPua.105290$DT4.3...@twister1.libero.it...

Come funzione IsLoaded usa questa:
Function IsLoaded(ByVal strFormName As String) _
As Integer
Const conObjStateClosed = 0
Const conDesignView = 0
If SysCmd(acSysCmdGetObjectState, _
acForm, strFormName) <> conObjStateClosed Then
    If Forms(strFormName).CurrentView <> _
    conDesignView Then
        IsLoaded = True
    End If
End If
End Function
E poi prova a sostituire
Dim mbrResponse As VbMsgBoxResult
con
Dim mbrResponse As Variant
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:uVPua.105290$DT4.3...@twister1.libero.it...

Dim mbrResponse As VbMsgBoxResult
Sostituisci con :
Dim mbrResponse As Integer
Sostituisci la Private Function
Private Function IsLoaded(strName As String, _
 Optional lngType As AcObjectType = acForm) As Boolean
 IsLoaded = (SysCmd(acSysCmdGetObjectState, _
 acForm, strName) <> 0)
 End Function
con (in un modulo pubblico):
Function caricata(NomeScheda)
' Accetta:     un nome di maschera
' Esegue:      determina se la scheda è caricata
' Restituisce: True se la scheda specificata è caricata,
'              False se la scheda specificata non è caricata
' Da:          Manuale dell'utente, Capitolo 25
    Dim i
    caricata = False
    For i = 0 To Forms.Count - 1
        If Forms(i).formname = NomeScheda Then
            caricata = True
            Exit Function       ' Termina il ciclo dopo aver trovato la
scheda.
        End If
    Next
End Function
Il tuo codice diventa:
Private Sub cboCliente_NotInList(NewData As String, Response As Integer)
 Dim mbrResponse As Integer
    Dim strMsg As String
     strMsg = NewData & _
      " isn't an existing customer. " & _
      "Add a new customer?"
     mbrResponse = MsgBox(strMsg, _
      vbYesNo + vbQuestion, "Invalid Customer")
     Select Case mbrResponse
         Case vbYes
             DoCmd.OpenForm "frmInserimentoClienti", _
              DataMode:=acFormAdd, _
              WindowMode:=acDialog, _
              OpenArgs:=NewData
             ' Stop here and wait until the form
             ' goes away.
             If Caricata("frmInserimentoClienti") = True Then
                 Response = acDataErrAdded
                 DoCmd.Close acForm, "frmInserimentoClienti"
             Else
                 Response = acDataErrContinue
             End If
         Case vbNo
             Response = acDataErrContinue
     End Select
 End Sub
Ciao, Carlo


grazie 1000 a tutti funziona perfettamente