My Calendar control button stopped working.

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"
 
T

TonyT

Did you keep the function IsFormOpen?
Have you tried to compile the code to see what other errors you get?
Can you set a breakpoint on the command100 click 1st line and step thru code
until it falls over?

Just a few thought,

TonyT..

jphelan1242 said:
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"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top