Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Visual Basic OLE.ReadFromFile Error, Ошибка метода ReadFromFile 
:(
    Опции темы
aleonov
Дата 15.9.2004, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.9.2004

Репутация: нет
Всего: нет



Здравствуйте.

Есть некоторая прога(Visual Basic) которая имеет OLE-объект. Далее Ole1.SourceDoc="c:\filename.xls".
На форме отображается содержимое ... все в порядке.

Во множестве примерах есть некоторый код который вешается на Form_Load(), который загружает xls файл в контейнер. Код след:

Private Sub Form_Load()
Open OLE1.SourceDoc For Binary As #1
'Открываем файл
OLE1.ReadFromFile 1
'закрываем файл
Close #1
End Sub

Проблема только в том, что у меня этот код не работает. При вызове метода ReadFromFile 1 выдается ошибка:
"Run-time error 31037.
System Error &H800401 (-2147221054). Содержимое OLESTREAM имеет не верный формат."

Помогите пожалуйста, не могу понять почему не читает из файла, вроде метОда есть должна работать, да и в ИНЕТЕ по всюду именно такой код в примерах при открытии xls-файла.
PM MAIL   Вверх
-Mikle-
Дата 16.9.2004, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



У меня тож выдает ошибку... вообще я никода не пользовался VB объектом OLE... другие средства есть, более надежные...

Тебе что именно надо? Для каких целей xls файл открывать? Работать с его данными, просто отобразить содержимое, или что? Почему именно этот вариант(через OLE control) ты выбрал? Объясни конкретно задачу, может другой способ будет лучше...


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
aleonov
Дата 16.9.2004, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.9.2004

Репутация: нет
Всего: нет



Ну на самом деле мне нужно написать конверталку XSL в TXT. Первое что в голову пришло это OLE, да и методы вроде удобные, не работает вот только. Т.е. перебрать все записи xls и вывести в txt (далее может обрабатывать как-нить буду, еще точно не знаю).
PM MAIL   Вверх
-Mikle-
Дата 16.9.2004, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



А такой вариант тебе не подойдет?

Код
Sub ConvExcelToText()
  Const xlCSV = 6
  Const xlText = -4158
  Dim ExApp As Object
  Dim ExWB As Object
 
  Set ExApp = CreateObject("Excel.Application")
  Set ExWB = ExApp.Workbooks.Open("C:\book.xls")
 
  'используй одну из след строк
  'текст с разделителем 'табуляция'
  ExWB.SaveAs FileName:="C:\book.txt", FileFormat:=xlText, CreateBackup:=False
  'текст с разделителем 'запятая'
  ExWB.SaveAs FileName:="C:\book.csv", FileFormat:=xlCSV, CreateBackup:=False
 
  ExWB.Close False
  ExApp.Quit
 
  Set ExWB = Nothing
  Set ExApp = Nothing
End Sub



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
aleonov
Дата 16.9.2004, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 15.9.2004

Репутация: нет
Всего: нет



Работает biggrin.gif
Большое спасибо smile.gif
Наедеюсь мне не придется визуализацию какую-нить еще делать или что-то еще, что может завести в эти OLE объекты smile.gif
Добавлено @ 09:14
Жаль, мне не дают тебе рейтинг поднять sad.gif
PM MAIL   Вверх
-Mikle-
Дата 16.9.2004, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Цитата(aleonov @ 16.9.2004, 13:11)
Жаль, мне не дают тебе рейтинг поднять

Спасибо smile.gif, не расстраивайся, для меня главно помочь

Цитата(aleonov @ 16.9.2004, 13:11)
Наедеюсь мне не придется визуализацию какую-нить еще делать или что-то еще, что может завести в эти OLE объекты


А насчет визуализации, то может это подойдет?
Код
Sub Test()
Dim ExApp As Object
Dim ExWB As Object

 Set ExApp = CreateObject("Excel.Application")
 Set ExWB = ExApp.Workbooks.Open("C:\book.xls")
 ExApp.visible=true
...
 ' Cдесь можно работать со всеми объектами Excel
 Msgbox exWB.activeworksheet.range("A1").value 'покажет значение в ячейке A1
...
 Set ExWB = Nothing
 Set ExApp = Nothing
End Sub


После выполнения Test Excel будет открыт, но ежли надо закрыть, то нет проблем ExApp.quit Удачи!!! smile.gif

Уточню, будет открыт, даже если твою прогу закрыть... т.е. не зависимо

Это сообщение отредактировал(а) -Mikle- - 16.9.2004, 14:54


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0542 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.