[nx_heading style=»underlined» heading_tag=»h2″ size=»32″]Ошибка Visual Fox Pro IDispatch exception code 0 from Microsoft Excel[/nx_heading]
Одна из ошибок родом из «каменного века», до сих появляющаяся у пользователей медицинских организаций Казахстана на некотором специфичном (но совершенно не уникальном) программном обеспечении (ПО).
Данные программы все еще принудительно используются в бюджетных учреждениях и в 2018 году, пользователи вынуждены с ними работать, а системные администраторы разбираться с проблемами возникающими между новым программным обеспечением и этим «программным мусором» из далекого 2008 года.
Проблемы возникают при переносе этого «хлама» на новые компьютеры.
[nx_heading style=»underlined» heading_tag=»h3″ size=»28″]Ошибка IDispatch exception code 0 from Microsoft Excel: невозможно получить свойство Select класса Worksheet[/nx_heading]
Происхождение данной ошибки лежит на древних программистах с отсутствующей логикой и непониманием, что сторонние программы имеют свойство устаревать и не использоваться в будущем, поэтому жестко привязавших свои творения к определенной версии программного обеспечения.
Ошибка построения отчета вызвана отсутствием библиотек старых версий Microsoft Office.
В случае появления ошибки Microsoft Excel невозможно получить свойство Select класса Worksheet, установите старую версию Microsoft Office, например 2010 года, благо Windows 10 все еще позволяет её установить (рекомендованы версии Microsoft Office 2003 или 2007).
Правомерность использования данных версий программного обеспечения — вопрос к министерству здравоохранения РК.
[nx_spacer size=»80″][nx_heading style=»underlined» heading_tag=»h3″ size=»28″]Ошибка A share violations has occured.[/nx_heading]
Еще одна из возможных ошибок при работе с данным программным обеспечением использующим Microsoft Visual FoxPro.
Данная ошибка возникает при невозможности этого древнего ПО создать отчеты, если на компьютере уже запущенно приложение Microsoft Excel.
Выключите уже запущенные версии Microsoft Excel и древнее ПО успешно сможет создать отчет не вызывая эту ошибку.
[nx_heading style=»coloredline» heading_tag=»h4″ size=»24″ align=»left»]От автора:[/nx_heading]
Если же проблему разрешить не удалось или появились дополнительные вопросы, задать их можно на нашем форуме, в специальном разделе.
[nx_box title=»Поделиться этой статьей» style=»glass» box_color=»#ED303C»]Если данная статья вам помогла и вы хотели бы в ответ помочь проекту Mhelp.kz, поделитесь этой статьей с другими:
[/nx_box]
- Remove From My Forums
-
Вопрос
-
Part of my main Foxpro program converts various Excel data files from outside sources to Excel 97/95 to be appended later on in other parts of the program. Here is my conversion code:
PROCEDURE excelconv
oExcel = CREATEOBJECT(«Excel.Application»)
xlworkbook = oExcel.Workbooks.Open(ALLTRIM(insert_config.location)+»»+m_file)
xlworkbook.SaveAs(ALLTRIM(insert_config.location)+»»+LEFT(ALLTRIM(m_file),LEN(ALLTRIM(m_file))-4)+».xls»,43)
*RELEASE oExcel
xlworkbook.saved = .t.
xlworkbook.close
oExcel.quit
RETURNThis has worked for clients that have 2003 and 2007 Excel.
I just upgraded to 2010 and was runing a test and got this error on the «saveas» line:
OLE IDispatch exception code 0 from Microsoft Excel: Unable to get the SaveAs property of the workbook class..
I attempted to change the file format to -4143 instead on 43. The program processed the SaveAs OK, but when I attempted to append the file to the database I got an «Invalid Microsoft Excel File format» when I attempted to append.
Are there other file format codes that will duplicate what I am doing now? I appreciate your help on this. Thanks
Ответы
-
Excel 97/95 format is an unusual choice — essentially there are two copies of the workbook in one file, one in Excel 97 format and the other in Excel 95 format. I can understand why they have dropped support for it in 2010.
I would recommend using either Excel 97-2003 format [if you don’t need it in 95 format]: xlExcel8 (56) or Excel 95 format [if you do]: xlExcel7 (39)
Bill Manville. Excel MVP, Oxford, England. www.manville.org.uk
-
Предложено в качестве ответа
27 июля 2010 г. 17:44
-
Помечено в качестве ответа
Sally Tang
29 июля 2010 г. 6:51
-
Предложено в качестве ответа
Содержание
- Excel исключение ole idispatch
- Excel исключение ole idispatch
- Excel исключение ole idispatch
Excel исключение ole idispatch
Доброе время суток!
У меня очередной дурацкий вопрос.
В определенный момент возникли у заказчика проблемы с отчетами в Excel. При вызове отчета возникает ошибка «Исключение Ole IDispatch, код 0 из Microsoft Office Excel: Эта команда недоступна, так ка истек срок действия лицензии на данное приложение. «. При этом сам по себе Excel (лицензионный) работает нормально.
Отчеты формирую, создавая объект Excel.Application и вызывая его методы.
Что мне делать в тако ситуации? Отказываться от отчетов в Excel заказчик не хочет.
P.S. Варианты типа «предложить заказчику удалить лицензионный Excel и поставить пиратский», или «поставить другую версию Excel» мне не подходят.
ну нет телепатов на форуме, неужели это так трудно понять?
> При вызове отчета возникает ошибка
замечательно. А теперь просто скажи, на какой конкретно строке кода вылетает эта ошибка
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
Re: Проблема с Excel |
---|
SimpleMo Автор |
Сообщений: 25
Откуда: Пермь
Дата регистрации: 28.08.2006
извини, но у любой мало-мальски приличной программы должна быть регистрация ошибок. Если ее нет — напиши, это много времени не потребует. И тогда ты хотя бы сможешь выяснить процедуру и номер строки, на которой произошла ошибка. Р потом уже у себя найдешь конкретный код этой строки
а зная конкретный код будет понятно, что конкретно вызывает эту ошибку
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
извини, но все очень просто — здесь очень мало народу сидит просто от нечего делать. И заниматься расследованием чьих-то подозрений просто нет времени.
Если у кого-то была такая ошибка именно при запуске экселя, он об этом напишет.
И если ты сам заинтересован в решении проблем своих приложений, ты сам должен предоставить максимум информации об проблеме. Тогда ее реально решить
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
резюме того обсуждения — это никак не связано с конкретным приложением (там такая ошибка вылетала на TechnologiCS)
Исправлено 1 раз(а). Последнее : AlexSSS, 17.10.07 17:38
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
потом тыкаешь на файл в эксплорере и запускается этот скрипт. Скрипт на пять секунд выводит окно экселя
если у тебя в фоксе ошибка именно на CreateObject(«EXCEL.APPLICATION»), то она наверняка повторится и здесь. И в этом случае ты можешь показать заказчику, что проблема не у тебя в проге, а в его компе.
Исправлено 1 раз(а). Последнее : AlexSSS, 17.10.07 20:58
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
Re: Проблема с Excel |
---|
SimpleMo Автор |
Сообщений: 25
Откуда: Пермь
Дата регистрации: 28.08.2006
> Я добавил отлов ошибок в прогу, которая строит отчеты.
errorlog будет полезен и для всей программы
> Еще вопрос, нет ли каких-нибудь средств строить отчеты в Excel, без использования OLE?
боюсь, что самому сделать хороший отформатированный отчет в экселе без createobject(‘excel.application’) почти нереально или очень сложно
либо надо использовать какие-то сторонние продукты, например MS Reporting Service
Исправлено 1 раз(а). Последнее : AlexSSS, 24.10.07 10:19
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
regsvr32 mscomctl.ocx
и все.
Исправлено 1 раз(а). Последнее : Ydin, 24.10.07 10:21
Re: Проблема с Excel |
---|
Ydin
Сообщений: 7608 |
Изучить формат файла XLS и формировать его из ФОКСА
Re: Проблема с Excel |
---|
AleksM
Сообщений: 17876 |
а чтобы не быть зависимым от того, стоит ли эксель у заказчика, еще и написать свой аналог совместимого экселя
не помещает и встроенный в программу антивирус
все это хорошо, но ориентироваться под кривые машины или криво установленный софт — это неправильно. И если у заказчика на компе команда
CreateObject(«EXCEL.APPLICATION»)
выдает ошибку, это обозначает, что проблемы с конкретным компом и софтом на нем, а не в программе. Но тут надо быть точно уверенным, что ошибка вылетает именно на этой программе. При работе с экселем у меня на некоторых компах вылетают ошибки, но точно зная команду, на которой они вылетают, чаще всего оказывается, что проблема или в версии экселя (тогда приходится переделывать отчет так, чтобы не использовать такие команды) или отсутствии принтера по умолчанию (сейчас уже встроил в свой код предупреждение, которое вылетает в этом случае). Один или два раза были виноваты вирусы. Несколько раз приходилось переставлять офис
Исправлено 1 раз(а). Последнее : AlexSSS, 24.10.07 10:49
Источник
Excel исключение ole idispatch
Всем привет — стабильно ловится ошибка 1429 — Исключение OLE IDispatch, код 0 из Microsoft Office Excel:
Невозможно получить свойство Open класса Workbooks..
Класс создается и другие его методы доступны и работают нормально, например loXLS.WorkBooks.Add()
Причем наблюдается только в exe, из фокса эта процедура отрабатывает нормально.
Убил полдня на эксперименты .
vfp9 sp1, server 2008
Re: Проблема с Excel |
---|
AlexSSS
Сообщений: 6113 |
Равиль
Всем привет — стабильно ловится ошибка 1429 — Исключение OLE IDispatch, код 0 из Microsoft Office Excel:
Невозможно получить свойство Open класса Workbooks..
Класс создается и другие его методы доступны и работают нормально, например loXLS.WorkBooks.Add()
Причем наблюдается только в exe, из фокса эта процедура отрабатывает нормально.
Убил полдня на эксперименты .
vfp9 sp1, server 2008
Re: loXLS.WorkBooks.Open(m.lcXlsFile) — err 1429 |
---|
pioner-v
Сообщений: 1656 |
Re: loXLS.WorkBooks.Open(m.lcXlsFile) — err 1429 |
---|
Равиль Автор |
Сообщений: 6482
Откуда: Уфа
Дата регистрации: 01.08.2003
к сожалению до имени файла дело не доходит — т.к. не обнаружен метод open .
Но что любопытно — скомпилировал в vfp7 — косяка нет ))
Попробую дробить этот модуть — часть на 7-ке, часть на 9-ке ))
Re: loXLS.WorkBooks.Open(m.lcXlsFile) — err 1429 |
---|
pioner-v
Сообщений: 1656 |
Антивирус или вирус?
Как получена ссылка loXLS? Права «запускающего» IDE и exe, были ли запросы UAC-а?
Макро тут совсем не при чём — это вредный совет, сбивает с правильного пути поиска причин проблемы
Re: loXLS.WorkBooks.Open(m.lcXlsFile) — err 1429 |
---|
Igor Korolyov
Сообщений: 34580 |
Для начала, я бы разбил на «слагаемые»
Re: loXLS.WorkBooks.Open(m.lcXlsFile) — err 1429 |
---|
Владимир Максимов
Сообщений: 14012 |
Re: loXLS.WorkBooks.Open(m.lcXlsFile) — err 1429 |
---|
Равиль Автор |
Сообщений: 6482
Откуда: Уфа
Дата регистрации: 01.08.2003
Igor Korolyov
Антивирус или вирус?
Как получена ссылка loXLS? Права «запускающего» IDE и exe, были ли запросы UAC-а?
Макро тут совсем не при чём — это вредный совет, сбивает с правильного пути поиска причин проблемы
Возможно что-то с правами — добился чтобы процесс выполнялся при явном запуске пользователем EXE на сервере
осталась проблема при запуске EXE из планировщика (хотя с теми же правами от имени того же пользователя)
Для начала, я бы разбил на «слагаемые»
loBooks = loXLS.Workbooks
loBook = loBooks.Open(m.lcXlsFile)
Довольно часто Com-объекты не могут «переварить» «многочлены». А по одному члену за раз — вполне стабильно работают. Но даже если это не поможет, подобное разбиение позволит точнее определить, на каком члене иерархии произошел сбой.
Пробовал и так, спасибо — в субботу еще потестируем
Исправлено 1 раз(а). Последнее : Равиль, 16.12.10 18:26
Источник
Excel исключение ole idispatch
Здравствуйте!
Есть шаблон документа Excel: три страницы — на первой данные и диаграмма типа гистограммы по ним, вторая и третья пустые. Мне нужно скопировать диаграмму и передать её в Word. Как это сделать, да и вообще обратиться к диаграмме? В программе пишу следующее:
objXL = CreateObject(«Excel.APPLICATION»)
loBook = m.objXL.Workbooks.Add(Put + ‘INCLUDEDefectsTemplate.xlt’)
ObjXL.ActiveChart.Copy()
— не работает. Пишу через ActiveChart, т.к. работает команда
А если добавить выделение объекта?
Re: Диаграммы Excel |
---|
Божья_коровка
Сообщений: 25659 |
Re: Диаграммы Excel |
---|
bdv1983 Автор |
Сообщений: 133
Откуда: Старая Русса
Дата регистрации: 07.09.2007
An Error has occured:
«OLE IDispatch exception code 0 from Microsoft Office Excel: Невозможно получить свойство Select класса ChartArea..»
(1429)(OLE IDISPATCH EXCEPTION CODE 0 FROM MICROSOFT OFFICE EXCEL: НЕВОЗМОЖНО ПОЛУЧИТЬ СВОЙСТВО SELECT КЛАССА CHARTAREA.)
. и т. д.
Re: Диаграммы Excel |
---|
bdv1983 Автор |
Сообщений: 133
Откуда: Старая Русса
Дата регистрации: 07.09.2007
Строчка Select лишняя.
objXL = CreateObject(«Excel.APPLICATION»)
loBook = m.objXL.Workbooks.Add(Put + ‘INCLUDEDefectsTemplate.xlt’)
ObjXL.ActiveChart.ChartArea.Copy().
Работает. Спасибо Божья_коровка.
Пока вопросов нет. Разве что как обратиться к диаграммам на других страницах, если бы они ам были. Выделением другой страницы? А если на странице несколько диаграмм, как к ним?
Re: Диаграммы Excel |
---|
Божья_коровка
Сообщений: 25659 |
Re: Диаграммы Excel |
---|
bdv1983 Автор |
Сообщений: 133
Откуда: Старая Русса
Дата регистрации: 07.09.2007
Создал диаграмму на второй странице. Запсисал макрос:
Sheets(«Лист2»).Select
ActiveSheet.ChartObjects(«Диагр. 1»).Activate
ActiveChart.ChartArea.Select
objXL.Sheets(2).Select
objXL.ActiveSheet.ChartObjects(«Диагр. 1»).Activate
и ошибка:
(1429)(OLE IDISPATCH EXCEPTION CODE 0 FROM MICROSOFT OFFICE EXCEL: НЕВОЗМОЖНО ПОЛУЧИТЬ СВОЙСТВО CHARTOBJECTS КЛАССА WORKSHEET.)
Источник
- Remove From My Forums
-
Question
-
I have an app that I’m using to export data from a table into an Excel worksheet. After the export, I want to open the worksheet in Excel. Need help with code to do this. Thanks!
Answers
-
You may try:
lcFile = «c:tempACH_EXPORT.XLS»
oWSH = CREATEOBJECT(«wscript.shell»)
oWSH.Run(«Excel» + » » + lcFile, 3, .T.)
-
heyblue21 wrote: Update: The file name in variable «lcFile» is never getting created, but I don’t see the issue with the syntax there. Maybe another set of eyes can detect this?
The examples posted here read from an excel file named in the lcFile variable. This file has to pre-exist and be in the proper foilder you are looking at.
If you want to create an excel file (i.e. save a spereadsheet) using automation you have to write to it (with the oWorkbook.SaveAs() method for example).
See examples:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=457681&SiteID=1
http://fox.wikis.com/wc.dll?Wiki~ExcelAutomation
-
COPY TO lcFile TYPE XLS
Make that:
COPY TO (lcFile) TYPE XL5
Right now, you’re creating a file called lcFile.XLS and it’s in Excel 2 format.
Tamar
All replies
-
loExcel = Createobject(«Excel.Application»)
With loExcel
.Workbooks.Open(lcFile)
.Visible = .t.
Endwith
-
This is my code…
lcFile = «c:tempACH_EXPORT.XLS»
COPY TO lcFile TYPE XLS
WAIT WINDOW STARTXL_LOC NOWAIT
loExcel = Createobject(«Excel.Application»)
With loExcel
.Workbooks.Open(lcFile)
.Visible = .t.
Endwith
But I’m getting this error:
—————————
ACH Corporate Batch History Error Message
—————————
An error has occurred:«OLE IDispatch exception code 0 from Microsoft Office Excel: ‘c:tempACH_EXPORT.XLS’ could not be found. Check the spelling of the file name, and verify that the file location is correct.
If you are trying to open the file from your list of most recently»
(1429) (OLE IDISPATCH EXCEPTION CODE 0 FROM MICROSOFT OFFICE EXCEL: ‘C:TEMPACH_EXPORT.XLS’ COULD NOT BE FOUND. CHECK THE SPELLING OF THE FILE NAME, AND VERIFY THAT THE FILE LOCATION IS CORRECT.
IF YOU ARE TRYING TO OPEN THE FILE FROM YOUR LIST OF MOST RECENTLY)
click, 20
S:FINANCIAL TEAM SHAREDPEP+FOXPRO PROJECTSACH CORPORATE BATCH HISTORY 2TESTACH.EXERecord details in error log files?
—————————
Yes No
————————— -
Update: The file name in variable «lcFile» is never getting created, but I don’t see the issue with the syntax there. Maybe another set of eyes can detect this?
-
You may try:
lcFile = «c:tempACH_EXPORT.XLS»
oWSH = CREATEOBJECT(«wscript.shell»)
oWSH.Run(«Excel» + » » + lcFile, 3, .T.)
-
heyblue21 wrote: Update: The file name in variable «lcFile» is never getting created, but I don’t see the issue with the syntax there. Maybe another set of eyes can detect this?
The examples posted here read from an excel file named in the lcFile variable. This file has to pre-exist and be in the proper foilder you are looking at.
If you want to create an excel file (i.e. save a spereadsheet) using automation you have to write to it (with the oWorkbook.SaveAs() method for example).
See examples:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=457681&SiteID=1
http://fox.wikis.com/wc.dll?Wiki~ExcelAutomation
-
COPY TO lcFile TYPE XLS
Make that:
COPY TO (lcFile) TYPE XL5
Right now, you’re creating a file called lcFile.XLS and it’s in Excel 2 format.
Tamar
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS
Contact US
Thanks. We have received your request and will respond promptly.
Log In
Come Join Us!
Are you a
Computer / IT professional?
Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts - Keyword Search
- One-Click Access To Your
Favorite Forums - Automated Signatures
On Your Posts - Best Of All, It’s Free!
*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Students Click Here
ERROR 1429 — A workbook must contain at least one visible worksheet.ERROR 1429 — A workbook must contain at least one visible worksheet.(OP) 16 Nov 16 09:51 I’m getting below error while trying to generate a Excel report through Fox pro. I get below error at times while doing so. Error executing program: Error 1429, Line 4 — OLE IDispatch exception code 0 from Microsoft Office Excel: A workbook must contain at least one visible worksheet. To hide, delete, or move the selected sheet(s), you must first insert a new sheet or unhide a sheet that is already hidden… My understanding is that the report doesn’t has any data to show, and hence no worksheets are created. Question: Can’t foxpro create empty worksheet, if there is no data? Red Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts. |
Join Tek-Tips® Today!
Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.
Here’s Why Members Love Tek-Tips Forums:
- Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More…
Register now while it’s still free!
Already a member? Close this window and log in.
Join Us Close
Part of my main Foxpro program converts Excel files to Excel 97/95 to be appended later on in other parts of the program. Here is my conversion code:
PROCEDURE excelconv
oExcel = CREATEOBJECT(«Excel.Application»)
xlworkbook = oExcel.Workbooks.Open(ALLTRIM(insert_config.location)+»»+m_file)
xlworkbook.SaveAs(ALLTRIM(insert_config.location)+»»+LEFT(ALLTRIM(m_file),LEN(ALLTRIM(m_file))-4)+».xls»,43)
*RELEASE oExcel
xlworkbook.saved = .t.
xlworkbook.close
oExcel.quit
RETURN
This has worked for clients that have 2003 and 2007 Excel.
I just upgraded to 2010 and was runing a test and got this error on the «saveas» line:
OLE IDispatch exception code 0 from Microsoft Excel: Unable to get the SaveAs property of the workbook class..
I attempted to change the file format to -4143 instead on 43. The program processed the SaveAs OK, but the file gave me an «Invalid Microsoft Excel File format» when I attempted to append.
I appreciate your help on this. Thanks