J
jphelan1242
After opening and clicking on the popup calendar command control
button, "fdlgCal"; I click on a given date. The date is suppose to
then appear in a date field next to the control. Instead, I get the
following error:
"Microsoft Office Access
The expression On Click you entered as the event
property setting
produced the following error: The expression you
entered has a function
name that Microsoft Office Access can't find.
*The expression may not result in the name of a macro,
the name of a user-defined
function, or [Event Procedure].
* There may have been an error evaluating the function,
event, or macro."
Every thing use to work. My fear is that I changed one thing to many
during the process of debugging my whole application, and ended up
breaking this function.
Below is a description of how I have things set up:
1. I have a form called: "Employee"
2. It has a date field with the Control Source/Name: "startdte"
3. Next to this field is a calendar button named "Command100" with
an On Click Event Procedure written as follows:
"Private Sub Command100_Click()
On Error GoTo ErrLine
startdte = CalendarDlg(startdte)
ExitLine:
Exit Sub
ErrLine:
Resume ExitLine
End Sub"
4. Under my list of Modules; I have a module called "basCalDlg"
with the following Visual Basic Code:
"Option Compare Database 'Use database order for string comparisons
Option Explicit
Private Const cCalendarDialog = "fdlgCal"
'Const cModule = "basCalDlg"
Public Function CalendarDlg(Optional ByVal vPassedDate As Variant) As
Variant
'
' This is the public entry point.
' If the passed in date is missing (as it will be if someone just
opens the Calendar form),
' start on the current day. Otherwise, start with the date that is
passed in.
On Error GoTo ErrLine
Dim vStartDate As Variant
' If they passed a value at all, attempt to use it as the start
date.
vStartDate = IIf(IsMissing(vPassedDate), date, vPassedDate)
' OK, so they passed a value that wasn't a date. Just use today's
date in that case, too.
If Not IsDate(vStartDate) Then vStartDate = date
DoCmd.OpenForm FormName:=cCalendarDialog, WindowMode:=acDialog,
OpenArgs:=vStartDate
' You won't get here until the calendar dialog is closed or hidden.
'
' If the calendar dialog is still loaded get the final chosen date
from the form.
' If it isn't, return Null.
If IsFormOpen(cCalendarDialog) Then
CalendarDlg = Forms(cCalendarDialog).Value
DoCmd.Close acForm, cCalendarDialog
Else
CalendarDlg = IIf(IsDate(vPassedDate), vPassedDate, Null)
End If
ExitLine:
Exit Function
ErrLine:
Resume ExitLine
End Function"
button, "fdlgCal"; I click on a given date. The date is suppose to
then appear in a date field next to the control. Instead, I get the
following error:
"Microsoft Office Access
The expression On Click you entered as the event
property setting
produced the following error: The expression you
entered has a function
name that Microsoft Office Access can't find.
*The expression may not result in the name of a macro,
the name of a user-defined
function, or [Event Procedure].
* There may have been an error evaluating the function,
event, or macro."
Every thing use to work. My fear is that I changed one thing to many
during the process of debugging my whole application, and ended up
breaking this function.
Below is a description of how I have things set up:
1. I have a form called: "Employee"
2. It has a date field with the Control Source/Name: "startdte"
3. Next to this field is a calendar button named "Command100" with
an On Click Event Procedure written as follows:
"Private Sub Command100_Click()
On Error GoTo ErrLine
startdte = CalendarDlg(startdte)
ExitLine:
Exit Sub
ErrLine:
Resume ExitLine
End Sub"
4. Under my list of Modules; I have a module called "basCalDlg"
with the following Visual Basic Code:
"Option Compare Database 'Use database order for string comparisons
Option Explicit
Private Const cCalendarDialog = "fdlgCal"
'Const cModule = "basCalDlg"
Public Function CalendarDlg(Optional ByVal vPassedDate As Variant) As
Variant
'
' This is the public entry point.
' If the passed in date is missing (as it will be if someone just
opens the Calendar form),
' start on the current day. Otherwise, start with the date that is
passed in.
On Error GoTo ErrLine
Dim vStartDate As Variant
' If they passed a value at all, attempt to use it as the start
date.
vStartDate = IIf(IsMissing(vPassedDate), date, vPassedDate)
' OK, so they passed a value that wasn't a date. Just use today's
date in that case, too.
If Not IsDate(vStartDate) Then vStartDate = date
DoCmd.OpenForm FormName:=cCalendarDialog, WindowMode:=acDialog,
OpenArgs:=vStartDate
' You won't get here until the calendar dialog is closed or hidden.
'
' If the calendar dialog is still loaded get the final chosen date
from the form.
' If it isn't, return Null.
If IsFormOpen(cCalendarDialog) Then
CalendarDlg = Forms(cCalendarDialog).Value
DoCmd.Close acForm, cCalendarDialog
Else
CalendarDlg = IIf(IsDate(vPassedDate), vPassedDate, Null)
End If
ExitLine:
Exit Function
ErrLine:
Resume ExitLine
End Function"