** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Seleccionar registro con click
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSeleccionar registro con click

 Responder Responder
Autor
Mensaje
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Tema: Seleccionar registro con click
    Enviado: 14/Septiembre/2015 a las 20:15
Hola a todos, desde ya gracias por su atención y ayuda. Paso a explicar mi pregunta:
Tengo un formulario independiente, dentro del cual ademas de controles varios tengo un sub-formulario (en vista hoja de datos). En el cual se listan registros varios, la idea es que la hacer click sobre un determinado campo de alguno de los registros se abra otro formulario (emergente y modal) para editar determinados campos de ese registro. Los datos de los objetos son:

Formulario principal: CHQEXT_CentroControl (vista formualrio unico - independiente)
Formulario sub: CHQEXT_Detalle (vista hoja de datos)
Control del sub: EXT-NumeroSerie

En el control del sub-formulario para el campo seleccionado he implementado el siguiente código:

Private Sub EXT_NumeroSerie_Click()
On Error GoTo Err_EXT_NumeroSerie_Click

Dim strChequeForaneoSeleccionado As String

'Selección del registro
strChequeForaneoSeleccionado = Forms![CHQEXT_CentroControl]![CHQEXT_CC_Detalle].Form![EXT-NumeroSerie].Value
'Evaluación de cheque ingresado o emitido
If (Forms![CHQEXT_CentroControl]![CHQEXT_CC_Detalle].Form![EXT-CicloEntrada].Value = True) Then
'   Se abre el informe que muestra los datos del cheque seleccionado
    DoCmd.OpenReport "CHQEXT_Datos", acViewReport, , "[EXT-NumeroSerie]='" & strChequeForaneoSeleccionado & "'"
Else
'   Se abre el formulario que edita los datos del cheque seleccionado
    DoCmd.OpenForm "CHQEXT_Edicion", acNormal, , "[EXT-NumeroSerie]='" & strChequeForaneoSeleccionado & "'"
End If
'Cierra el formulario base
DoCmd.Close acForm, "CHQEXT_CentroControl"

Exit_EXT_NumeroSerie_Click:
    Exit Sub
Err_EXT_NumeroSerie_Click:
    MsgBox Err.Description
    Resume Exit_EXT_NumeroSerie_Click
End Sub

Cuando hago click en el mismo solo abre el formulario/informe del primer registro. Si aplico un filtro al sub-formulario funciona. Intuyo que no puedo seleccionar el registro, ya que toma siempre el primero del conjunto de datos del sub-formulario. Como puedo seleccionar un registro de un sub-formulario en vista hoja de datos con solo hace click en un control (que sera el que posea el código). saludos y gracias a todos.


Editado por gabrieldrv - 15/Septiembre/2015 a las 18:34
E. Gabriel Drovandini
Arriba
jmmiralles Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 29/Noviembre/2008
Localización: Albacete-España
Estado: Sin conexión
Puntos: 569
Enlace directo a este mensaje Enviado: 14/Septiembre/2015 a las 22:03
Buenas noches a todos

mira este link te podrá ayudar

http://www.fmsinc.com/free/newtips/access/accesstip26.asp

el secreto está en RecordsetClone de un subformulario y Bookmark, ya tienes la pista,

el resto te toca a tí.

Espero te sirva

Saludos desde un lugar de la Mancha

Visita Mi Web

http://jmmirallesortega.wix.com/accessyvba<
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5393
Enlace directo a este mensaje Enviado: 14/Septiembre/2015 a las 23:10
También puedes ver en la web del Buho, un ejemplo de Bacterio (Ricardo Hernández) sobre sincronizar formularios, el usa una constante y variable para escuchar en que registro esta y poder cambiarlo:
 
O puede mirar un ejemplo sobre algunas formas incluida esta de Bacterio y la que menciona jmmirelles sobre Boolmark:
Se llama EventosForms
 
Saludos.
Arriba
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Enviado: 14/Septiembre/2015 a las 23:20
Gracias por responder. Mi pedido esta orientado a poder capturar el valor del control sobre el sub-formulario en vista hoja de datos. Y asi poder abrir el formulario emergente con ese parámetro. Estuve viendo el tema sobre Recordsetclone y no me queda claro como implementarlo. Ya que por lo que entendí necesito pasar el parámetro desde el formulario principal. Y en mi caso el parámetro lo seleccione mediante un click desde el sub-formulario a través del formulario base. Sigo escuchando ofertas!!!. Saludos y gracias
E. Gabriel Drovandini
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5393
Enlace directo a este mensaje Enviado: 14/Septiembre/2015 a las 23:30
Si ese formulario que abres tiene alguna relación con el subformulario entonces el asistente para botones lo hace en automático, según recuerdo.
 
Saludos.
Arriba
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 01:38
No tiene ninguna relación. Se basan en la misma tabla. No se si eso es relevante.
E. Gabriel Drovandini
Arriba
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 14:37
Haber si puedo ser mas claro en mi consult. La situación y el código me funciona a la perfección si yo selecciono el registro desde el selector de registro del sub-formulario en vista hoja de datos. Pero la idea es hacerlo directamente haciendo click sobre el campo Numeroserie del registro que yo seleccione visualmente con el mouse. Desde ya gracias por todo.
E. Gabriel Drovandini
Arriba
jorge1234 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 01/Agosto/2013
Localización: Colombia
Estado: Sin conexión
Puntos: 325
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 16:44
Gabriel buen dia

esto lo trabajo con variables temporales,  en este link esta la base de ejemplo que tiene un hilo activo en este foro.

https://onedrive.live.com/redir?resid=B39053153A7C0002%21299

la persona queria que al dar click en el formulario BUSCAR UBICACION en el id_ubicasa  lo pasara al formulario lista de controles al campo is ubica control

para tu caso se guardaria la variable y se abriria el formulario donde el id esta igual a la variable correspondiente, es decir  colocarias al abrir el fomrulario en la condicione WHERE ="[Id_HC]=" & [Id_HC]  dond id_hc  es el id primario  y el otro seria el secundario

o este otro ejemplo

'------------------------------------------------------------
' Macro2
'
'------------------------------------------------------------
Function Macro2()
On Error GoTo Macro2_Err

    With CodeContextObject
        TempVars.Add "Iddoc2", .[Número de identificacion]
        DoCmd.OpenForm "USUARIOS bq", acNormal, "", "[dociden]=[TempVars]![Iddoc2]", acEdit, acNormal
        TempVars.RemoveAll
    End With


Macro2_Exit:
    Exit Function


Macro2_Err:
    MsgBox Error$
    Resume Macro2_Exit

End Function
 
 Espero haber ayudado!

Cordial saludo
Arriba
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 18:33
Muy interesante plante, el uso de variables temporales es muy practico para trasladar información por toda la base de datos. He modificado mi código para replantear el camino de la siguiente forma:

'Se genera y asigna a la variable temporal el regsitro seleccioando
TempVars.Add "ChequeSeleccionado", Forms![CHQEXT_CentroControl]![CHQEXT_CC_Detalle].Form![EXT-NumeroSerie].Value
'Evaluación de cheque ingresado o emitido
If (Forms![CHQEXT_CentroControl]![CHQEXT_CC_Detalle].Form![EXT-CicloEntrada].Value = True) Then
'   Se abre el informe que muestra los datos del cheque seleccionado
    DoCmd.OpenReport "CHQEXT_Datos", acViewReport, , "[EXT-NumeroSerie]='" & TempVars!ChequeSeleccionado & "'"
Else
'   Se abre el formulario que edita los datos del cheque seleccionado
    DoCmd.OpenForm "CHQEXT_Edicion", acNormal, , "[EXT-NumeroSerie]='" & TempVars!ChequeSeleccionado & "'"
End If
'Se elimina de memoria la variable y su valor
TempVars.Remove "ChequeSeleccionado"
'Cierra el formulario base
DoCmd.Close acForm, "CHQEXT_CentroControl"

Pero sigue pasando lo mismo. Solo abre el primer registro. El problema es capturar el valor del control en el cual hago click (tener en cuenta que el control se encuentra en un sub-formulario sin vinculo con el formulario principal).


Editado por gabrieldrv - 15/Septiembre/2015 a las 18:37
E. Gabriel Drovandini
Arriba
jorge1234 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 01/Agosto/2013
Localización: Colombia
Estado: Sin conexión
Puntos: 325
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 20:35
Mira puede ser el error en lo que esta en rojo


'Se genera y asigna a la variable temporal el regsitro seleccioando, COMO ESTAS EN EL FORMULARIO ACTIVO Y DAS CLICK AL CAMPO NO SE DEBE ESPECIFICAR EL FORMULARIO Y EL SUB ETC..
TempVars.Add "ChequeSeleccionado", .[EXT-NumeroSerie].Value
'Evaluación de cheque ingresado o emitido
If (Forms![CHQEXT_CentroControl]![CHQEXT_CC_Detalle].Form![EXT-CicloEntrada].Value = True) Then
' Se abre el informe que muestra los datos del cheque seleccionado
DoCmd.OpenReport "CHQEXT_Datos", acViewReport, , "[EXT-NumeroSerie]='" & TempVars!ChequeSeleccionado & "'"
Else
' Se abre el formulario que edita los datos del cheque seleccionado
DoCmd.OpenForm "CHQEXT_Edicion", acNormal, , "[EXT-NumeroSerie]='" & TempVars!ChequeSeleccionado & "'"
End If
'Se elimina de memoria la variable y su valor
TempVars.Remove "ChequeSeleccionado"
'Cierra el formulario base
DoCmd.Close acForm, "CHQEXT_CentroControl"


Verifica y nos cuentas

Saludos
Arriba
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 22:07
Ya había intentado con esa variante, pero el mensaje es Error de compilación: referencia no válida o sin calificar. Que puede estar pasando?
E. Gabriel Drovandini
Arriba
jorge1234 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 01/Agosto/2013
Localización: Colombia
Estado: Sin conexión
Puntos: 325
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 22:13
me.[EXT-NumeroSerie]
Arriba
gabrieldrv Ver desplegable
Habitual
Habitual
Avatar

Unido: 12/Agosto/2011
Localización: Argentina
Estado: Sin conexión
Puntos: 72
Enlace directo a este mensaje Enviado: 15/Septiembre/2015 a las 22:55
No, lamentablemente no soluciona el problema. Queda como al principio. No sale ningún error pero abre el informe/formulario en el primer registro. El tema sigue siendo el mismo. Se debe poder capturar el valor de in control al que se le hace click mientras este este en un sub-formulario. Escucho ofertas y sugerencias. Como siempre agradezco sus respuestas.
E. Gabriel Drovandini
Arriba
jorge1234 Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 01/Agosto/2013
Localización: Colombia
Estado: Sin conexión
Puntos: 325
Enlace directo a este mensaje Enviado: 16/Septiembre/2015 a las 07:39
enviame la base  y te ayudo!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable