Abrir un registro al hacer doble click en una consulta

Tengo una base de datos de libros, en una consulta que he creado, al seleccionar un autor me aparecen todos los libros que tengo introducidos del mismo en la base de datos. No sé cómo hacer para que una vez me aparecen todos los libros, al hacer doble click sobre uno de ellos me lleve a la ficha que tengo del libro.

3 respuestas

Respuesta
1

Prueba éstas líneas que te adjunto. Tendrás que sustituir los Nombres de Tabla, el Control "PagosPend" por el que tu tengas. PagosPend es el TextBox sobre el que haces el DobleClick

Declara en la cabecera del Módulo del Formulario, ... puede ser después del Option Explicit.

Dim Ctrl As Access.Control

En el Form_Load del Formulario >>

Private Sub Form_Load()
‘……….Las instrucciones que quiera
For Each Ctrl In Me.Controls
       If Ctrl.ControlType = acTextBox And Ctrl.Name = "PagosPend" Then
              Ctrl.OnDblClick = "=CuadroTextoDobleClick('" & Ctrl.Name & "')"
       End If
Next Ctrl
End Sub

En ésta Función también tendrás que hacer las sustituciones, teniendo en cuenta que: "ClientesCuotas" es el Formulario que quieres abrir, IdCliente es el Campo de la Tabla por el cual sondeas, que en éste caso coincide con el Nombre del TextBox del Formulario.

Public Function CuadroTextoDobleClick(StrControl As String)
Dim StrSQL As String
Dim Rst As DAO.Recordset

'Si el Formulario está abierto lo cierro, antes de abrirlo
If CurrentProject.AllForms("ClientesCuotas").IsLoaded Then DoCmd.Close acForm, "ClientesCuotas"

'Antes de abrir el Formulario me aseguro el que tenga registros para evitar Errores
StrSQL = "SELECT * FROM ClientesCuotas WHERE IdCliente = " & Me.IdCliente & " ORDER BY FechaPago ASC"
Set Rst = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)

If Not (Rst.EOF And Rst.BOF) Then 'Si el Recordset tiene Registros
'Abro el formulario ClientesCuotas como diálogo, pasándole como parámetro el Id del registro seleccionado
DoCmd.OpenForm FormName:="ClientesCuotas", WindowMode:=acWindowNormal, WhereCondition:="IdCliente = " & Me.IdCliente
Else 'Sino tiene Registros
MsgBox "No hay datos registrados" & vbCrLf & "La PRIMERA Cuota se da de ALTA en la Ficha de Asociados", vbInformation, "NINGUNA CUOTA PAGADA"
End If

Rst.Close
Set Rst = Nothing

End Function

Espero te sea de utilidad y si tienes dificultades me lo comentas: Jacinto

Mi respuesta es pensando que esos datos de la consulta que comentas, ya los tienes representados en un Formulario Continuo, (si no es así lo creas), y haces DobleClick sobre uno de los TextBox: Jacinto

Respuesta
1

En el código del libro, en el evento "al hacer doble click" puedes poner (suponiendo que el campo se llame "codigo" y el formulario "Libros")

docmd.openform "Libros",,,"Codigo='" & me.codigo & "'"

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas