Abrir varios formularios desde un cuadro de lista

Como puedo hacer para que desde un Cuadro de Lista con Selección Múltiple pueda abrir varios formularios. Tengo en el cuadro de lista una lista de mis clientes, y lo que quiero es seleccionar varios para que me abra un formulario con el resumen del expediente de cada uno para poder salir a atenderlos en ruta, así poder tener los expedientes de los clientes a mano impresos o mi tablet en PDF.

Me procuce el error que me abre el formulario con el expediente pero me brinda todos los registros y quiero que me muestre solo los que yo he marcado, es decir en el cuadro de lista hay 1500 clientes aprox, y quiero marcar solo 10, pero me abre y me muestra los 1500 clientes. Creo que el error esta en la línea del DoCmd.OpenForm "Expediente de Cuenta", acViewPreview, , "IdCuenta IN(" & CuentasVisitar & ")"

Espero me puedan colaborar ya que no soy muy diestro en este tema, utilizo Access 2007

Aquí el código que he utilizado

Private Sub Comando206_Click()
Dim CuentasVisitar As String
Dim ElementoSeleccionado As Variant

  
    For Each ElementoSeleccionado In Me.ListaCuentas.ItemsSelected
        CuentasVisitar = CuentasVisitar & Me.ListaCuentas.ItemData(ElementoSeleccionado) & ","
    Next
        If Len(CuentasVisitar) > 0 Then
        CuentasVisitar = Left(CuentasVisitar, Len(CuentasVisitar) - 1)
        DoCmd.OpenForm "Expediente de Cuenta", acViewPreview, , "IdCuenta IN(" & CuentasVisitar & ")"

                      
    Else
        MsgBox "Por favor, selecciona alguna Cuenta por visitar"
    End If

End Sub

2

2 respuestas

Respuesta
1

No sé si es un error al escribir el código en la pregunta, pero entre el IN y el paréntesis debe haber un espacio:

DoCmd.OpenForm "Expediente de Cuenta", acViewPreview, , "IdCuenta IN (" & CuentasVisitar & ")"

Al resto del código no le veo ningún fallo.

Sigue el problema

Respuesta

Estoy algo oxidado en Visual Basic pero tratare de ayudarte...

¿Si colocas un MSGbox(CuentasVisitar) esa cadena tiene solo los registros seleccionados? Esa seria la primera prueba, para validar que los datos que estas filtrando están correcto. Claro comentando la linea

DoCmd.OpenForm "Expediente de Cuenta", acViewPreview, , "IdCuenta IN(" & CuentasVisitar & ")"

Esto te sirve para validar si la cadena que estas usando para abrir los "expedientes" contiene solo lo marcado

Como pongo el MSGBox?

Depende mucho de la versión del visual basic utilizada, pero aquí tienes un ejemplo extraído del MSDN

https://msdn.microsoft.com/es-es/library/139z2azd%28v=vs.90%29.aspx 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas