SQL查询以过滤MS Access中的多个条件

时间:2019-03-16 22:39:40

标签: vba ms-access

因此,我现在只需要构建一个SQL查询字符串,即可让我根据三个文本框过滤数据。

用户在第一个文本框中输入发票编号,因此,如果该文本框不为空,则查询应使用该文本进行过滤。

其他两个文本框是“日期”和“位置”。两者一起使用,因此,如果“日期和位置”文本框不为null,则按日期和位置进行过滤。

这就是我现在拥有的:

 SELECT tbl1Facturas.Verificado, tbl1Facturas.Factura, tbl1Facturas.Fecha, tbl5Localidades.NombreLocalidad, tbl6Suplidores.NombreSuplidor, tbl1Facturas.Subtotal, tbl1Facturas.[IVU MUNICIPAL], tbl1Facturas.[IVU ESTATAL], tbl1Facturas.[Total de Compra], tbl1Facturas.[Exento al IVU ESTATAL], tbl1Facturas.[Credito al Subtotal], tbl1Facturas.[Credito IVU Municipal], tbl1Facturas.[Credito IVU ESTATAL], tbl1Facturas.[Metodo de Pago], tbl1Facturas.[ID Metodo Pago], tbl1Facturas.MetodoPago_PDF, tbl1Facturas.Factura_PDF
 FROM (tbl1Facturas INNER JOIN tbl5Localidades ON tbl1Facturas.Localidad_ID = tbl5Localidades.ID) INNER JOIN tbl6Suplidores ON tbl1Facturas.Suplidor_ID = tbl6Suplidores.ID
 WHERE tbl1Facturas.Factura = '" & Nz(Me.Text16) & "' 
 ORDER BY tbl1Facturas.Fecha;"

谢谢!

1 个答案:

答案 0 :(得分:1)

我将使用类似的方法(在示例中,我使用输入框而不是文本框,然后可以根据需要进行调整):

Sub test ()

Dim Invoiceno, myDate, myPlace
Dim SQLString As String

Invoiceno = InputBox(“Enter Invoice Number”)
MyDate = InputBox(“Enter Date”) ‘here you can add a Date Picker 

MyPlace = InputBox(“Enter Place”)

If not Invoiceno is nothing then 

SQLString = ‘here your SQL string to search by invoice number’

Else:

SQLString = ‘here your SQL string to search by Date & Place’

End If

CurrentDb.Execute SQL String

End Sub
相关问题