Select Query Code
Hi All,
I have a form based on select query. On the form is a backward and forward button to allow the user to move backward and forward through the data.
The data is presented by month and I have an incredibly cumbersome piece of code that doesn't work in all situations and I know there must be an easier way.
Below is a copy of that code for the forward button, which works via a month counter and then a select statement for that counter value. Really sucks doesn't it?
Please help.
Stephen
Dim cstrOldSQL As String
intNumber = intNumber + 1
'Selects which month ahead of Month Now
If intNumber = 1 Then
If Month(Now()) + intNumber < 12 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+1) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf Month(Now()) + intNumber > 0 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()+1) And Month([Show Date1])=Month(Now())+1) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
End If
ElseIf intNumber = 2 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+2) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 3 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+3) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 4 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+4) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 5 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+5) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 6 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+6) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 7 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+7) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 8 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+8) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 9 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+9) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 10 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+10) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 11 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+11) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber = 12 Then
cstrOldSQL = "SELECT Contract.Artist, Contract.Employer, Contract.Venue, Contract.[Show Date1], Contract.[Show Date2],Contract.[Show Date3], Contract.[Show Date4],Contract.Fee,Contract.Deposit,Contract.[Deposit Paid] FROM Contract WHERE ((Year([Show Date1])=Year(Now()) And Month([Show Date1])=Month(Now())+12) AND ((Contract.Cancelled) Is Null or (Contract.Cancelled)='0')) ORDER BY Contract.Artist,Contract.[Show Date1];"
ElseIf intNumber > 12 Then
MsgBox "No other Months Available"
End If
If intNumber < 12 Then
Me.RecordSource = cstrOldSQL
Me.MonthCounter = intNumber
msg = Me.MonthCounter
Me.Requery
End If
|