John Clark
John.Clark at niagaracounty.com
Tue Oct 11 13:21:08 CDT 2005
I've working on an A2K form (frmMonthly) that is sends parameters to query (qryMonthly), which in turn provides data for a subform (sfMoDetail) on this same form. Basically you type in an employee number and a year (both text boxes...yr defaults to current year), choose a time off type and a month (each using combo boxes), and it fills in a starting date and ending date, in the fields, "txtBegDate" and "txtEndDate." The query uses "txtEmpNum", "cboTOType", "txtBegDate" and "txtEndDate" to return the dates and times that an employee took off that month. This works like a charm, if I type in an employee number (10080 is my test), and pick from the combos w/the mouse...the year is untouched, because it is already the current year and my test month is JUN, 2005. However, if I use the keyboard only to pick everything, nothing is returned, even if I then revert to using the mouse...once I've used the keyboard, I must exit the form and enter it again, for it to work. I currently have absolutely no clue as to why this is happening. After each of the fields (not including "txtEmpNum") the AfterUpdate event fires and calls a sub called "SetDates." This sub, as you can probably guess, sets the values of "txtBegDate" and "txtEndDate" and then requeries the subform. The dates are being filled in correctly, in both scenarios, and I have temporarily added two text boxes to verify that the values being passed to the query are what I am expecting. As I was writing this, it occurred to me that I hadn't tried running the query directly in my troubleshooting process, while using the keyboard...I just did and the query itself runs. The code in the sub, which probably has nothing to do with this, is: ***************************************** BEG CODE SNIPPET ************************************** Private Sub SetDates() Dim NumDays As Integer Dim SummaryText As String Select Case cboMonth.Value Case 1, 3, 5, 7, 8, 10, 12 'Jan, Mar, May, Jul, Aug, Oct, & Dec have 31 days NumDays = 31 Case 4, 6, 9, 11 'Apr, Jun, Sep, & Nov have 30 days NumDays = 30 Case 2 'February - could be leap year If txtYr.Value Mod 100 = 0 Then 'If it is a century year, it must be div. by 400. If txtYr.Value Mod 400 = 0 Then NumDays = 29 Else NumDays = 28 End If Else 'If not century yr, test if div by 4 for leap yr. If txtYr.Value Mod 4 = 0 Then NumDays = 29 Else NumDays = 28 End If End If End Select 'Set Beg & End dates for given month, for use as parameters in query txtBegDate.Value = cboMonth.Value & "/" & 1 & "/" & txtYr.Value txtEndDate.Value = cboMonth.Value & "/" & NumDays & "/" & txtYr.Value 'Set summary text to let user know exactly what is being queried SummaryText = "This data represents all " & cboTOType.Value & " time taken, for employee " SummaryText = SummaryText & txtEmpNum & ", for " & cboMonth.Value & ", " & txtYr lblSummary.Caption = SummaryText sfMoDetail.Requery End Sub ***************************************** END CODE SNIPPET ************************************** Please save my sanity and send me a clue here! Take care! John W Clark