Hey, I have a list box on a form that I would like to ba able to sort either by the person's name, receipt number, or by transaction date. I had found another forum post that suggested the person change the row source using vba when a button is pressed. I tried this method and it worked until I got the query the way I wanted. before I was able to fit it all in one line in VBA but now it's too big.
Here's what I have:
I honestly dont know if this is the best way to go about doing what I want. I'm open to suggestions.
Here's what I have:
Code:
Private Sub Date_Sort_Click()
Rent_Payments.RowSource = "SELECT QryRent_LastPaymentDate.Receipt_Number, QryRent_LastPaymentDate.Payment_Date, QryRent_LastPaymentDate.Last_Name, QryRent_LastPaymentDate.First_Name, QryRent_LastPaymentDate.Payment_RentTransaction, TblData_PaymentReason.Payment_Reason, QryRent_LastPaymentDate.ID_RentTransaction, QryRent_LastPaymentDate.ID_Number1, QryRent_LastPaymentDate.Receipt_Number1, QryRent_LastPaymentDate.Start_Date, QryRent_LastPaymentDate.End_Date FROM QryRent_LastPaymentDate INNER JOIN TblData_PaymentReason ON QryRent_LastPaymentDate.Reason = TblData_PaymentReason.ID_PaymentReason" & _
"WHERE (((QryRent_LastPaymentDate.Receipt_Number1) Like [Forms]![FrmRent_Receipts]![Receipt_Number] & " * " Or (QryRent_LastPaymentDate.Receipt_Number1) = 1) And ((QryRent_LastPaymentDate.Start_Date) >= [Forms]![FrmRent_Receipts]![Start_Date] Or (QryRent_LastPaymentDate.Start_Date) = 1) And ((QryRent_LastPaymentDate.End_Date) <= [Forms]![FrmRent_Receipts]![End_Date] Or (QryRent_LastPaymentDate.End_Date) = 1))" & _
"ORDER BY QryRent_LastPaymentDate.Payment_Date"
Me.Rent_Payments.Requery
End Sub
Code:
Private Sub Name_Sort_Click()
Rent_Payments.RowSource = "SELECT QryRent_LastPaymentDate.Receipt_Number, QryRent_LastPaymentDate.Payment_Date, QryRent_LastPaymentDate.Last_Name, QryRent_LastPaymentDate.First_Name, QryRent_LastPaymentDate.Payment_RentTransaction, TblData_PaymentReason.Payment_Reason, QryRent_LastPaymentDate.ID_RentTransaction, QryRent_LastPaymentDate.ID_Number1, QryRent_LastPaymentDate.Receipt_Number1, QryRent_LastPaymentDate.Start_Date, QryRent_LastPaymentDate.End_Date FROM QryRent_LastPaymentDate INNER JOIN TblData_PaymentReason ON QryRent_LastPaymentDate.Reason = TblData_PaymentReason.ID_PaymentReason" & _
"WHERE (((QryRent_LastPaymentDate.Receipt_Number1) Like [Forms]![FrmRent_Receipts]![Receipt_Number] & " * " Or (QryRent_LastPaymentDate.Receipt_Number1) = 1) And ((QryRent_LastPaymentDate.Start_Date) >= [Forms]![FrmRent_Receipts]![Start_Date] Or (QryRent_LastPaymentDate.Start_Date) = 1) And ((QryRent_LastPaymentDate.End_Date) <= [Forms]![FrmRent_Receipts]![End_Date] Or (QryRent_LastPaymentDate.End_Date) = 1))" & _
"ORDER BY QryRent_LastPaymentDate.Last_Name"
Me.Rent_Payments.Requery
End Sub
Code:
Private Sub Receipt_Sort_Click()
Rent_Payments.RowSource = "SELECT QryRent_LastPaymentDate.Receipt_Number, QryRent_LastPaymentDate.Payment_Date, QryRent_LastPaymentDate.Last_Name, QryRent_LastPaymentDate.First_Name, QryRent_LastPaymentDate.Payment_RentTransaction, TblData_PaymentReason.Payment_Reason, QryRent_LastPaymentDate.ID_RentTransaction, QryRent_LastPaymentDate.ID_Number1, QryRent_LastPaymentDate.Receipt_Number1, QryRent_LastPaymentDate.Start_Date, QryRent_LastPaymentDate.End_Date FROM QryRent_LastPaymentDate INNER JOIN TblData_PaymentReason ON QryRent_LastPaymentDate.Reason = TblData_PaymentReason.ID_PaymentReason" & _
"WHERE (((QryRent_LastPaymentDate.Receipt_Number1) Like [Forms]![FrmRent_Receipts]![Receipt_Number] & " * " Or (QryRent_LastPaymentDate.Receipt_Number1) = 1) And ((QryRent_LastPaymentDate.Start_Date) >= [Forms]![FrmRent_Receipts]![Start_Date] Or (QryRent_LastPaymentDate.Start_Date) = 1) And ((QryRent_LastPaymentDate.End_Date) <= [Forms]![FrmRent_Receipts]![End_Date] Or (QryRent_LastPaymentDate.End_Date) = 1))" & _
"ORDER BY QryRent_LastPaymentDate.Receipt_Number"
Me.Rent_Payments.Requery
End Sub
I honestly dont know if this is the best way to go about doing what I want. I'm open to suggestions.