¿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.