|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
Добрый день. У меня есть код для сохранения и закрытия exsel файла. Код: pascal 1. 2. 3. 4. 5. 6. 7.
Но в нем есть особенность, он закрывает все файлы exsel. Может кто подскажет как прописать закрытие определенного файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 11:13 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
Так, надеюсь, будет понятнее, как работать со сруктурой объектов: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 11:27 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 11:28 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
спасибо большое все вроде бы работает. а то неделю искал ответ по инету. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 11:37 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
И чтобы не было проблем - обязательно очищай объект, указывающий на ActiveWorkbook. До закрытия книги... А ещё лучше - вообще не используй его явно, лучше через Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 11:50 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 11:57 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
AkinaИ чтобы не было проблем - обязательно очищай объект, указывающий на ActiveWorkbook. До закрытия книги... А ещё лучше - вообще не используй его явно , лучше через Код: vbnet 1. 2. 3.
Akina, про очистку понятно. А про явность - почему? И чем, для достижения неявности, структура With предпочтительнее? Я понимаю, что ты тут от чего-то бережешься... От чего? Я именно так и делаю - как ты говоришь, но просто, по выработавшемуся стилю кодирования... И без понимания подводного камня, на который ты намекаешь. Ну, к примеру, а если будет одна лишь строка - ее все равно загонять ее в With? А если делать по аналогии, как в случае с CurrentDB, к примеру? MrShin, кстати, так и поступил: Код: plaintext
Расскажи, вобщем, поподробнее, плз. . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 12:19 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
Lieutenant Pigeonпро явность - почему? Ну вот представь... забахал ты в переменную ссылку на активный воркбук. Пробуешь его закрыть... и вот тут в зависимости от обстоятельств может переменная очиститься (=Nothing), а может и не закрыться... а если закроется, а ты вдруг где попробуешь её использовать как инициализированную? Lieutenant Pigeonа если будет одна лишь строка - ее все равно загонять ее в With? Я тебе говорю об опасности заведения объектной переменной со ссылкой на текущую книгу. Кстати, если юзер посередь процесса своими шаловливыми ручками кликнет на другую книгу - как полагаешь, чем дело кончится? Lieutenant PigeonА если делать по аналогии, как в случае с CurrentDB, к примеру? А нельзя по аналогии! Активной БД, в отличие от активной книги, как бы не бывает... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 12:34 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
Ага. Спасибо. Только, With все равно ведь не спасает, поскольку:Akinaговорю об опасности заведения объектной переменной со ссылкой на текущую книгуБудем настороже :) Только у меня и так при работе с объектами весь код проверками-перепроверками на Nothing утыкан :) . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 12:49 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
With и явное объявление отличаются только тем, что With создает временную переменную в стеке, которая освобождается автоматически сразу после End With, а задекларированная переменная лежит в куче, пока не будет либо явно удалена через =Nothing, либо удалена сборщиком мусора при выходе из процедуры. Последнее происходит не всегда, т.к. есть тонкости со счетчиками использования. Т.е. With использовать надежнее в плане памяти, в остальном - дело вкуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 13:01 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
AkinaЯ тебе говорю об опасности заведения объектной переменной со ссылкой на текущую книгу Не совсем понял принципиальное отличе заведения объектной переменной от With - будет та же ссылка на текущий активный воркбук, даже если юзер и успел кликнуть на другой или закрыть текущий. А если поменяет после начала блока (или заведения переменной), то работать код будет все равно с тем воркбуком, который был активным на момент присвоения переменной. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 13:06 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
MrShin, хорошо, что ты сам подтянулся - я хотел было пихнуть тебя, увидев в соседней ветке :) Сразу вопрос: MrShinWith и явное объявление ... М.б. обращение ? Не? А за дальнейшую раскладку - снкс. Познавательно и, главное, доступно. . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 13:15 |
|
Сохранение excel файла через макрос access
|
|||
---|---|---|---|
#18+
Lieutenant PigeonМ.б. обращение ? Не? Ну да, не объявление, конечно, а присвоение переменной указателя на объект, т.е. момент Set для объявленной переменной или запись в стек указателя для With. Для случая с With, думаю, можно использовать и термин "объявление", т.к. объявление и присвоение совпадают. Обращение - это уже работа с присвоенным указателем. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2016, 13:30 |
|
|
start [/forum/topic.php?fid=45&msg=39290309&tid=1613276]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 156ms |
0 / 0 |