Filtro para informe
Publicado por Nuevo (5 intervenciones) el 19/03/2006 19:28:42
Cual seria la sintaxis para crear un filtro y pasarselo a DoCmd.OpenReport yo he creado la siguiente y no funciona, que esta mal?
El formulario consta de 3 cuadros combinados (cboProv, cboPer, cboQuinc) para filtrar el informe y un boton (Crear) para hechar a andar el informe
Private Sub Informes_por_proveedor_Open(Cancel As Integer)
Dim strSQL As String
strSQL = " SELECT DISTINCT [Base Proveedores].Proveedor FROM [Base Proveedores] ORDER BY [Base Proveedores].Proveedor;"
cboProv.RowSource = strSQL
End Sub
Private Sub cboProv_AfterUpdate()
Dim strSQL As String
Dim strSQLSF As String
cboPer = Null
cboQuinc = Null
strSQL = "SELECT DISTINCT [Base Informe Especial].Periodo FROM [Base Informe Especial] "
strSQL = strSQL & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "'"
strSQL = strSQL & " ORDER BY [Base Informe Especial].Periodo;"
cboPer.RowSource = strSQL
strSQLSF = "SELECT * FROM [Base Informe Especial] "
strSQLSF = strSQLSF & " WHERE [Base Informe Especial].Prov = '" & cboProv & "'"
End Sub
Private Sub cboPer_AfterUpdate()
Dim strSQL As String
Dim strSQLSF As String
cboQuinc = Null
strSQL = " SELECT DISTINCT [Base Informe Especial].Quincena FROM [Base Informe Especial] "
strSQL = strSQL & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "' And "
strSQL = strSQL & " [Base Informe Especial].Periodo = " & cboPer & ""
strSQL = strSQL & " ORDER BY [Base Informe Especial].Quincena;"
cboQuinc.RowSource = strSQL
strSQLSF = " SELECT * [Base Informe Especial] "
strSQLSF = strSQLSF & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "' And "
strSQLSF = strSQLSF & " [Base Informe Especial].Periodo = '" & cboPer & "'"
End Sub
Private Sub cboQuinc_AfterUpdate()
Dim strSQLSF As String
strSQLSF = " SELECT * FROM [Base Informe Especial] "
strSQLSF = strSQLSF & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "' And "
strSQLSF = strSQLSF & " [Base Informe Especial].Periodo = '" & cboPer & "' And "
strSQLSF = strSQLSF & " [Base Informe Especial].Quincena = '" & cboQuinc & "'"
End Sub
Private Sub Crear_Click()
Dim strSQLSF As String
Dim filtro As String
Application.Echo False
DoCmd.OpenReport "Informe Especial", acPreview, filtro
Application.Echo True
Exit Sub
End Sub
Private Sub Report_Open(Cancel As Integer)
Dim Proveedor, Periodo, Quincena, filtro As String
Proveedor = Forms!Informe_por_proveedor!cboProv
Periodo = Forms!Informe_por_proveedor!cboPer
Quincena = Forms!Informe_por_proveedor!cboQuinc
If Proveedor <> "" Then
filtro = "Proveedor='" & cboProv & "' and Periodo='" & cboPer & "' and Quincena='" & cboQuinc & "'"
End If
Me.Filter = filtro
Me.FilterOn = True
End Sub
El formulario consta de 3 cuadros combinados (cboProv, cboPer, cboQuinc) para filtrar el informe y un boton (Crear) para hechar a andar el informe
Private Sub Informes_por_proveedor_Open(Cancel As Integer)
Dim strSQL As String
strSQL = " SELECT DISTINCT [Base Proveedores].Proveedor FROM [Base Proveedores] ORDER BY [Base Proveedores].Proveedor;"
cboProv.RowSource = strSQL
End Sub
Private Sub cboProv_AfterUpdate()
Dim strSQL As String
Dim strSQLSF As String
cboPer = Null
cboQuinc = Null
strSQL = "SELECT DISTINCT [Base Informe Especial].Periodo FROM [Base Informe Especial] "
strSQL = strSQL & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "'"
strSQL = strSQL & " ORDER BY [Base Informe Especial].Periodo;"
cboPer.RowSource = strSQL
strSQLSF = "SELECT * FROM [Base Informe Especial] "
strSQLSF = strSQLSF & " WHERE [Base Informe Especial].Prov = '" & cboProv & "'"
End Sub
Private Sub cboPer_AfterUpdate()
Dim strSQL As String
Dim strSQLSF As String
cboQuinc = Null
strSQL = " SELECT DISTINCT [Base Informe Especial].Quincena FROM [Base Informe Especial] "
strSQL = strSQL & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "' And "
strSQL = strSQL & " [Base Informe Especial].Periodo = " & cboPer & ""
strSQL = strSQL & " ORDER BY [Base Informe Especial].Quincena;"
cboQuinc.RowSource = strSQL
strSQLSF = " SELECT * [Base Informe Especial] "
strSQLSF = strSQLSF & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "' And "
strSQLSF = strSQLSF & " [Base Informe Especial].Periodo = '" & cboPer & "'"
End Sub
Private Sub cboQuinc_AfterUpdate()
Dim strSQLSF As String
strSQLSF = " SELECT * FROM [Base Informe Especial] "
strSQLSF = strSQLSF & " WHERE [Base Informe Especial].Proveedor = '" & cboProv & "' And "
strSQLSF = strSQLSF & " [Base Informe Especial].Periodo = '" & cboPer & "' And "
strSQLSF = strSQLSF & " [Base Informe Especial].Quincena = '" & cboQuinc & "'"
End Sub
Private Sub Crear_Click()
Dim strSQLSF As String
Dim filtro As String
Application.Echo False
DoCmd.OpenReport "Informe Especial", acPreview, filtro
Application.Echo True
Exit Sub
End Sub
Private Sub Report_Open(Cancel As Integer)
Dim Proveedor, Periodo, Quincena, filtro As String
Proveedor = Forms!Informe_por_proveedor!cboProv
Periodo = Forms!Informe_por_proveedor!cboPer
Quincena = Forms!Informe_por_proveedor!cboQuinc
If Proveedor <> "" Then
filtro = "Proveedor='" & cboProv & "' and Periodo='" & cboPer & "' and Quincena='" & cboQuinc & "'"
End If
Me.Filter = filtro
Me.FilterOn = True
End Sub
Valora esta pregunta


0