12 декабря, среда 17:14
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Знатокам Visual Basic

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Знатокам Visual Basic

    Добрый день
    Вот проблема -
    Написаная программа на VB6 запускается только на компьютере где установлен VB.
    На подопытной машине, те компоненты, что в проекте - установлены и зарегистрированы (типа как Scrrun.dll, msvbvm60.dll...). При запуске скомпилированной программы выдается ошибка -
    Run-time “91”.
    Object variable or With block variable not set
    Есть ли у кого идеи?

  • #2
    Идеи просты. Берешь и отлаживаешь пошагово. Внимательно смотришь. Да и на яндексе просто вагон подобных проблем. Сотни людей уже решали такую задачу. Думаю, что яндекс вам поможет!

    Комментарий


    • #3
      Serg_K Попробуйте воспользоваться Deployment Wizard. Напихает кучу всяких ненужностей, зато поможет разобраться где лежит проблема в незарегистрированном компоненте или в самой программе.
      Romik

      Комментарий


      • #4
        Есть идеи, что не все компоненты зарегистрированы или имеют не те версии...
        программы на VB6 много всяких внешних компонент используют(что жудко неудобно), и даже ActiveX-ных...

        Комментарий


        • #5
          Да Deployment Wizard действительно помог, на подопытную машину были инсталлированы ASYCFILT.DLL, COMCAT.DLL, DAO350.DLL, EXPSRV.DLL, MSDBRPTR.DLL, MSDERUN.DLL, MSEXCH35.DLL, MSEXCL35.DLL, MSJET35.DLL, MSJINT35.DLL, MSJTER35.DLL, MSRD2X35.DLL, MSRDO20.DLL, MSREPL35.DLL, MSSTDFMT.DLL, msvbvm60.dll, MSVCRT.DLL, MSVCRT40.DLL, MSXBSE35.DLL, OLEAUT32.DLL, OLEPRO32.DLL, RDOCURS.DLL, SCRRUN.DLL, VB5DB.DLL, VB6STKIT.DLL, VBAJET32.DLL, msflxgrd.ocx, MSACC8.OLB, MSWORD8.OLB, STDOLE2.TLB :-))))
          А как это дело прокатит с Win XP?

          Комментарий


          • #6
            Serg_K Он типа умный... Просечет, что стоит более "современная"/"глюкавая" версия компоненты и устанавливать не станет... API компонент тьфу-тьфу-тьфу мелкомягкие не меняют для уникальных имен файлов. Так что ИМХО прокатит и на XP... Если есть желание поковыряться, то копируем по одному на девственную машину, регистрим/анрегистрим, смотрим что происходит. Принадлежность dll читаем на сайте мелкомягкого.
            Последний раз редактировалось Romik; 24.03.2005, 16:32. Причина: Дополнение
            Romik

            Комментарий


            • #7
              Romik
              в ХР программа установилось без проблем
              А вот ещё вопросик-
              Можно ли в MSFlexGrid изменять значения ячеек, с последующим сохранением в БД?

              Комментарий


              • #8
                Вы меня извините, но я считаю, что так задача не должна решаться, как она решилась:

                "Да Deployment Wizard действительно помог, на подопытную машину были инсталлированы ASYCFILT.DLL, COMCAT.DLL, DAO350.DLL, EXPSRV.DLL, MSDBRPTR.DLL, MSDERUN.DLL, MSEXCH35.DLL, MSEXCL35.DLL, MSJET35.DLL, MSJINT35.DLL, MSJTER35.DLL, MSRD2X35.DLL, MSRDO20.DLL, MSREPL35.DLL, MSSTDFMT.DLL, msvbvm60.dll, MSVCRT.DLL, MSVCRT40.DLL, MSXBSE35.DLL, OLEAUT32.DLL, OLEPRO32.DLL, RDOCURS.DLL, SCRRUN.DLL, VB5DB.DLL, VB6STKIT.DLL, VBAJET32.DLL, msflxgrd.ocx, MSACC8.OLB, MSWORD8.OLB, STDOLE2.TLB :-))))
                А как это дело прокатит с Win XP?"

                Я НЕ СЧИТАЮ, ЧТО ЭТО ВЕРНОЕ РЕШЕНИЕ!!!

                Комментарий


                • #9
                  Serg_K Можно ли в MSFlexGrid изменять значения ячеек, с последующим сохранением в БД? а как вы считаете он только для просмотра сделан?
                  Дважды досчитал до бесконечности (с)

                  Комментарий


                  • #10
                    Serg_K Если я не ошибаюсь, можно привязать к гриду объект Data, в котором уже определить обновляемый рекордсет и этот объект сам будет следить за своевременным отражением измененных ячеек в БД. Лично мне данный способ не нравится (1. не люблю когда что-то коннектится к базе без моего ведома по желанию юзера, 2. возникнет необходимость в аккуратном отслеживании транзакции и в тригерах, 3. где-то читал про неудовлетворительную скорость работы из-за "дергания" БД почем зря), предпочитаю работать через классические диалоги.
                    Romik

                    Комментарий


                    • #11
                      Serg_K Можно ли в MSFlexGrid изменять значения ячеек, с последующим сохранением в БД? поглядел в мсдн

                      Microsoft FlexGrid
                      Msflxgrd.ocx
                      MsHFlx98.chm

                      The FlexGrid control displays tabular data. Unlike the DBGrid, it is read-only. It has different formatting capabilities than the DBGrid control; it can sort, merge, and format tables containing strings and pictures.
                      Так чта без диалогов никак ИМХО
                      Дважды досчитал до бесконечности (с)

                      Комментарий


                      • #12
                        daemon_daemon и зачем тогда он нужен? Посмотерь базу и проще можно. Слышал, что есть другие гриды от ComponentOne, те позволяют редактировать данные. Может есть у кого за пЫво???
                        Romik да вот так и написал (грид + ADO)

                        Комментарий


                        • #13
                          Сообщение от Энциклопедия
                          Вы меня извините, но я считаю, что так задача не должна решаться, как она решилась.....Я НЕ СЧИТАЮ, ЧТО ЭТО ВЕРНОЕ РЕШЕНИЕ!!!
                          Вы меня извините, но предложите правильное решение!

                          Только про яндекс и другие поисковики не надо, я про них знаю.

                          Комментарий


                          • #14
                            Правивльное решение будет, если вы за собой не будете таскать не разработанные своими руками библиотеки и регистрировать их. То есть надо сделать так, чтобы все, что системное, устанавливалось системой, а не Вашими руками. Как это делается вариантов много. Я не видел Ваш код и не могу сказать в чем у вас главная причина того, из-за чего у Вас такие проблемы возникли. Опять же не забывайте о понятии, что ПО пишется под ОС, то есть у каждой ОС (и даже их версий) свои нюансы.

                            Комментарий


                            • #15
                              Serg_K Есть неплохие компоненты от компании Sheridan, правда они шареварные,
                              но если заглушить муки совести в инете можно найти кряк... http://www.shersoft.com/
                              Несколько лет назад мучался с выбором грида, их понравился больше всех. Дают примеры как на VB, так и на MFC... Компонент называется Sheridan DataWidgets. Шлите пиво!
                              Romik

                              Комментарий


                              • #16
                                Энциклопедия
                                Опять же не забывайте о понятии, что ПО пишется под ОС, то есть у каждой ОС (и даже их версий) свои нюансы.
                                А что то мне подсказывает, что хороший программист пишет ПО не привязываясь к ОС (сразу оговорюсь к однотипной ОС) обрабатывать нюансы надо или не использовать заменяя их сторонними компонентами.
                                С уважением

                                SunDog

                                Комментарий


                                • #17
                                  Кстати библиотеку MSVCRT.DLL тащить не надо. Она входит в состав любого загрузчика Windows. А вот, если вы возьмете эту библиотеку от XP, а ставить будете, например, на NT, то убьете загрузчик NT. Так что лучше эту библиотеку никогда в проект не включать, если нет уверенности, что ваш проект не будет ставиться на более ранние версии Windows.

                                  Комментарий


                                  • #18
                                    Сообщение от Энциклопедия
                                    Правивльное решение будет, если вы за собой не будете таскать не разработанные своими руками библиотеки и регистрировать их. То есть надо сделать так, чтобы все, что системное, устанавливалось системой, а не Вашими руками. .....
                                    К сожалению у меня нет своей команды разработчиков, чтоб писать под конкретную ОС, и использовать "разработанные своими руками библиотеки".
                                    Конечно, все библиотеки подряд в системе менять не стоит - в этом с вами согласен.

                                    Комментарий


                                    • #19
                                      Сообщение от Romik
                                      Serg_K Есть неплохие компоненты от компании Sheridan, правда они шареварные,
                                      но если заглушить муки совести в инете можно найти кряк...
                                      Компонент называется Sheridan DataWidgets. Шлите пиво!
                                      Если можно, из чего он состоит и сколько весит. Если мелкий дайте потрогать.

                                      Комментарий


                                      • #20
                                        Serg_K Весит 10 метров с примерами и прочими вкусностями, потрогать дает сам Sheridan с сайта. Могу залить куда-нибудь. Cам OCX 870 кил.
                                        Romik

                                        Комментарий


                                        • #21
                                          "А что то мне подсказывает, что хороший программист пишет ПО не привязываясь к ОС (сразу оговорюсь к однотипной ОС) обрабатывать нюансы надо или не использовать заменяя их сторонними компонентами."


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

                                          Комментарий


                                          • #22
                                            Добрый день, господа. Вопрос:

                                            Подскажите пожалуйста, как в макросе Word переключить свойство принтера "Печать на обеих сторонах". Как до него добраться? Может есть у кого уже что нибудь готовое по работе с принтерами... или может хорошие ссылки кто знает. Надеюсь на Вашу помощь!

                                            Комментарий


                                            • #23
                                              ·Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
                                              ········wdPrintDocumentContent, Copies:=1, Pages:="1,12", PageType:= _
                                              ········wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
                                              ········True, PrintToFile:=False, PrintZoomColumn:=2, PrintZoomRow:=1, _
                                              ········PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
                                              Может это поможет..

                                              Вот еще посмотрите
                                              Crystal Reports (http://www.businessobjects.com/produ...ts/default.asp) и Active Reports (http://www.datadynamics.com/default.aspx)
                                              Успехов

                                              Комментарий


                                              • #24
                                                К сожалению " Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
                                                wdPrintDocumentContent, Copies:=1, Pages:="1,12", PageType:= _
                                                wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
                                                True, PrintToFile:=False, PrintZoomColumn:=2, PrintZoomRow:=1, _
                                                PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0"

                                                Это не совсем то! Мне именно надо переключить Дуплекс, то есть в параметрах принтера есть параметр "Печать на обеих сторонах". Воспользоваться функциями API можно, но я не знаю, как в макросе выполнить, то, что можно в среде VB.

                                                Комментарий


                                                • #25
                                                  У меня через VBA работает:

                                                  Sub print()

                                                  'la-lalala
                                                  Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
                                                  wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
                                                  Collate:=True, Background:=True, PrintToFile:=False
                                                  End Sub

                                                  Комментарий


                                                  • #26
                                                    Я же объясняю, что вот в этом
                                                    " Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
                                                    wdPrintDocumentContent, Copies:=1, Pages:="1,12", PageType:= _
                                                    wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:= _
                                                    True, PrintToFile:=False, PrintZoomColumn:=2, PrintZoomRow:=1, _
                                                    PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0"

                                                    НЕТ ПАРАМЕТРА ОТВЕЧАЮЩЕГО ЗА ДУПЛЕКС!!! И МНЕ НАДО ЕГО ИЗМЕНЯТЬ... про это я и так вкурсе!

                                                    Комментарий


                                                    • #27
                                                      http://support.microsoft.com/default...b;en-us;230743

                                                      Комментарий


                                                      • #28
                                                        Спасибо! Ответ "http://support.microsoft.com/defaul...kb;en-us;230743" САМО ТО, ЧТО НАДО!!!

                                                        Комментарий


                                                        • #29
                                                          Romik
                                                          DataWidgets потрогал, Вот это класс!!! Даже мышиный скролл поддерживает. Все мелочи учтены. Код уменьшится наверное раз в 10.
                                                          Есть ли там какие баги?

                                                          Комментарий


                                                          • #30
                                                            Serg_K Баги есть как и везде, но они проявляются на этапе разработки и в принципе их же средствами и обходятся... Как-то невнятно описаны Bookmark, вообще с позиционированием бывают проблемы, хотя, возможно, я с ним не доразбирался. В качестве достоинств отсутствие Memory leak и Access Violation (проверено MFC). Устойчиво работает на любых форточках (проверено не одним годом эксплуатации). Широчайшие возможности по настройке как на этапе разработки, так и в Run-time. В общем и целом у нас он прижился и врядли когда будем с него сползать...
                                                            Romik

                                                            Комментарий

                                                            Пользователи, просматривающие эту тему

                                                            Свернуть

                                                            Присутствует 1. Участников: 0, гостей: 1.

                                                            Обработка...
                                                            X