Crear un Informe a partir de Campos filtrados en un Formulario

Estoy tratando de crear un Informe a partir de los datos filtrados en un Formulario. Le coloque un botón de Vista Previa con el código que anexó debajo, los datos se filtran en el Formulario pero al momento de presionar el botón de Vista Previa del informe, muestra el informe pero sin filtrar los datos que previamente fueron filtrados en el formulario. Los campos en el informe tienen los mismos nombres que en el formulario. Agradeceria mucho si me pueden decirme en donde estoy fallando.

Codigo Completo:

Option Compare Database
Option Explicit

Private Sub cmdBorrarFiltro_Click()

Me.Filter = ""

With Me
.cboUsuario.Value = Null
.cboCliente.Value = Null
.cboRegion.Value = Null
.cboStatus.Value = Null
.cboSistema.Value = Null
.cboMotivo.Value = Null
.FilterOn = False

End With
Me.RecordSource = "Resumen de Propuestas"
DoCmd.ShowAllRecords

End Sub

Private Sub cmdFiltro_Click()

Dim vUsuario As Integer
Dim vCliente As Integer
Dim vRegion As Integer
Dim vStatus As Integer
Dim vSistema As Integer
Dim vMotivo As Integer
Dim vLargo As Integer
Dim miFiltro As String
'Cogemos los valores que hayamos seleccionado como filtro
vUsuario = Nz(Me.cboUsuario.Value, -1)
vCliente = Nz(Me.cboCliente.Value, -1)
vRegion = Nz(Me.cboRegion.Value, -1)
vStatus = Nz(Me.cboStatus.Value, -1)
vSistema = Nz(Me.cboSistema.Value, -1)
vMotivo = Nz(Me.cboMotivo.Value, -1)
'Inicilizamos el filtro
miFiltro = ""
'Creamos la primera parte del filtro
If vUsuario <> -1 Then
miFiltro = " AND [Id_usuario]=" & vUsuario
End If
'Creamos la segunda parte del filtro
If vCliente <> -1 Then
miFiltro = miFiltro & " AND [Id de cliente]=" & vCliente
End If
'Creamos la tercera parte del filtro
If vRegion <> -1 Then
miFiltro = miFiltro & " AND [Id Region]=" & vRegion
End If
'Creamos la cuarta parte del filtro
If vStatus <> -1 Then
miFiltro = miFiltro & " AND [Id de situación]=" & vStatus
End If
'Creamos la quinta parte del filtro
If vSistema <> -1 Then
miFiltro = miFiltro & " AND [Id del Sistema]=" & vSistema
End If
'Creamos la sexta parte del filtro
If vMotivo <> -1 Then
miFiltro = miFiltro & " AND [Id Motivo]=" & vMotivo
End If
'Ahora cogemos la longitud del filtro
vLargo = Len(miFiltro)
'Recomponemos el filtro eliminando el primer 'AND '
If vLargo > 0 Then
miFiltro = Right(miFiltro, vLargo - 5)
Debug.Print miFiltro
End If
'Aplicamos el filtro al formulario
Me.[Subformulario Propuestas Activas para Visualizar].Form.Filter = miFiltro
Me.[Subformulario Propuestas Activas para Visualizar].Form.FilterOn = True
End Sub

Private Sub cmdPreview_Click()

Dim vUsuario As Integer
Dim vCliente As Integer
Dim vRegion As Integer
Dim vStatus As Integer
Dim vSistema As Integer
Dim vMotivo As Integer
Dim vLargo As Integer
Dim miFiltro As String
'Cogemos los valores que hayamos seleccionado como filtro
vUsuario = Nz(Me.cboUsuario.Value, -1)
vCliente = Nz(Me.cboCliente.Value, -1)
vRegion = Nz(Me.cboRegion.Value, -1)
vStatus = Nz(Me.cboStatus.Value, -1)
vSistema = Nz(Me.cboSistema.Value, -1)
vMotivo = Nz(Me.cboMotivo.Value, -1)
'Inicilizamos el filtro
miFiltro = ""
'Creamos la primera parte del filtro
If vUsuario <> -1 Then
miFiltro = " AND [Id_usuario]=" & vUsuario
End If
'Creamos la segunda parte del filtro
If vCliente <> -1 Then
miFiltro = miFiltro & " AND [Id de cliente]=" & vCliente
End If
'Creamos la tercera parte del filtro
If vRegion <> -1 Then
miFiltro = miFiltro & " AND [Id Region]=" & vRegion
End If
'Creamos la cuarta parte del filtro
If vStatus <> -1 Then
miFiltro = miFiltro & " AND [Id de situación]=" & vStatus
End If
'Creamos la quinta parte del filtro
If vSistema <> -1 Then
miFiltro = miFiltro & " AND [Id del Sistema]=" & vSistema
End If
'Creamos la sexta parte del filtro
If vMotivo <> -1 Then
miFiltro = miFiltro & " AND [Id Motivo]=" & vMotivo
End If
'Ahora cogemos la longitud del filtro
vLargo = Len(miFiltro)
'Recomponemos el filtro eliminando el primer 'AND '
If vLargo > 0 Then
miFiltro = Right(miFiltro, vLargo - 5)
Debug.Print miFiltro
End If
'Aplicamos el filtro al Reporte
DoCmd. OpenReport "Informe Filtrado", acViewPreview,, miFiltro

End Sub

1 Respuesta

Respuesta
1

El código es correcto, mira a ver si te tienes algún otro filtro o algo, porque funcionar, funciona:

http://www.filebig.net/files/JAQ3nVby4B 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas