Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

TExcelApplication - OLE error 800A03EC.   Найти похожие ветки 

 
e-mike ©   (2005-03-03 12:57) [0]

вызываю

EA.ActiveWorkbook.Close(True,SaveDialog.FileName,EmptyParam,lcid);

если такой файл уже существует, вылезает стандартное окно про overwrite - [Да, Нет, Отмена].
с Да/Нет всё в порядке, а при выборе Отмена выдаётся ошибка "OLE error 800A03EC"
как бороться?


 
Digitman ©   (2005-03-03 13:04) [1]

заключи строчку в try..except


 
e-mike ©   (2005-03-03 13:07) [2]

>Digitman ©   (03.03.05 13:04) [1]

угу, уже.. не помогает


 
e-mike ©   (2005-03-03 13:41) [3]

или альтернативный вопрос - как ещё можно сохранить сгенерированный в excel файл?


 
e-mike ©   (2005-03-03 14:15) [4]

выкрутился так:

 EA.ActiveWorkbook.SaveCopyAs(SaveDialog.FileName,lcid);
 EA.ActiveWorkbook.Close(False,"",EmptyParam,lcid);

закрывать workbook надо в любом случае, иначе при открытии сохранённого файла из проводника  помимо него открывается ещё
и незакрытая несохранённая книга
выше указанный вариант справляется с проблемой, но можно ведь, наверное, разом и сохранить, и закрыть, и чтобы при этом не
возникала ошибка из сабжа.
посему вопрос [0] остаётся актуальным


 
Ольга   (2005-03-03 14:16) [5]

if SaveDialog.Execute then
  EA.ActiveWorkBook.SaveAs(SaveDialog.FileName);


 
Digitman ©   (2005-03-03 14:19) [6]


> не помогает


гонишь.

класс исключения ?


 
e-mike ©   (2005-03-03 15:19) [7]

>Ольга   (03.03.05 14:16) [5]
у SaveAs целая куча параметров (не меньше 8), на которые нет справки
>Digitman ©   (03.03.05 14:19) [6]
просто
try
..
except
..
end;
должны ловиться все исключения, разве нет?


 
e-mike ©   (2005-03-03 15:22) [8]

>Ольга   (03.03.05 14:16) [5]
целых 12 параметров
и, сдаётся мне, закрывать книгу всё равно придётся, т.е.
такой вариант слабо отличается от
e-mike ©   (03.03.05 14:15) [4]


 
Digitman ©   (2005-03-03 15:26) [9]


> должны ловиться все исключения, разве нет?


по идее - обязаны ...

и что ? не "ловятся" ?

что показывает SpyXX в части принадлежности окна сообщения об ошибке ? КАКОМУ треду КАКОГО процесса это окно принадлежит ?


 
olookin ©   (2005-03-03 16:19) [10]

[7] e-mike ©   (03.03.05 15:19)

Напишите так:

procedure CloseBook(SaveBook: boolean);
begin
 if not VarIsEmpty(Excel) then begin
   Excel.Workbooks[Index].Close(SaveChanges:=SaveBook);
end;

Про SaveAs

У SaveAs все параметры описаны в справке по VB для Office и поставляются вместе с офисом. Надо только ставить этот элемент при инсталляции Office

SaveAs Method

Saves changes to the sheet (Syntax 1) or workbook (Syntax 2) in a different file.

Syntax 1

expression.SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)

Syntax 2

expression.SaveAs(Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodePage, TextVisualLayout)

expression   Required. An expression that returns a Chart or Worksheet object (Syntax 1) or a Workbook object (Syntax 2).

Filename   Optional Variant. A string that indicates the name of the file to be saved. You can include a full path; if you don’t, Microsoft Excel saves the file in the current folder.

FileFormat   Optional Variant. The file format to use when you save the file. For a list of valid choices, see the FileFormat property. For an existing file, the default format is the last file format specified; for a new file, the default is the format of the version of Excel being used.

Password   Optional Variant. A case-sensitive string (no more than 15 characters) that indicates the protection password to be given to the file.

WriteResPassword   Optional Variant. A string that indicates the write-reservation password for this file. If a file is saved with the password and the password isn’t supplied when the file is opened, the file is opened as read-only.

ReadOnlyRecommended   Optional Variant. True to display a message when the file is opened, recommending that the file be opened as read-only.

CreateBackup   Optional Variant. True to create a backup file.

AccessMode   Optional Variant. The workbook access mode. Can be one of the following XlSaveAsAccessMode constants: xlShared (shared list), xlExclusive (exclusive mode), or xlNoChange (don’t change the access mode). If this argument is omitted, the access mode isn’t changed. This argument is ignored if you save a shared list without changing the file name. To change the access mode, use the ExclusiveAccess method.

ConflictResolution   Optional Variant. Specifies the way change conflicts are resolved if the workbook is a shared list. Can be one of the following XlSaveConflictResolution constants: xlUserResolution (display the conflict-resolution dialog box), xlLocalSessionChanges (automatically accept the local user’s changes), or xlOtherSessionChanges (accept other changes instead of the local user’s changes). If this argument is omitted, the conflict-resolution dialog box is displayed.

AddToMru   Optional Variant. True to add this workbook to the list of recently used files. The default value is False.

TextCodePage   Optional Variant. Not used in U.S. English Microsoft Excel.

TextVisualLayout   Optional Variant. Not used in U.S. English Microsoft Excel.


 
e-mike ©   (2005-03-03 16:52) [11]


> Digitman ©   (03.03.05 15:26) [9]

приду домой - напишу, а исключение, возможно, вообще через мою программу не проходит, сам excel генерит и ошибку, и окно с ошибкой..
ведь окно о перезаписи не сам я делаю, с ошибкой, может быть, то же..


> olookin ©   (03.03.05 16:19) [10]

про справку офиса я и не подумал =), thnx, дальше перевода записанных макросом действий я не пошёл..


procedure CloseBook(SaveBook: boolean);
begin
if not VarIsEmpty(Excel) then begin
  Excel.Workbooks[Index].Close(SaveChanges:=SaveBook);
end;
<\code>
я получал функции, процедуры и параметры через code compl....,
close с одним параметром не заметил, там имя файла не нужно?..
сейчас проверить нет возможности проверить, а там при true как файл перезаписывается?


 
olookin ©   (2005-03-03 16:55) [12]

[11] e-mike ©   (03.03.05 16:52)

Кажется, имя файла не нужно. Если книга уже обозвана, то сохранится в существующий файл. Если нет - до будет вызван диалог.


 
e-mike ©   (2005-03-04 01:13) [13]


Digitman ©   (03.03.05 15:26) [9]

тред с процессом - мои..
да и после полного переписывания окно с ошибкой гасится при try-except..
бред, мистика или дурные ночные мозги=) больше часа безрезультатно пытался восстановить проблему, добился только, что она пролезает при try-finally


olookin ©   (03.03.05 16:55) [12]

close всё же с одим параметром нету

в общем, вопрос снимается, всем благодарности, а использовать всё же буду вариант из [4]


 
GanibalLector ©   (2005-03-04 01:59) [14]

>у SaveAs целая куча параметров (не меньше 8), на которые нет справки
Не пойму я,зачем использовать ранне связывание?Один геморой да и только!!!Чем позднее не угодило?


 
e-mike ©   (2005-03-04 11:16) [15]


> GanibalLector ©   (04.03.05 01:59) [14]

а как со скоростью?
так что сравнительную характеристику, пжста=)


 
olookin ©   (2005-03-04 14:49) [16]

[13] e-mike ©   (04.03.05 01:13)
>>close всё же с одим параметром нету

Аналогичный дельфовому пример из VB:

Close Method Example
This example closes Book1.xls and discards any changes that have been made to it.

Workbooks("BOOK1.XLS").Close SaveChanges:=False

This example closes all open workbooks. If there are changes in any open workbook, Microsoft Excel displays the appropriate prompts and dialog boxes for saving changes.

Иначе говоря, все параметры метода Close опциональные.


 
olookin ©   (2005-03-04 14:50) [17]

Немного повторюсь, кое-чего не дописал.

[13] e-mike ©   (04.03.05 01:13)
>>close всё же с одим параметром нету

Аналогичный дельфовому пример из VB:

Close Method Example
This example closes Book1.xls and discards any changes that have been made to it.

Workbooks("BOOK1.XLS").Close SaveChanges:=False

This example closes all open workbooks. If there are changes in any open workbook, Microsoft Excel displays the appropriate prompts and dialog boxes for saving changes.

Workbooks.Close (без параметров вовсе)

Иначе говоря, все параметры метода Close опциональные.


 
GanibalLector ©   (2005-03-04 23:43) [18]

>а как со скоростью?
Все отлично.Разница не существенна,но все же раннее чуток быстрее.
Зато :
-при позднем нет привязки к версии Excel(Word),а при раннем есть;
-при позднем можешь указывать только те параметры медов, которые тебе нужны;
-не доступен Code  Insight :(  Но,все решаемо


 
e-mike ©   (2005-03-05 02:27) [19]


GanibalLector ©   (04.03.05 23:43) [18]

что ж, убедительно, спасибо=)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.037 c
14-1109624929
Kerk
2005-03-01 00:08
2005.03.20
МОЖЕТ ХВАТИТ СТРОИТЬ ИЗ СЕБЯ БУДДУ?


4-1107445405
Lucifer
2005-02-03 18:43
2005.03.20
Как отследить какие пользователь нажал кнопки на клаве?


9-1103568320
Dic
2004-12-20 21:45
2005.03.20
Проблема с кириллицей в PowerDraw3.


3-1108881148
Sour
2005-02-20 09:32
2005.03.20
Mapping объектов в РСУБД


1-1109916724
Laymer
2005-03-04 09:12
2005.03.20
Application





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский