¿Abrir un formulario Access 2010, pasando varios parámetros o una variable con todos?

++++Tengo este código en un formulario (10_a_Alta_Recibir_F) donde hago un recorrido en la tabla para validar si hubo un evento en el mes o no, pero requiero que si encuentra un evento me abra el registro en otro formulario (10_Alta_Recibir_F) para modificarlo, sino encuentra nada, que me abra el formulario en blanco...

Option Compare Database
Private Sub Btn_Buscar_Click()

Dim vPlan As Variant

Dim vTPlan As Variant

Dim vContrato As Variant

Dim vMes As Variant

Dim vAnio As Variant

Dim vOS As Variant

Dim tu_args As String


'Asignamos valor a las variables

vContrato = Me.CC_Contrato.Value

vMes = Me.CC_MES.Value

vAnio = Me.CC_ANIO.Value

vOS = Me.CC_NUM_ORD_SERV.Value

vPlan = Me.CC_ACC_O_INCID.Value

tu_args = vContrato & ";" & vMes & ";" & vAnio & ";" & vOS

'Validamos que seleccionen todos los valores de los combos

If IsNull(vContrato) Then 'Exit Sub

MsgBox "Seleccione el número de contrato", vbInformation, "SELECCIONE EL CONTRATO" End If

If IsNull(vMes) Then

MsgBox "Seleccione el mes", vbInformation, "SELECCIONE EL MES"

End If

If IsNull(vAnio) Then

MsgBox "Seleccione el año", vbInformation, "SELECCIONE EL AÑO"

End If

' Orden de Servicio tiene un valor predeterminado, por lo que no validamos

'Creamos el recordset

Dim rst As Recordset

Set rst = CurrentDb.OpenRecordset("RECIBIR", dbOpenSnapshot)

If rst.RecordCount = 0 Then Exit Sub

rst.MoveFirst

'Recorremos los registros de la tabla para ver si ya

'existe el valor introducido

Do Until rst.EOF

vTPlan = rst.Fields("ACC_O_INCID").Value

'Si existe lanza un aviso y abre el registro en cuestión 'en el formulario

10_Alta_Recibir_F If vTPlan <> vPlan And vContrato = rst.Fields("ID_NUM_CONTRATO").Value And vMes = rst.Fields("MES").Value And vAnio = rst.Fields("ANIO").Value And vOS = rst.Fields("NUM_ORD_SERV").Value Then

MsgBox "Existe un Incidente / Accidente en este mes para este contrato", vbInformation, "EXISTE INCIDENTE / ACCIDENTE"

+++++ Estas líneas comentariadas las probé pero no me funcionaron:

'DoCmd.OpenForm "10_Alta_Recibir_F", , , "[CC_Contrato] = '" & vPlan & "'" 'DoCmd.OpenForm "10_Modif_Recibir_F", , , "[ID_NUM_CONTRATO]='" & vContrato & "'", "[MES]='" & vMes & "'", "[ANIO]='" & vAnio & "'", "[NUM_ORD_SERV]='" & vOS & "'"

++++++++Al presionar el botón que me ejecuta el código me envía este error: " Se ha producido el error '3075' en tiempo de ejecución. Error de sintaxis en la expresión de consulta 421001803;FEBRERO;2013;N/A'. Al dar en Depurar me lleva a esta línea, cómo paso esos valores?:

DoCmd.OpenForm "10_Modif_Recibir_F", , , tu_args

Exit Do

End If

rst.MoveNext

Loop

If vTPlan = vPlan Then 'Si no existe se abre un formulario en blanco para agregar los datos

MsgBox "El contrato NO existe", vbInformation, "NO EXISTE"

'DoCmd.OpenForm "10_Alta_Recibir_F", acNormal, , , acFormAdd End If

'Cerramos conexiones y liberamos memoria

rst.Close Set rst = Nothing

End Sub

¿ómo paso esos valores y cómo los recibiría y asignaría en el formulario 10_Alta_Recibir_F para luego guardarlos?

Agradeceré su apoyo, me urge.

Añade tu respuesta

Haz clic para o