Grrrrr.... can't access Server object ??!!??

C

canoe414

OS: W2K SP4
app: Excel 2000

I've written a sub in VBA to read in a file.
This works....
Dim fso As Object
Dim txtstream As TextStream
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtstream = fso.OpenTextFile("C:\mystuff\tteestfile.txt",
ForReading)

But I don't want to hardcode the fully-pathed filename. So I tried....
Dim fso As Object
Dim txtstream As TextStream
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtstream =
fso.OpenTextFile(Server.MapPath("tteestfile.txt"), ForReading)
but got an "Object not found" msg on line 4

Then I tried...
Dim fso As Object
Dim txtstream As TextStream
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set txtstream =
fso.OpenTextFile(Server.MapPath("tteestfile.txt"), ForReading)
but this threw an "Object not found" on line 3

Seems like for some reason my script can't "see" Server objects, yet
there are many examples on the web using this syntax. What gives?

The point of all this is to determine the current working directory,
which then is used to build up the fully-pathed filename to stick in
the OpenTextFile method. Help!

TIA,

Steve
 
A

Andrew Taylor

The Server object is used in ASP web pages and doesn't
exist in VBA. For the "current working directory", depending
on exactly what you mean by this, you can try CurDir, which
is Excel's "current directory", i.e. where File/Open looks in by
default, or ThisWorkbook.Path, which gives the directory that
contains the workbook that contains the currently-running macro.

So:

fso.OpenTextFile(CurDir & "\tteestfile.txt", ForReading)
or
fso.OpenTextFile(ThisWorkbook.Path & "\tteestfile.txt", ForReading)
 
C

canoe414

fso.OpenTextFile(CurDir & "\tteestfile.txt", ForReading)

This sorta worked - CurDir didn't return the directory value I
expected.
or
fso.OpenTextFile(ThisWorkbook.Path & "\tteestfile.txt", ForReading)

This worked great! Problem solved. Thanx so much!!

Steve
 

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