"Compile Error: Function or Interface Marked as Restricted..."

R

Ron B.

I've recently converted an Access97 file to Access2003. During the
conversion, there were "compilation errors" due to old DAO syntax no
longer supported.

I hired an Access programer to fiddle with the code and he got it
working. Been using the program for over a month.... when we just
started getting the following error:

"Compile Error: Function or Interface Marked as Restricted..."

On the following code:
#################
Dim mydb As Database, MyQuery As QueryDef
If IsNull(GreigePattern) Then
Exit Sub
End If
Set mydb = CurrentDb()
'Set MyQuery = mydb.CreateQueryDef("Change Dept") ' Create query.
If IsNull(mydb.QueryDefs("Change Dept")) Then
Set MyQuery = mydb.CreateQueryDef("Change Dept") ' Create query.
Else
Set MyQuery = mydb.QueryDefs("Change Dept")
End If
' Set SQL property.
MyQuery.SQL = "UPDATE DISTINCTROW GreigePattern SET
GreigePattern!Department = [prmDepartment] WHERE
GreigePattern!GreigeNumber = [prmGreige] AND GreigePattern!KnitterCode =
[prmKnitter];"
MyQuery.Parameters("prmDepartment") =
[Forms]![frmColorRequests]![cboDepartment]
MyQuery.Parameters("prmGreige") = [Forms]![frmColorRequests]![GreigeNumber]
MyQuery.Parameters("prmKnitter") = [Forms]![frmColorRequests]![cboKnitter]
MyQuery.Execute ' Invoke query.
MyQuery.Close ' Close query.
mydb.DeleteQueryDef ("Change Dept") ' Delete query.
#############

The error is with the very lastline: "DeleteQueryDef"

This type of code, with the DeleteQueryDef is used in about 5 other
places in the program. they all error.

Any Ideas??? Especially, since it has been working just fine, till a
day or two ago... no updates of any kind have been made either...
that I know of.

Thanks!
Ron
 
B

Brendan Reynolds

The mystery is not why it stopped working, but how it ever worked at all in
Access 2003. It shouldn't. It should be changed to ...

mydb.QueryDefs.Delete "Change Dept"
 
R

Ron B.

THANK YOU KIND SIR!

I changed the code and viola! it works like a charm.

Wierd... it TRULY DID work for about 3 weeks with the original
command... I don't understand. But.... I don't care either.

Truly appreciated!
Ron
 
D

david epsom dot com dot au

Cool!

Not 'Method or Function not found', but 'Marked as Restricted'
- ie only for use with the DAO2535 type library
(And note that the display syntax parser still recognizes it!)

Since 'restricted' means only that VBA can't bind to the interface,
I'm wondering if removing the DAO2535 type library failed to
correctly mark the code as uncompiled?

(david)


Brendan Reynolds said:
The mystery is not why it stopped working, but how it ever worked at all
in Access 2003. It shouldn't. It should be changed to ...

mydb.QueryDefs.Delete "Change Dept"

--
Brendan Reynolds (MVP)

Ron B. said:
I've recently converted an Access97 file to Access2003. During the
conversion, there were "compilation errors" due to old DAO syntax no
longer supported.

I hired an Access programer to fiddle with the code and he got it
working. Been using the program for over a month.... when we just
started getting the following error:

"Compile Error: Function or Interface Marked as Restricted..."

On the following code:
#################
Dim mydb As Database, MyQuery As QueryDef
If IsNull(GreigePattern) Then
Exit Sub
End If
Set mydb = CurrentDb()
'Set MyQuery = mydb.CreateQueryDef("Change Dept") ' Create query.
If IsNull(mydb.QueryDefs("Change Dept")) Then
Set MyQuery = mydb.CreateQueryDef("Change Dept") ' Create query.
Else
Set MyQuery = mydb.QueryDefs("Change Dept")
End If
' Set SQL property.
MyQuery.SQL = "UPDATE DISTINCTROW GreigePattern SET
GreigePattern!Department = [prmDepartment] WHERE
GreigePattern!GreigeNumber = [prmGreige] AND GreigePattern!KnitterCode =
[prmKnitter];"
MyQuery.Parameters("prmDepartment") =
[Forms]![frmColorRequests]![cboDepartment]
MyQuery.Parameters("prmGreige") =
[Forms]![frmColorRequests]![GreigeNumber]
MyQuery.Parameters("prmKnitter") =
[Forms]![frmColorRequests]![cboKnitter]
MyQuery.Execute ' Invoke query.
MyQuery.Close ' Close query.
mydb.DeleteQueryDef ("Change Dept") ' Delete query.
#############

The error is with the very lastline: "DeleteQueryDef"

This type of code, with the DeleteQueryDef is used in about 5 other
places in the program. they all error.

Any Ideas??? Especially, since it has been working just fine, till a
day or two ago... no updates of any kind have been made either... that
I know of.

Thanks!
Ron
 
B

Brendan Reynolds

I think you know more about that kind of thing than I do, David, so if you
think that's a likely explanation, my guess would be that you're probably
right! :)

--
Brendan Reynolds (MVP)

david epsom dot com dot au said:
Cool!

Not 'Method or Function not found', but 'Marked as Restricted'
- ie only for use with the DAO2535 type library
(And note that the display syntax parser still recognizes it!)

Since 'restricted' means only that VBA can't bind to the interface,
I'm wondering if removing the DAO2535 type library failed to
correctly mark the code as uncompiled?

(david)


Brendan Reynolds said:
The mystery is not why it stopped working, but how it ever worked at all
in Access 2003. It shouldn't. It should be changed to ...

mydb.QueryDefs.Delete "Change Dept"

--
Brendan Reynolds (MVP)

Ron B. said:
I've recently converted an Access97 file to Access2003. During the
conversion, there were "compilation errors" due to old DAO syntax no
longer supported.

I hired an Access programer to fiddle with the code and he got it
working. Been using the program for over a month.... when we just
started getting the following error:

"Compile Error: Function or Interface Marked as Restricted..."

On the following code:
#################
Dim mydb As Database, MyQuery As QueryDef
If IsNull(GreigePattern) Then
Exit Sub
End If
Set mydb = CurrentDb()
'Set MyQuery = mydb.CreateQueryDef("Change Dept") ' Create query.
If IsNull(mydb.QueryDefs("Change Dept")) Then
Set MyQuery = mydb.CreateQueryDef("Change Dept") ' Create query.
Else
Set MyQuery = mydb.QueryDefs("Change Dept")
End If
' Set SQL property.
MyQuery.SQL = "UPDATE DISTINCTROW GreigePattern SET
GreigePattern!Department = [prmDepartment] WHERE
GreigePattern!GreigeNumber = [prmGreige] AND GreigePattern!KnitterCode =
[prmKnitter];"
MyQuery.Parameters("prmDepartment") =
[Forms]![frmColorRequests]![cboDepartment]
MyQuery.Parameters("prmGreige") =
[Forms]![frmColorRequests]![GreigeNumber]
MyQuery.Parameters("prmKnitter") =
[Forms]![frmColorRequests]![cboKnitter]
MyQuery.Execute ' Invoke query.
MyQuery.Close ' Close query.
mydb.DeleteQueryDef ("Change Dept") ' Delete query.
#############

The error is with the very lastline: "DeleteQueryDef"

This type of code, with the DeleteQueryDef is used in about 5 other
places in the program. they all error.

Any Ideas??? Especially, since it has been working just fine, till a
day or two ago... no updates of any kind have been made either...
that I know of.

Thanks!
Ron
 

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