|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Следующая ситуация. В прошлом году, летом была реорганизация предприятия. Наш отдел был передан другой организации. Сменилось место работы, компьютеры, программы. Вот что оказалось у меня на новом месте. На сервере стоит Windows 7 64 bit, Office 2010 32 bit и Office 2003 У меня на компьютере стоит Windows 7 32 bit, Office 2010 32 bit и Office 2003 Первоначально всё работало нормально. Потом после какого-то обновления произошла следующая история. Программа разработанная на моём компьютере отказывается работать на сервере. Выдаёт сообщение типа "Ошибка в запросе. Должно быть INSERT, UPDATE или DELETE" не дословно, но смысл похожий. Делаешь сжатие-восстановление, программа начинает работать на сервере. Зато перестаёт работать на моём компьютере. С тем же сообщением. Делаю уже у себя сжатие-восстановление, программа начинает работать у меня, но прекращает на сервере. Системщик только разводит руками и что-то говорит о разных обновлениях. По моему настоянию с сервера снесли оба офиса и установили Office 2010 32 bit заново. Ошибка ушла. Примерно через три месяца, после очередных обновлений, похожая ситуация всплыла у заказчиков, которым рассылались новые версии программы. У части заказчиков программа отказывалась работать с аналогичным сообщением. Причём на работе и у меня дома программа она запускалась без проблем. По моей инструкции пользователи на местах произвели сжатие-восстановление программы. У части она заработала, а у части - нет. Что сделал. Дома под Windows XP в Access 2003 произвёл декомпиляцию программы. Затем поджал её. Программа заработала и на тех машинах, где раньше отказывалась работать. Кто-нибудь встречался с такими проблемами? Как их решали? И что надо делать, чтоб их избежать? ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 11:13 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Я правильно понимаю, что под словом "программа" тут разумеется обычная БД в формате MDB? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 11:20 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Что за сервер? Если база Access только оболочка, проверьте DISTINCTROW в запросах. Система должна решить, что исполнять клиенту, а что серверу. Нужно смотреть текст запросов где происходит ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 11:30 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Дополнительная информация. Программа сделана в формате Access 2000, mdb. Запускалась на Access с 2000 до 2016. ActiveX не используется, API используется. Программа разрабатывалась и работает в 32-х и 64-х разрядных офисах. И до нашего переезда никаких проблем не возникало. Вот только на старом месте в качестве операционки стояла Windows XP. Статистику набрать к сожалению не могу Во многих местах в качестве операторов сидят пожилые женщины, которые не могут сказать, что у них за операционка и какая версия офиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 11:34 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Прошу прощения. Ошибся. На сервере стоит операционка Windows Server 2008 R2 SP1 64 бит. Программа представляет собой разделённую базу в формате MDB. Один файл с кодом, другой - с данными. Нужно поместить их в один каталог в любом разрешенном месте. Автоматически подключаются таблица и начинается работа. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 11:47 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
1. Сделайте резервную копию. 2. Декомпилируйте базу, сожмите, закройте. Откройте, скомпилируйте, сожмите, закройте. Сделайте защищенный MDE файл. Он должен копироваться в VBA.Environ("TEMP") пользователя. Именно с ним он должен работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 12:12 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Это надо делать на каждом рабочем месте. Там где не работает программа. Сейчас таких пользователей 6-8. Но у меня могут быть неточные сведения. Часть информации до меня могла просто не дойти. Всего пользователей более 80. Т.е в среднем на одном из 9-10 компьютеров такая неприятность. Некоторые находятся на расстоянии 300-400 км, некоторые ещё далее. Ездить по пользователям - не выход. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 12:32 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Пользователи должны работать на терминальном сервере, куда заходят через удаленный доступ. При подключении выполняется start.cmd @copy db.mde %TEMP% /y @start "C:\Program Files\Microsoft Office\Office15\msaccess.exe" %TEMP%/db.mde @exit ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 12:59 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Не путайте то что делаете для своей организации и то, что рассылается сторонним пользователям. Какой терминальный сервер? Какой удалённый доступ? Вы о чём? Не везде и Access стоит. Не везде даже системщики свои есть. Работа с программой должна быть максимально проста. Разархивируй на диск и работай. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 16:36 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, Свои пять копеек. Делал проги, рассылал клиентам. И постоянно ловил таких аналогичных "Барабашек", пока не привёл всех к единому стандарту. А именно рантайм 2007. Иначе идут конфликты библиотек "и всё такое прочее". На крайний случай, если народ не хочет/не умеет удалять из своих Офисов компонент Access, рекомендую ставить одновременно рантайм 2007 и цеплять на ярлычок запуска программы её запуск именно из под рантайма. Под рантайм, кста, отлично идёт и mdb, и mde. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 18:04 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
ну и иногда проблемы запуска у клиентов совсем по другим причинам: маниакальный уровень настройки антивирусов, урезанные права юзеров в Винде, плюс сам Офис порой согласно установленному уровню безопасности считает запуск проги недопустимым ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 18:08 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Хорошие пожелания так и останутся пожеланиями. У одних стоит лицензитя, у других - пиратка, У одних 32 бит, у других - 64. У одних 2003, у других - 2013. И ничего изменить нельзя. Это не наши подразделения. Не они хотят взять у нас программу, а мы просим, чтоб они у нас её взяли. Вот такие дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 23:01 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, так я не зря упомянул про Рантайм 2007, установленный параллельно. Ну и в ялыке запуска вашего приложения, в "Ярлык" - в поле "Объект" вставить строку принудительного запуска приложения Рантаймом, что то типа "C:\Program Files (x86)\Microsoft Office\Office12\msaccess.exe" "C:\Каталог\ИмяПроги.mdb" Только уточнить надо где именно лежит файл запуска рантайма, лень искать. Вот, к слову, похожее здесь же обсуждалось: http://www.sql.ru/forum/1235622/access-runtime-sovmestimost?hl=runtime ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2017, 23:21 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Смотри написанное выше. Никто лишних телодвижений делать не будет. Никто не будет скачивать рантайм и ставить его параллельно уже стоящему Access. Тем более 32-х и 64-х версии Access несовместимы. Это по официальной информации от Микрософта. Хотя я ухитрялся запускать и работать в портабле версии Офиса 2003 при параллельно установленном Офисе 2010 64 бит. Пока решил следующее. После отладки программы нести её домой. Там под ХР на 2003 декомпилировать и сжимать без компиляции и рассылать в таком виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 10:01 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Попробуйте так: #If VBA7 Then Public Declare PtrSafe Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (pwszKLID As Any) As Long Public Declare PtrSafe Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal HKL As String, ByVal Flags As Long) As Long #Else Public Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (pwszKLID As Any) As Long Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal HKL As String, ByVal Flags As Long) As Long #End If ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 11:12 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
PaulBПопробуйте так: #If VBA7 Then Public Declare PtrSafe Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (pwszKLID As Any) As Long Public Declare PtrSafe Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal HKL As String, ByVal Flags As Long) As Long #Else Public Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (pwszKLID As Any) As Long Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal HKL As String, ByVal Flags As Long) As Long #End If Извините, я не понял к чему это? Можете пояснить? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 11:55 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Вы написали об использовании API. Что бы это работало под разными версиями Access используйте условную компиляцию ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 12:44 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, А вы пытались понять, почему именно возникает ошибка? Код под отладкой смотрели? Сжатие может влиять на некоторые вещи, но возможно, основная ошибка именно в коде или в данных. Например, могли возникнуть битые строки в таблице, из-за чего код работает вообще непонятно как. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 13:03 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Такое сообщение об ошибке обычно выдается, когда программа пытается выполнить неверный запрос, который даже не начинается с INSERT, UPDATE или DELETE ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 13:04 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, ну, идти на поводу у ленивых клиентов тоже нужно и можно до каких то определённых пределов. Практика показывает, что сами потом крайним останетесь ;) По поводу "32-х и 64-х версии Access". А при чём тут разрядность, если вы запускаете прогу из под Рантайма, фактически - из под независимой отдельной копии Access? Эта такая штука, как я успел убедиться - отлично бегает хоть на XP, хоть на 10-ке. Проверял сам лично на XP, XP/64, 2003 Server, 7/32, 7/64, 8.1, юзеры пишут - что и на 10-ке полёт нормальный. Кроме того, я говорил, что могут иметь место факторы "вне самого Access". То, что "никто не будет ничего делать" - а) не факт, но допустим б) Сделайте это "сами": вышлите в инсталляхе тот же Рантайм, прикрутите батничек на разовую установку и вуаля. Можно даже сделать достаточно полноценный инсталлятор, например, при помощи InnoSetup. Тогда клиент запускает одну инсталляшку. Ну, через удалённый доступ можете зайти к клиенту, сами настроить - если это важно. Иногда и мне приходится так делать - это проще и быстрее. В общем, я бы тут проблему разделил на две части: 1. Проверить на практике сам принцип и возможность решения проблемы косяков с помощью рантаймов. Думается мне, что это проще и быстрее сделать именно на практике, чем гадать и теоретизировать до бесконечности ;) 2. Способ установки необходимого комплекта на комп юзерам. Тут уже варианты на ваш выбор. Разумеется, я не смею настаивать - в конце концов, это у вас проблема, и варианты поиска решений - тоже у вас. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2017, 16:05 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Спасибо за советы, постараюсь ответить каждому. to PaulB У меня всё это сделано в программе, и как я писал выше она прекрасно работает на всех версиях Офиса от 2000 до 2016 и на 32-х и 64-х битных версиях. Всё дело в том, что на 9 компьютерах из 10 программа запускается, а на десятом - нет. Причём это не связано ни с версией офиса, ни с его разрядностью. to MrShin авторА вы пытались понять, почему именно возникает ошибка? Код под отладкой смотрели? Сжатие может влиять на некоторые вещи, но возможно, основная ошибка именно в коде или в данных. Например, могли возникнуть битые строки в таблице, из-за чего код работает вообще непонятно как. Ошибка возникает до первой точки останова. Ставишь точку останова в самом первом выполняемом операторе. Ошибка возникает до неё. Ни данные, ни код не испорчен. Берёшь работающую программу, ставишь на проблемный компьютер - не работает. Ставишь на исходный - работает. Проблема на работе была решена сносом офиса и повторной установкой. авторТакое сообщение об ошибке обычно выдается, когда программа пытается выполнить неверный запрос, который даже не начинается с INSERT, UPDATE или DELETE Это ясно, но это не тот случай. Ведь на части компьютеров программа прекрасно работает с теми же данными. to Tarasios авторJoss, ну, идти на поводу у ленивых клиентов тоже нужно и можно до каких то определённых пределов. Практика показывает, что сами потом крайним останетесь ;) По поводу "32-х и 64-х версии Access". А при чём тут разрядность, если вы запускаете прогу из под Рантайма, фактически - из под независимой отдельной копии Access? Эта такая штука, как я успел убедиться - отлично бегает хоть на XP, хоть на 10-ке. Проверял сам лично на XP, XP/64, 2003 Server, 7/32, 7/64, 8.1, юзеры пишут - что и на 10-ке полёт нормальный. Кроме того, я говорил, что могут иметь место факторы "вне самого Access". То, что "никто не будет ничего делать" - а) не факт, но допустим б) Сделайте это "сами": вышлите в инсталляхе тот же Рантайм, прикрутите батничек на разовую установку и вуаля. Можно даже сделать достаточно полноценный инсталлятор, например, при помощи InnoSetup. Тогда клиент запускает одну инсталляшку. Ну, через удалённый доступ можете зайти к клиенту, сами настроить - если это важно. Иногда и мне приходится так делать - это проще и быстрее. В общем, я бы тут проблему разделил на две части: 1. Проверить на практике сам принцип и возможность решения проблемы косяков с помощью рантаймов. Думается мне, что это проще и быстрее сделать именно на практике, чем гадать и теоретизировать до бесконечности ;) 2. Способ установки необходимого комплекта на комп юзерам. Тут уже варианты на ваш выбор. Разумеется, я не смею настаивать - в конце концов, это у вас проблема, и варианты поиска решений - тоже у вас. Тут придётся отвечать последовательно. На счёт пользователей. Наша организация собирает анкеты определённой формы отчётности. Их можно представить как бумажный документ. Ну или в том модуле, что я разработал. Вся эта информация сливается в общую базу данных. Ввод данных из модуля автоматизирован., бумажные документы вводятся вручную. Если программа не понравится пользователям, они могут отсылать анкеты на бумаге и тогда мы тут будем корячиться и вводить данные с бумажных анкет. Анкеты собираются каждый квартал. И каждый раз рассылается новый модуль с новыми данными. Нельзя один раз поставить модуль и постоянно им пользоваться. На счёт рантайма. Смотри написанное выше. Никто лишних телодвижений делать не будет. Никто не будет скачивать рантайм и ставить его параллельно уже стоящему Access. Тем более 32-х и 64-х версии Access несовместимы. Это по официальной информации от Микрософта. Как я писал, Во многих организациях нет даже штатного системщика. Иногда даже звонят и спрашивают, как надо разархивировать. Вчера звонили и заявляли, что никак не могут прикрепить отчёт к письму. А возиться с установкой и деинсталяцией Access никто не будет. Тем более что гарантию, что всё заработает я дать не могу. Единственное, до чего я додумался. Создать bat или cmd файл на декомпиляцию и последующее сжатие базы. И рассылать такой файл вместе с модулем, с указанием, что если возникнет такая ошибка, то запустить этот файл. Это в 99,9% случаев срабатывает. Но как написать такой файл я пока без понятия. Надо указать путь к Access, путь к обрабатываемому файлу. А я пока с этим не разобрался. Ну не писал я раньше такие файлы. Может кто-нибудь подскажет, как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 09:45 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, ну вообще то, само сжатие можно навесить на прогу, например, при каждом выходе из программы. Сами же DOS команды и основы создания тех же батников неимоверно просты, есть в инетах куча примеров и буквально за час вы "проникнетесь". Хотя опять же здесь всё упирается в точные координаты файла access.exe, а они в разных версиях разные ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 19:22 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Возможно, это по вашей теме: http://www.sql.ru/forum/143018/szhatie-i-vosstanovlenie-bd-iz-komandnoy-stroki http://www.sql.ru/faq/faq_topic.aspx?fid=155 Хотя вот лично мне бы (при условии что это больше нужно мне, а не клиентам) было бы удобнее и быстрее "вылечить" клиента по удалёнке, например - через тимвивер. Практика показывает, что даже самые "деревянные" клиенты почти без проблем могут её у себя запустить и назвать мне (мылом, аське или по телефону) айди и пароль. Тем более, что существует модуль тимвивера, не требующий инсталляции у клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2017, 19:28 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
TarasiosJoss, ну вообще то, само сжатие можно навесить на прогу, например, при каждом выходе из программы. Сами же DOS команды и основы создания тех же батников неимоверно просты, есть в инетах куча примеров и буквально за час вы "проникнетесь". Хотя опять же здесь всё упирается в точные координаты файла access.exe, а они в разных версиях разные ;) Проблема в том, что компакт не помогает. Помогает декомпиляция программы. А она запускается только из командной строки (я других способов не знаю). А для неё надо задавать полный путь к декомпилируемому файлу. Простые батники я писал: создание/удаление каталогов, файлов, перемещение по каталогам. А вот такого типа - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:09 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, зачем вы пытаетесь сделать батник, не имея опыта, если прекрасно знаете среду MS Access и VBA? Создайте аксесовскую утилитку, в которой покажите красивую формочку с рюшками, определите где расположен екзешник access (можно через SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE"), запустите шелом с командной строкой /декомпайл вашу основную базу и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:26 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
JossПростые батники я писал: создание/удаление каталогов, файлов, перемещение по каталогам. А вот такого типа - нет. Зачем батник? Пишите vbs скрипт, там язык практически один-в-один совпадает с VBA, включая все файловые операции и библиотеки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 09:30 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
MS Access VBAJoss, зачем вы пытаетесь сделать батник, не имея опыта, если прекрасно знаете среду MS Access и VBA? Создайте аксесовскую утилитку, в которой покажите красивую формочку с рюшками, определите где расположен екзешник access (можно через SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE"), запустите шелом с командной строкой /декомпайл вашу основную базу и т.п. Фокус в том, что если глючит основная программа, то так же может глючить и вспомогательная утилита. Вообще-то надо писать не батник, а VB скрипт. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2017, 12:21 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, Вам имхо нужно отказываться от mdb у клиентов... Если их работа заключается в тупом заполнении анкет, то в зависимости от наличия связи, есть два варианта: 1. При наличии везде интернета - поднять у себя на серваке с постоянным IP адресом сайт и написать простенькую страничку ввода данных в свой mdb на своем сервере (вход после авторизации разумеется). Выгода офигенная - рассылать никому ничего не нужно, у себя страничку ввода обновил на сайте и всё, устанавливать тоже никому ничего не нужно (кроме ярлыка в браузере или на рабочем столе). Написать можно на чем угодно ASP, PHP... 2. Если интернет не постоянный и обмен идет через какие то промежуточные файлы, то заполнение анкет можно сделать тупо в экселе, высылаем новые шаблоны, получаем назад заполненные, импортируем... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 08:54 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Эксель не катит. По существу я вырезал кусочек своей более сложной и более мощной программы и кусочек общей БД, относящейся к конкретному предприятию за конкретный период. В программе зашита куча контролей от дурака, ну или по научному, от ввода недостоверной информации, Идёт проверка по нескольким критериям. Используются как минимум 6 таблиц, Три основных и три вспомогательных, причём данные вносятся только в 2 таблицы, а наполнение 3 таблиц зависят от предприятия. Эксель с этим то же может справиться, но геммороя на порядок больше. На счёт интернета. Я пробовал перегнать кусочек базы на SQL Server и ASP. И даже что-то начинало получаться. Но не потянул. Парень, который был хорошим специалистом по ASP уволился. А я тупо уперся в незнание предмета. НЕ всё описано в книгах. Да и старое начальство было в этом не заинтересовано. Все действия по созданию своих страничек в интернете и выкладыванию на них данных упирается сразу в несколько проблем, как объективных, так и субъективных. И пока только в процессе рассмотрения который может затянуться на пару лет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 09:56 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, Попробуйте рассмотреть проблему заполнения шаблона под другим ракурсом: - Сейчас наверняка так: Под новый шаблон допиливается и хранилище и интерфейс (новые поля/тополя)... - Попробуйте застолбить интерфейс (хранилище меняется, а интерфейс нет), тогда у каждого клиента интерфейс нужно будет настроить всего один раз. Как это сделать ? - Заполнением с помощью мастера заполнения. Вы поставляете только новое хранилище, в котором есть поля для заполнения и рядом ваши признаки обработки каждого поля (какие проверки включать и т.д.). Итерфейс пошагово запрашивает поля ввода и после ввода анализирует их согласно прилагаемым в БД инструкциям... - Динамическое формирование полей ввода в форме. Поля ввода в форме генерируются из той же таблицы поставки, инструкции по обработке в БД тоже соответственно в ней есть... Ну да, слегка попахивает искусственным интеллектом и труд приличный и сложности есть... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 10:32 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, С откомпилированным MDE те же проблемы возникают? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 13:03 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
MrShinJoss, С откомпилированным MDE те же проблемы возникают? В MDE не преобразовывал. Перед рассылкой очищал модуль от мусора, делал сжатие и компиляцию. Проблема. Делать MDE можно только в той версии, в которой у тебя формат базы. Был у меня как-то случай, когда я пробовал сделать в Access 2003 MDE базы формата Access 2000. Программа отказалась это делать. Сейчас у меня стоит 2010, Создать в нём MDE я не пробовал. Формат базы у меня MDB Access 2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 14:03 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss...Был у меня как-то случай, когда я пробовал сделать в Access 2003 MDE базы формата Access 2000. Программа отказалась это делать...Обычно предлагается предварительно преобразовать в актуальную версию. MDE, сделанные в Access 2000, работают и в более свежих версиях. Во всяком случае, работают в Ac2003, Ac2007, Ac2010. Дальше не довелось проверить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 14:24 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
JossПрограмма сделана в формате Access 2000, mdb. Запускалась на Access с 2000 до 2016. ActiveX не используется, API используется. Программа разрабатывалась и работает в 32-х и 64-х разрядных офисах. И до нашего переезда никаких проблем не возникало. Вот только на старом месте в качестве операционки стояла Windows XP. однажды у меня влиял системный разделитель чисел и даты/времени стала проверять примерно так---в реестр не полезла а="" & (1/2) if instr(a,",") then ''разделитель запятая else ''разделитель точка endif аналогично для даты ---- ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 14:59 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
конечно ошиблась немного Код: vbnet 1. 2. 3. 4. 5. 6. 7.
т.е. сравнивала с заранее известным значением и задавала нужную обработку, особенно при экспорте/импорте установить всем одинаковые установки не смогла(около 100 компов) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 15:03 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, Вот ещё вариант проверки. Может пригодится. Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2017, 18:17 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Спасибо за советы. Но вот такие случаи из практики. Первый вариант. Сообщают об ошибке. Пошагово рассказываю, как запустить с нажатым Shift, как найти операцию "восстановить и сжать". Программа заработала. Второй вариант. Сообщают об ошибке. Пошагово рассказываю, как запустить с нажатым Shift, как найти операцию "восстановить и сжать". Программа не заработала. Отсылаю декомпилированный вариант. Программа заработала. Вот такие дела. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2017, 09:42 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, Проверь установку сервиспаков Access. Бывает несовместимость на этом уровне. Есть сервис пак - работает на обеих машинах, нет - на одной из машин не работает. Влияет как присутствие, так и отсутствие сервиспака. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2017, 10:20 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
PWWJoss, Проверь установку сервиспаков Access. Бывает несовместимость на этом уровне. Есть сервис пак - работает на обеих машинах, нет - на одной из машин не работает. Влияет как присутствие, так и отсутствие сервиспака. Это надо разговаривать с более-менее знающим человеком. Иногда, женщины, которые работают с программой не могут сказать ни версию Windows, ни версию офиса. Подумал и решил втихаря набрать статистику. При запуске программы считывать и заносить в таблицу версию Windows и версию Офиса. Правда, как ещё определить сборку пока не придумал. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2017, 09:23 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Поднимаю старую ветку. Описываю как решилась проблема, может у кого-нибудь такая же ... ************************************* Дело в том, что начиная с версии 2007 для Access (и соответственно Офиса) разработана новая библиотека работы с данными ACE вместо DAO, а начиная с версии 2010, разработана так же 64-х битная версия этой библиотеки. Для библиотеки DAO 64-х битной версии не существует. Получается, что для комбинации Windows XP и Офиса 2000 – 2003 можно использовать только библиотеку DAO, в остальных случаях можно использовать библиотеку ACE. Подключение библиотеки производится на этапе программирования. Поэтому были созданы две версии программы: - универсальная, с использованием библиотеки ACE для 32-х и 64-х версий Офиса, но работающая начиная с 2007 версии. - с использованием библиотеки DAO, для Windows XP и Офиса 2000 – 2003 и работает только с 32-х разрядными версиями Офиса ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2017, 14:39 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, Ты используешь DAO в коде или она просто болтается по умолчанию и глючит из-за несовместимости? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 00:22 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
Joss, Делайте единые библиотеки доступа. Одна версия офиса. Так будет работать как часы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 03:27 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
PWWJoss, Ты используешь DAO в коде или она просто болтается по умолчанию и глючит из-за несовместимости? Использую библиотеки. Строю на них рекордсеты. Программу сопровождаю уже 7 лет приблизительно 60% в ней моего кода. Мне она досталась после 2 лет опытной эксплуатации и 3 лет нормальной эксплуатации. Писалась на Access 2003. Автор была сторонницей DAO. Я был сторонником ADO. Программа представляет собой жуткую смесь процедур DAO и ADO. 10 лет эксплуатации программы на Access, если учитывать опытную, то все 12. Кто похвастается таким долголетием? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 16:18 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
NeboJoss, Делайте единые библиотеки доступа. Одна версия офиса. Так будет работать как часы. Вы невнимательно читали ветку. У клиентов что стоит, то стоит. И менять они ничего не будут. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 16:21 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
На счёт клиентов. Вчера звонила женщина-бухгалтер. Достаточно молодая. Вроде бы должна быть с компьютером на "ты". Не знала ни версии Windows ни версии Офиса. Полчаса объяснял, по телефону, как распаковать архив и как потом заменить одну версию программы на другую. У неё как раз была та самая комбинация: Windows XP и OFFice 2003. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 16:27 |
|
На одних компьютерах программа работает, на других - нет.
|
|||
---|---|---|---|
#18+
vmagJoss, Попробуйте рассмотреть проблему заполнения шаблона под другим ракурсом: - Сейчас наверняка так: Под новый шаблон допиливается и хранилище и интерфейс (новые поля/тополя)... - Попробуйте застолбить интерфейс (хранилище меняется, а интерфейс нет), тогда у каждого клиента интерфейс нужно будет настроить всего один раз. Как это сделать ? - Заполнением с помощью мастера заполнения. Вы поставляете только новое хранилище, в котором есть поля для заполнения и рядом ваши признаки обработки каждого поля (какие проверки включать и т.д.). Итерфейс пошагово запрашивает поля ввода и после ввода анализирует их согласно прилагаемым в БД инструкциям... - Динамическое формирование полей ввода в форме. Поля ввода в форме генерируются из той же таблицы поставки, инструкции по обработке в БД тоже соответственно в ней есть... Ну да, слегка попахивает искусственным интеллектом и труд приличный и сложности есть... Сразу не ответил. Сейчас попробую объяснить. 1. Интерфейсная часть ещё не устоялась. Постоянно идут правки. То там условие допиши, то то поле заблокируй, чтоб не правили, то вывод в Word измени... 2. Низкий компьютерный уровень клиентов. Не всех, но ощутимый процент есть. Им проще получать каждый раз полный архив и не искать где у них старый интерфейс завалялся. Ну а динамическое формирование не нужно. Без него прекрасно можно обойтись ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2017, 16:36 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1611833]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
others: | 261ms |
total: | 436ms |
0 / 0 |