Abrir formulario en blancon con openarg

Tengo el código para buscar registro desde textbox con openargs

Private Sub Comando5_Click()
    DoCmd.OpenForm "idemp1", acNormal, , , , , Me.Texto3
End Sub
Dim strCliente As String    
    strCliente = Me.OpenArgs     
    If Len(strCliente) > 0 Then
        DoCmd.GoToControl "curp"
        DoCmd.FindRecord strCliente, , True, , True, , True
    End If

Lo que necesito es que si no esta el registro me abra el formulario en blanco para agregr un nuevo registro. Me abre el registro pero con el dato numero 1 en la tabla. O hay alguno otro manera de poder acerlo sin openargs.

1 respuesta

Respuesta
1

No se si he entendido bien la pregunta, pero allá vamos. Me parecido entender que quieres abrir un formulario B(basado, por ejemplo, en la tabla Ventas) desde otro formulario A, que tiene un cuadro de texto NombreCliente.

Puedes poner

If nz(dcount("nombrecliente","ventas","nombrecliente=forms!A!nombrecliente"))=0 then

DoCmd.OpenForm "B", , , , acFormAdd

else

docmd.openform"B",,"nombrecliente=forms!a!nombrecliente"

end if

¡Gracias!, por responder Julián González Cabarcos, y una disculpa por tardar en responder, estaba investigando las funciones Nz y Dcount.

Lo que necesito hacer es una búsqueda de registro por medio de un textbox. Al momento de escribir el dato, me haga la búsqueda y me habrá el formulario ya con los datos; eso me lo hace con el código que puse al inicio de mi pregunta. Con tu código si hace todo lo que pedí auxilio, si no encuentra el registro me abre en blanco para agregar uno nuevo, pero no se que sustituí mal, que pongo un valor existente me da el registro numero 1, y no el que debe ser. Espero me puedas señalar el error por el cual no me da, después da la sustitución.

Form curp nuevo ingreso es donde tengo el textbox A, form empleado es donde deben aparecer los datos y/o en blanco.

If Nz(DCount("curp", "datos_generales", "curp=Formularios![CURP NUEVO INGRESO]![curp]")) = 0 Then
    DoCmd.OpenForm "Empleado", , , , acFormAdd
Else
    DoCmd.OpenForm "Empleado", , "curp=Formularios![CURP NUEVO INGRESO]![curp]"
End If
End Sub

Así, a bote pronto, si ese es el código que le has puesto tienes que cambiar la palabra formularios por forms, o sea

....curp=forms![curp nuevo....

¡Gracias! Otra vez molestándote, sigue mandadome el registro num 1, y no me encuentr otro registro, creo que estoy sustituyendo mal algo. Cambien el nombre del textbox a txtcurp, ya que le había puesto el mismo nombre para poder definir donde va. Así como lo tengo me sigue dando el registro 1. Me puedes ayudar

Private Sub Comando2_Click()
If Nz(DCount("curp", "datos_generales", "curp=Forms![CURP NUEVO INGRESO]![txtcurp]")) = 0 Then
    DoCmd.OpenForm "Empleado", , , , acFormAdd
Else
    DoCmd.OpenForm "Empleado", , "curp=Forms![CURP NUEVO INGRESO]![txtcurp]"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas