Solved

Chr(34) function not working in MS Access 2010

Posted on 2013-05-21
9
1,294 Views
Last Modified: 2013-05-21
The following code works in MS Access 2007 but not 2010. "Compile Error: Can't find project or library.

Dim path As String
Dim dir As String
Dim wdpath As String

dir = MFunctions.ReadFile("CL_FileDir.txt")
path = "C:\" & dir & "\" & fn & ".docx"
wdpath = "WinWord.exe" & " " & Chr(34) & path & Chr(34)
0
Comment
Question by:jbotts
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
  • 2
  • +1
9 Comments
 
LVL 81

Expert Comment

by:byundt
ID: 39186180
Have you set a reference to MFunctions?
Have you declared fn and provided it a value?

Absent those issues, your code is compiling in my copy of Access 2010
0
 

Author Comment

by:jbotts
ID: 39186200
In the Tools/References I do not find MFunctions. I have not declared fn and provided a value. I don't understand. Below is the code for the sub:
Public Sub OpenDoc(fn As String)
On Error GoTo PROC_ERR
    Dim path As String
    Dim dir As String
    Dim wdpath As String

    dir = MFunctions.ReadFile("CL_FileDir.txt")
    path = "C:\" & dir & "\" & fn & ".docx"
       
    wdpath = "WinWord.exe" & " " & Chr(34) & path & Chr(34)

    Shell wdpath, vbNormalFocus
PROC_EXIT:
    Exit Sub
PROC_ERR:
    MsgBox Err.Description & ": " & Err.Number
    Resume PROC_EXIT
End Sub
0
 
LVL 81

Expert Comment

by:byundt
ID: 39186207
When I put sub OpenDoc in a module sheet of a new database, the compiler rejects the statement using MFunctions--saying "Variable not defined"

Given the rest of that statement, I speculated that MFunctions might be an object in a library that you had set a reference to in Access 2007, but which you had not done so for Access 2010.
0
Independent Software Vendors: 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!

 

Author Comment

by:jbotts
ID: 39186212
byundt, my apology. MFunctions is a module and ReadFile a defined function. The code is below:

Public Function ReadFile(FName) As String
On Error GoTo PROC_ERR

    Dim fso As FileSystemObject
    Dim tso As TextStream
    Dim result As String
    Dim fpath As String
       
    fpath = MFunctions.GetDBPath & FName
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set tso = fso.OpenTextFile(fpath, ForReading)
    result = tso.ReadLine()
    ReadFile = result
PROC_EXIT:
    Exit Function
PROC_ERR:
    MsgBox Err.Description
    Resume PROC_EXIT
   
End Function
0
 

Author Comment

by:jbotts
ID: 39186216
I also got an error for the declaration:

Dim fso as FileSystemObject

Thanks
0
 
LVL 29

Accepted Solution

by:
IrogSinta earned 500 total points
ID: 39186233
To use FileSystemObject, I believe you need to set a reference to Microsoft Scripting Runtime in Tools/References.
0
 

Author Comment

by:jbotts
ID: 39186249
I don't find that reference. I tried Microsoft Script 1.0 and Microsoft Scriptlet but still ge the same compile error for Chr()
0
 
LVL 84
ID: 39186267
Almost certainly a Reference issue. You might try unchecking a reference, then closing the REf dialog, reopen it and re-check that reference.

You should also try a Debug - Compile (from the VBA Editor window). Fix any errors you find there, and continue doing that until the Compile menuitem is disabled.
0
 
LVL 29

Expert Comment

by:IrogSinta
ID: 39186273
Well instead of adding the reference, you could use late binding like so:

Dim fso As Object
Dim fsoStream As Object
'initialise the FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
0

Featured Post

Independent Software Vendors: 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!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article descibes how to create a connection between Excel and SAP and how to move data from Excel to SAP or the other way around.
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
The viewer will learn how to  create a slide that will launch other presentations in Microsoft PowerPoint. In the finished slide, each item launches a new PowerPoint presentation and when each is finished it automatically comes back to this slide: …
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question