[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 930
  • Last Modified:

Error Number: 2447 There is an invalid use of the . (dot) or ! operator or invalid parentheses.; Access 2010

I have the follwoing error when I run the following line in code:

FilesDir = Dir(Me.FilePath)

it has been working in Access 2000, but since I changed to access 2010 I get this error.

Premissions are OK

0
JohnTall
Asked:
JohnTall
1 Solution
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Is FilePath the Control Source for a control on a Form?

If so, try changing the Name property of the control to

txtFilePath ... and then try:

FilesDir = Dir(Me.txtFilePath)

mx
0
 
mikesussCommented:
Need a bit more code.  Me normally refers to the mdb that you are in, so I am not sure what you are trying to do.
0
 
JohnTallAuthor Commented:
Dim FilesDir As String
FilesDir = Dir(Me.FilePath)

IT CRASHES AT THIS LINE
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
"Me normally refers to the mdb that you are in,"
Well, that's not quite correct.  ME refers to the Form, Report or Class Module you are in.  And Form/Report modules are class modules.

JohnTall:

Did you try what I suggested in my first post ?

mx
0
 
khairilCommented:
Hi,

If you like to get file path on the current Access file then try this

Dim FilesDir As String
FilesDir = CurrentProject.Path & "\" & CurrentProject.Name

OR you can try this which I think similar to your case...

Dim FilesDir As String
FilesDir = Dir(CurrentProject.Name)


Enjoy!
0
 
JohnTallAuthor Commented:
FilePath is a textbox on the form with the following control source:

=Application.CurrentProject.Path & "\" & CurrentDb.Properties("AppTitle") & "_Files\Inbox\"
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
JohnTall:

Did you try what I suggested in my first post ?
0
 
JohnTallAuthor Commented:
Yes, I changed the name property of the textbox to txtFilePath and I changed the reference in code as well, but the same error continues.

When I look at the text box in the form it displays #Name? instead of the path, maybe that some feature is missing. ?
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
Has the AppTitle custom property been set for this MDB / ACCDB ?

mx
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
For example, this works in a text box for me:

=[Application].[CurrentProject].[Path] & "\" & [Currentdb].[Properties].[Count]

0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
But if I do this in the VBA Immediate window:

?Currentdb.Properties("AppTitle")

I get error 3270 ... Property Not Found.  And I get #Error in the text box.

mx
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
HOWEVER ... technically, I don't think the Application and CurrentDB objects were ever supposed to work like that in a text ... and I'm pretty sure Microsoft has 'tightened' this up in A2010.  I've already seen at least on instance of a similar thing in my A2010 testing.

You many need to create a Function and call it from the text box

Public Function mGetPath() As String
   mGetPath =Application.CurrentProject.Path & "\" & CurrentDb.Properties("AppTitle") & "_Files\Inbox\"
End Function

and then in the Text Box Control Source ...

=mGetPath()

mx
0
 
JohnTallAuthor Commented:
Yes, it was set using the following code:

Public Sub SetMDBAppTitle()
   Dim dbs As Object
   Dim prp As Object
   Dim strTitle As String

   Const PROPERTY_NOT_FOUND As Integer = 3270
   Const TEXT_TYPE As Integer = 10
   ' Equivalent to DAO dbText data type.
   Const BOOL_TYPE As Integer = 1
   ' Equivalent to DAO dbBoolean data type.
   Const LONG_TYPE As Integer = 4
   ' Equivalent to DAO dbLong data type.

   On Error GoTo ErrorHandler

   Set dbs = Application.CurrentDb
   strTitle = "Setting *.MDB Startup Options"

   ' Try to set the property. If it fails, the property does not exist.
   dbs.Properties("AppTitle") = strTitle

   ' Refresh the title bar to reflect the change.
   Application.RefreshTitleBar

ExitLine:
   dbs.Close
   Set dbs = Nothing
   Set prp = Nothing
   Exit Sub

ErrorHandler:
   If Err.Number = PROPERTY_NOT_FOUND Then
      ' Create the new property.
      Set prp = dbs.CreateProperty("AppTitle", TEXT_TYPE, strTitle)
      dbs.Properties.Append prp
      Resume Next
   Else
      Resume ExitLine
   End If

End Sub



0
 
JohnTallAuthor Commented:
Thanks mx
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
You are welcome.

I will confirm this tonight on my A2010 system ... see if that works in a text box.  Pretty sure not.

mx
0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now