Ошибка 3002 не удается открыть файл adodb stream

Why am I getting ‘File could not be opened?’ error in ADODB.Stream

Problem

I’m currently getting Run-time error '3002': File could not be opened on the below line FileStream.LoadFromFile fileCurrent.Path.

What I’ve Tried

  • Making sure the path is valid
    • Using the immediate window, I can see that ?fileCurrent.Path =
      C:Users(puzzlepiece87)DesktopTest.txt
  • Using a fresh text file
    • I created Test.txt as a blank file in which I typed «Hello», pushed Enter, typed «Goodbye», and then saved as the ANSI default.
  • Making sure the procedure being in a class module didn’t hurt anything
    • I tried it in a standard module as well
  • I tried moving it out of Personal.xlsb to a standard workbook
    • Using a standard workbook had the same issue

Remaining Questions

  • What am I doing wrong that is causing the 3002 error?
  • Am I misunderstanding .LoadFromFile‘s FileName parameter? It says here that it will accept any valid path and name in UNC format.

Class Module classReallyBigFiles

Option Explicit


Public Sub ReadLargeFile(ByVal fileCurrent As Scripting.File)

    Dim FileStream As ADODB.Stream
    Set FileStream = New ADODB.Stream
    FileStream.Type = adTypeText
    FileStream.LineSeparator = adCRLF
    FileStream.Mode = adModeReadWrite
    FileStream.Open
    FileStream.LoadFromFile fileCurrent.Path
    MsgBox FileStream.ReadText(-2)
    FileStream.Close

End Sub

Community's user avatar

asked Feb 7, 2018 at 19:17

puzzlepiece87's user avatar

puzzlepiece87puzzlepiece87

1,5272 gold badges19 silver badges35 bronze badges

8

I MCVE’d too hard and left out the part where I was opening the file as Binary, then trying ADODB.Stream when the file was too big to save the entire file contents to a string by that method, but I had forgotten to close the Binary attempt first.

answered Feb 7, 2018 at 22:19

puzzlepiece87's user avatar

puzzlepiece87puzzlepiece87

1,5272 gold badges19 silver badges35 bronze badges

Почему я получаю «Файл не может быть открыт?»ошибка в ADODB.Stream

проблема

Я сейчас получаюRun-time error '3002': File could not be openedв нижней строкеFileStream.LoadFromFile fileCurrent.Path,

Что я пробовал

  • Убедиться в правильности пути
    • Используя непосредственное окно, я вижу, что?fileCurrent.Pathзнак равноC:Users(puzzlepiece87)DesktopTest.txt
  • Используя свежий текстовый файл
    • Я создал Test.txt в виде пустого файла, в котором набрал «Hello», нажал «Enter», напечатал «Goodbye», а затем сохранил значение по умолчанию ANSI.
  • Убедиться, что процедура в модуле класса ничего не повредила
    • Я попробовал это также в стандартном модуле
  • Я попытался переместить его из Personal.xlsb в стандартную книгу
    • Использование стандартной рабочей книги имело ту же проблему

Оставшиеся вопросы

  • Что я делаю не так, что вызывает ошибку 3002?
  • Я недоразумение .LoadFromFile«sFileName параметр? Здесь говорится, что он примет любой допустимый путь и имя в формате UNC.

Модуль класса classReallyBigFiles

Option Explicit


Public Sub ReadLargeFile(ByVal fileCurrent As Scripting.File)

    Dim FileStream As ADODB.Stream
    Set FileStream = New ADODB.Stream
    FileStream.Type = adTypeText
    FileStream.LineSeparator = adCRLF
    FileStream.Mode = adModeReadWrite
    FileStream.Open
    FileStream.LoadFromFile fileCurrent.Path
    MsgBox FileStream.ReadText(-2)
    FileStream.Close

End Sub

2018-02-07 19:17

1
ответ

Я сделал слишком сложный MCVE и пропустил ту часть, где я открывал файл как Binary, а затем попытался ADODB.Stream, когда файл был слишком большим, чтобы сохранить все содержимое файла в строку этим способом, но я забыл закрыть Бинарная попытка первая.

2018-02-07 22:19

Почему я получаю сообщение «Не удалось открыть файл?» ошибка в ADODB.Stream

Проблема

В настоящее время я получаю Run-time error '3002': File could not be opened в строке ниже FileStream.LoadFromFile fileCurrent.Path.

Что я пробовал

  • Убедитесь, что путь действителен
    • В ближайшем окне я вижу, что ?fileCurrent.Path = C:Users(puzzlepiece87)DesktopTest.txt
  • Использование свежего текстового файла
    • Я создал Test.txt как пустой файл, в котором набрал «Hello», нажал Enter, набрал «Goodbye», а затем сохранил его как файл по умолчанию ANSI.
  • Убедиться, что процедура, находящаяся в модуле класса, ничему не повредила
    • Я тоже пробовал это в стандартном модуле
  • Я пробовал переместить его из Personal.xlsb в стандартную книгу
    • При использовании стандартной книги возникла та же проблема.

Остающиеся вопросы

  • Что я делаю не так, что вызывает ошибку 3002?
  • Я неправильно понимаю параметр .LoadFromFile FileName? Здесь написано , что он примет любой допустимый путь и имя в формате UNC.

Модуль класса classReallyBigFiles

Option Explicit


Public Sub ReadLargeFile(ByVal fileCurrent As Scripting.File)

    Dim FileStream As ADODB.Stream
    Set FileStream = New ADODB.Stream
    FileStream.Type = adTypeText
    FileStream.LineSeparator = adCRLF
    FileStream.Mode = adModeReadWrite
    FileStream.Open
    FileStream.LoadFromFile fileCurrent.Path
    MsgBox FileStream.ReadText(-2)
    FileStream.Close

End Sub

1 ответ

Лучший ответ

Я слишком усердно MCVE и упустил ту часть, где я открывал файл как двоичный, а затем пытался ADODB.Stream, когда файл был слишком большим, чтобы сохранить все содержимое файла в строку с помощью этого метода, но я забыл закрыть Бинарная попытка первая.


0

puzzlepiece87
8 Фев 2018 в 01:19

  • Remove From My Forums
  • Question

  • User-561325632 posted
    Hello, Our existing application in .NET calls ASP web page to fetch image from server.

    Following is code excerpt which is giving error in newly deployed 2008R2 64 bit server with IIS7
    The error that is thrown is from 5th line below and error# is 3002.

    I’ve exhausted my web search before posting this issue.
    I’ve used «Classic pool» with «Full control» to the directory for specific user in «Identity» in respective application pool.
    Is this even supported in 64 bit server ? Any idea is appreciated.

    Thanks
    Vaquar

    Set Stm = CreateObject(«ADODB.Stream»)
    Stm.Type = adTypeBinary
    Stm.LoadFromFile(path)
    If Err.description <> «» Then
    Response.Write(«ScanUtil.asp:LoadFromFile:»&Err.description)
    Stm.Close
    Set Stm = Nothing
    Response.End
    End If
    iSize = Stm.Size
    chunk = 524288
    Response.AddHeader «content-Length»,iSize
    For i = 1 to iSize chunk
    If Response.IsClientConnected Then
    Response.BinaryWrite Stm.Read(chunk)
    Response.Flush
    If Err.description <> «» Then
    Response.Write(«ScanUtil.asp:Read: «&path& chr(13) & chr(10)&» ErrorDesc:»&Err.Description& chr(13) & chr(10)&» ErrorNumber:»&Err.number& chr(13) & chr(10))
    Stm.Close
    Set Stm = Nothing
    Response.End
    End If
    Else
    Exit For
    End If
    Next

Answers

  • User-561325632 posted
    Solution was to add «Response.Flush» in the last chunk read.

    In my code snippet, I didn’t add following code. So after «Next» when last chunk is read, I added «Flush»

    If iSize Mod chunk > 0 Then
    If Response.IsClientConnected Then
    Response.BinaryWrite Stm.Read(iSize Mod chunk)
    Response.Flush ‘ added this line, which worked fine in II6.
    End If
    End If

    Cheers

    • Marked as answer by

      Tuesday, September 28, 2021 12:00 AM

Предложите, как улучшить StudyLib

(Для жалоб на нарушения авторских прав, используйте

другую форму
)

Ваш е-мэйл

Заполните, если хотите получить ответ

Оцените наш проект

1

2

3

4

5

Понравилась статья? Поделить с друзьями:
  • Ошибка 3002 интернет что это
  • Ошибка 30015 11 при установке офиса
  • Ошибка 300 и 302 на приоре
  • Ошибка 300 и 301 калина
  • Ошибка 300 ваз 2114 инжектор 8 клапанов