que me falla por favor
Publicado por salva (56 intervenciones) el 29/03/2008 19:41:19
haber tengo el siguiente codigo, gracias a la buena gente que hay por aqui, que cuando un registro no esta en un cuadro lista me abre el formulario para agregarlo, el problema viene que en este formulario que abre tengo un contador que hace que este codigo me abra en el primer numero de registro, con el consiguiente mensaje que estoy duplicando un registro, haber si alguien me puede ayudar.
Private Sub empleado_NotInList(DatosNuevos As String, Respuesta As Integer)
' Agregar un producto nuevo escribiendo un nombre en el cuadro combinado tucampo.
Dim entempleado As Integer, entNombreTruncado As Integer, cadTítulo As String, entCuadroMensaje As Integer
' Mostrar un cuadro de mensaje preguntado al usuario si desea agregar un nuevo PRODUCTO.
cadTítulo = "El producto no está en la lista"
entCuadroMensaje = vbYesNo + vbQuestion + vbDefaultButton1
entempleado = MsgBox("¿Desea agregar un producto nuevo?", entCuadroMensaje, cadTítulo)
If entempleado = vbYes Then
' Quitar el nombre nuevo del cuadro combinado producto para que el usuario
' pueda volver a consultar el control al volver al formulario.
DoCmd.RunCommand acCmdUndo
' Mostrar cuadro de mensaje y ajustar la longitud del valor introducido
' en el cuadro combinado producto. CAMBIA el 50 por el límite de caracteres que uses tú (está en 3 sitios).
cadTítulo = "Nombre demasiado largo"
entCuadroMensaje = vbOKOnly + vbExclamation
If Len(DatosNuevos) > 50 Then
entNombreTruncado = MsgBox("Los nombres de productos no pueden ser más largos de " _
& "50 caracteres. El nombre que introdujo se truncará.", _
entCuadroMensaje, cadTítulo)
DatosNuevos = Left(DatosNuevos, 50)
End If
' Abrir el formulario Agregar Producto.
DoCmd.OpenForm "tabla1", acNormal, , , acAdd, acDialog
' Continuar sin mostrar el mensaje de error predeterminado.
Respuesta = acDataErrAdded
End If
End Sub
y este es el contador
Private Sub Form_Current()
If Me.RecordsetClone.RecordCount = 0 Then
id = "001"
ElseIf Me.RecordsetClone.RecordCount > 0 And IsNull(id) Then
id = Format(Left(DMax("id", "Tabla2"), 3) + 1, "000")
End If
End Sub
Private Sub empleado_NotInList(DatosNuevos As String, Respuesta As Integer)
' Agregar un producto nuevo escribiendo un nombre en el cuadro combinado tucampo.
Dim entempleado As Integer, entNombreTruncado As Integer, cadTítulo As String, entCuadroMensaje As Integer
' Mostrar un cuadro de mensaje preguntado al usuario si desea agregar un nuevo PRODUCTO.
cadTítulo = "El producto no está en la lista"
entCuadroMensaje = vbYesNo + vbQuestion + vbDefaultButton1
entempleado = MsgBox("¿Desea agregar un producto nuevo?", entCuadroMensaje, cadTítulo)
If entempleado = vbYes Then
' Quitar el nombre nuevo del cuadro combinado producto para que el usuario
' pueda volver a consultar el control al volver al formulario.
DoCmd.RunCommand acCmdUndo
' Mostrar cuadro de mensaje y ajustar la longitud del valor introducido
' en el cuadro combinado producto. CAMBIA el 50 por el límite de caracteres que uses tú (está en 3 sitios).
cadTítulo = "Nombre demasiado largo"
entCuadroMensaje = vbOKOnly + vbExclamation
If Len(DatosNuevos) > 50 Then
entNombreTruncado = MsgBox("Los nombres de productos no pueden ser más largos de " _
& "50 caracteres. El nombre que introdujo se truncará.", _
entCuadroMensaje, cadTítulo)
DatosNuevos = Left(DatosNuevos, 50)
End If
' Abrir el formulario Agregar Producto.
DoCmd.OpenForm "tabla1", acNormal, , , acAdd, acDialog
' Continuar sin mostrar el mensaje de error predeterminado.
Respuesta = acDataErrAdded
End If
End Sub
y este es el contador
Private Sub Form_Current()
If Me.RecordsetClone.RecordCount = 0 Then
id = "001"
ElseIf Me.RecordsetClone.RecordCount > 0 And IsNull(id) Then
id = Format(Left(DMax("id", "Tabla2"), 3) + 1, "000")
End If
End Sub
Valora esta pregunta
0