Evento NotInList. Mensaje.

16/04/2011 - 14:35 por Alex | Informe spam
Esto es algo repetitivo, lo sé. Incluso algo en que he incurrido
alguna vez ya olvidada. Buscando he encontrado diversos post y no me
doy cuenta que estoy haciendo mal.

Tengo un combo para agregar Propiedades a un formulario y luego, por
medio de éste, a una tabla. Ahora bien. Invoco el evento NotInList
para dar una fácil opción al usuario de agregar una propiedad nueva si
ésta no estuviera. El problema es que al hacerlo sale el mensaje "El
texto que ha especificado no es un elemento de la lista". He revisado
el código con otros ejemplos y no logro ver qué está mal o qué falta.

Podrías guiarme. Gracias.

Aquí va el código:

Private Sub ccPropiedades_NotInList(NewData As String, Response As
Integer)
Dim ctl As Control
Set ctl = Me![ccPropiedades]
'Pide al usuario que compruebe que desea agregar un nuevo valor.
If MsgBox("La propiedad no existe ¿Desea agregarla?.", vbOKCancel)
= vbOK Then
' Establece el argumento Response para indicar que se han agregado
los datos.
Response = acDataErrAdded
' Agrega la cadena del argumento adNewRec al origen de las filas.
On Error GoTo Err_ccPropiedades_NotInList
DoCmd.OpenForm "frmPropiedades", acNormal
DoCmd.GoToRecord , , acNewRec
Response = acDataErrAdded
Exit_ccPropiedades_NotInList:
Exit Sub
Err_ccPropiedades_NotInList:
MsgBox Err.Description
Resume Exit_ccPropiedades_NotInList
Else
' Si el usuario elige Cancel, suprimir el mensaje de error y
deshacer los cambios.
Response = acDataErrContinue
ctl.Undo
End If
End Sub
 

Leer las respuestas

#1 Raipon
19/04/2011 - 09:10 | Informe spam
Hola, probablemente debas abrir el formulario frmPropiedades así :
DoCmd.OpenForm "frmPropiedades", acNormal, , , , acDialog

Esto parará la ejecución del código del evento, y dará tiempo a que
desde el formulario crees la nueva propiedad.

Adios, un saludo.

Preguntas similares