J
John Phelan
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â€
Thanks,
Jphelan
“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â€
Thanks,
Jphelan