Imprimir página | Cerrar ventana

Varios Argumentos

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84824
Fecha de impresión: 27/Marzo/2026 a las 02:21


Tema: Varios Argumentos
Publicado por: Nomada
Asunto: Varios Argumentos
Fecha de publicación: 14/Noviembre/2019 a las 14:17
Buenas.
Al pulsar un botón me abre un formulario basado en una condición y con un argumento.
El código es el siguiente:

Private Sub cmdHoras_Click()
stLinkCriteria = "[HO_ID]=" & Me![TR_ID]
DoCmd.OpenForm "F_HOTR", , , stLinkCriteria, acFormEdit, , [TR_ID]

Al insertar un registro en el formulario "F_HOTR", HO_ID toma el valor del argumento (TR_ID).
Private Sub Form_BeforeInsert(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
    Me.HO_ID = Me.OpenArgs
End If

Ahora, cómo sería el código, tanto al hacer clic como al insertar, para que tome los dos argumentos, si la condición está basada en dos campos?:
stLinkCriteria = "[HO_ID]=" & Me![TR_ID] & "AND[HO_PRO]=" & Me![PR_PRO]

Gracias.



Respuestas:
Publicado por: mounir
Fecha de publicación: 14/Noviembre/2019 a las 18:04
Hola!

Y porqué utilizas la clausula Where y la proiedad OpenArgs?.

Yo lo haria asía.

DoCmd.OpenForm "F_HOTR", , , , acFormEdit, ,[TR_ID] & "|" & [PR_PRO]

Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
    Me![HO_ID] = Split(Me.OpenArgs, "|")(0)
    Me![HO_PRO] = Split(Me.OpenArgs, "|")(1)
End If
End Sub



-------------
Un Saludo.


Publicado por: Nomada
Fecha de publicación: 18/Noviembre/2019 a las 13:48
Gracias Mounir.
Perfecto.
Este hilo se puede cerrar satisfactoriamente.
Un saludo




Imprimir página | Cerrar ventana