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

  • Thread starter Thread starter canoe414
  • Start date Start date
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
 
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)
 
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
 
Back
Top