|
|
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
У меня officeXP. В коде : Dim word AS Object Set word = CreateObject("Word.application") доходит до второй строчки и пропадает строка степа. При этом никакой ошибки не выдается просто тихо заканчивает выполнение программы. Проверяла этто в VB6 - все работает, а в Accesse не работает, хоть тресни. Правда мне тут подсказали, что это будет работать в 97 или в 2000 офисе. А как бы это заставить работать в хрюшном оффисе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 15:48 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Не правильно подсказали. В 2002 тоже работает. У тебя просто проблемы в офисе (если, конечно , ты нам сказать ничего не забыл типа On Error resume next в начале программы- тогда проблемы - в тебе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 15:56 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor ты нам сказать ничего не забыл неее:) я ничего не забылА у меня вообще нету On error . Я еще не сделала обработчик ошибок, так как дальше второй строчки не могу итти. Так ты предлагаешь office переустановить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 16:19 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
>Так ты предлагаешь office переустановить? проблемы могут быть не только в офисе -но и в виндоусе, в правах доступа. Сам ворд открывается нормально? Попробуй для начала залить сервис-паки - возможно они исправят что-нибудь. Попробуй так же подключит Word через ссылки (Microsoft Word 10.0 Object Libliry) и сделай Dim w As Word.Application Set w = New Word.Application w.Visible = True так же попробуй вставить в свой текст проги word.Visible = True - что-нибудь покажется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 16:48 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
у меня Microsoft Word 10.0 Object Library итак была подключена))) этто я сразу проверила... а вот посему то CreateObject не работает, а так как ты предложил работает Dim w As Word.Application Set w = New Word.Application ! так что пасиба за помощь) тока глюк все равно не поняла! ну лана покатит и New Word.Application ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 16:58 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Kassa ... Классный ник! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:09 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Pavel ты первый кто оценил мой ник))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:13 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
И фотка классная. Твоя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:20 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Нет! Джулии Робертс в детстве!))) канечно моя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:25 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Круто! Давай по аське переписываться! Только я свою не помню... Завтра на работе посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:27 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Kassa Потому что писать нужно так. Dim wd As New Word.Application (А НЕ OBJECT) Set wd = CreateObject("Word.Application") 2 Pavel Успехов:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:30 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Сорри. Погорячился - с Object тоже работает, просто никогда так не писал:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:33 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Hummer так я же не с бухты-барахты написала Dim word AS Object и т.д. я этто с helpа содрала, там никакие ограничения не написаны! 2 Pavel Мою аську могешь в инфе посмотреть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:33 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Hummer Dim wd As New Word.Application После этого никаких Create не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:34 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2ЛП >Dim wd As New Word.Application >>После этого никаких Create не надо Не учи девушку плохому стилю :) == А вот почему CreateObject... не работает - не понятно. Все-таки надо до конца разобраться, а то еще что-нибудь загадочное выскочит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:38 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Лох Позорный а как насчет сроки инициализации ? все равно нужно SET Wd = New Word.Application ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:39 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Уточню про "хороший" стиль: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:41 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Такой момент. Написал я нет так: Dim xl As New Excel.Application Set xl = CreateObject("Excel.Application") А вот так: Dim wd As New Word.Application SET Wd = New Word.Application (ЛП) New излишне. Меня интересует другое - что кардинально переменится при различном написании. Кроме стиля написания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:56 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2Hummer >Меня интересует другое - что кардинально переменится при различном написании. Кроме стиля написания. Если верить Гетцу :), то компилятору (или как там его) прийдется перед каждой! строкой вставлять проверку "а был ли проиницинизилорован объект". Вот на это время проверок уходит время (мало, вообще-то), но общая рекомендация: объявить и уже в нужном месте проинициализировать (=New...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 17:59 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Идею понял. Спасибо за разъяснение. Но если строки идут друг за другом разницы нет?:) Между Dim xl As New Excel.Application Set xl = CreateObject("Excel.Application") И Dim w As Word.Application Set w = New Word.Application ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 18:04 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2Hummer >Dim xl As New Excel.Application >Set xl = CreateObject("Excel.Application") Опять ты что-то напутал :) Наверное ты имел ввиду Dim xl as Excel.App... set xl=new Excel.App... Надо найти оригинал из Гетца, но думаю компилятор (или как его там) все-таки везде строки всатвляет - не будет же он разбираться есть, например, операторы типа Goto, вызовы процедур, наличие обработчика ошибок (из-за него выполнение программы может вообще перескочить в непредсказкемое место). Во всяком случае у меня уже на автомате "двойная" запись инициализации объекта. Если потестисть (кто сделает?) - то производительность не намного ухудшиться (если вообще это будет заметно). Скорей всего очень будет заметно на больших объемах. Но проверять как-то впадлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 20:51 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Может не совсем понятно вопрос ставлю. Я спросил, в чём разница между записью: Dim xl As Excel.Application (тут было ещё New - смотри в примечании). Set xl = CreateObject("Excel.Application") И Dim w As Word.Application Set w = New Word.Application Конкретно интересует разница во вторых строчках. Чтобы было понятно - это идёт в самом начале процедуры, потом создаются объекты типа книга и лист (в екселе), а уж потом идёт к ним обращение. Получил ответ: Если верить Гетцу :), то компилятору (или как там его) прийдется перед каждой! строкой вставлять проверку "а был ли проиницинизилорован объект". Вот на это время проверок уходит время (мало, вообще-то), но общая рекомендация: объявить и уже в нужном месте проинициализировать (=New...) Из этого следует, что если к объекту идёт обращение - то придётся делать проверку. Но обращения быть не может, т.к. объекта ещё нет:) Т.е. нет инициализации. Или опять всё не так понял?:) Убрал New при декларировании Excel. C New мне ситуация понятно, при екселе он лишен. Вопрос в следующем - между Create в первом случае и New во втором разница есть? По-моему нет. P.S. Я понял, излишне писать New при обяъвлении переменной xl, но на производительности это не сказывается. В этом и состояло замечание ЛП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 09:28 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
Hummer писал:P.S. Я понял, излишне писать New при обяъвлении переменной xl, но на производительности это не сказывается. В этом и состояло замечание ЛП. Ты неправильно понял что объявление As New не сказывается на производительности. Именно сказывается. Один раз объявляешь переменную As New, и потом у тебя при каждом обращении к объекту проверяется - Nothing он или нет (если Nothing - создается новый) А вот при разнов создании объектов (Set xl = CreateObject("Excel.Application") и Set w = New Word.Application ) есть разница во времени создания (не проверял правда), но на дальнейшей работе сказываться не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 09:42 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
2 Лох Позорный Спасибо за науку. Т.е. такое объявление переменных (as New) не есть гуд. Это применяется к любым объектам, как я понимаю? Т.е. при работе с классами возникает такая же ситуация? Лучше писать не Dim cm New As MySuperClass, а Dim cm As MySuperClass Set cm = New MySuperClass Если я обяъвил его как New и начинаю использовать сразу же, то разницы никакой нет. При работе с классами я пишу именно так... Вот прочитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 10:24 |
|
||
|
Глюк с VB в Accesse!
|
|||
|---|---|---|---|
|
#18+
По поводу неработоспособности первоначального примера: Word - это имя библиотеки. Думаю, поэтому и не работал. Код: plaintext Обратите внимание, что второе слово тоже оказалось с маленькой буквы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 16:18 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32313889&tid=1678413]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
98ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 448ms |

| 0 / 0 |
