Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 6 7 8 9 10 11 12 13 [14] 15   вперед  Ctrl
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
ssserge
Member

Откуда: Одесса
Сообщений: 401
tanchukz,
Так к нему же еще "морду" на чем-то писать нужно.
14 окт 15, 17:05    [18279054]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1352
ssserge
tanchukz,
Так к нему же еще "морду" на чем-то писать нужно.

Дык он не знает про это.
для него Мускул это усе.
15 окт 15, 05:36    [18280745]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
MrShin
Member

Откуда:
Сообщений: 846
Все баги не читал, но по поиску "фильтр" не нашел похожего:

Создаем любую форму в табличом виде на базе запроса с критерием, содержащем параметр вида [param], это может быть просто запрашиваемый параметр или ссылка на поле в форме. Открываем форму, по F5 или по Requery она благополучно запрашивает параметр или читает значение с формы.
Накладываем любой фильтр на данные руками или через VBA и снимаем его. Все, параметр уже не запрашивается, с формы не читается. Обходится только заменой параметра на функцию. Проверял на 2010 и 2013. Баг просто убил.
30 май 16, 18:48    [19237863]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Sergey8969
Member

Откуда:
Сообщений: 73
В коде указано имя поля "св_во1", а в сообщении уже "св-во1". Как так? ) Кстати, предыдущую строку он успешно отработал - присвоил полю "св-во1" указанное значение

К сообщению приложен файл. Размер - 44Kb
21 сен 16, 09:36    [19690264]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1352
Sergey8969
В коде указано имя поля "св_во1", а в сообщении уже "св-во1". Как так? ) Кстати, предыдущую строку он успешно отработал - присвоил полю "св-во1" указанное значение

Картинка с другого сайта.

Попробывал все работает.
А это чё:
Me.TempSvvo=Me.св_во1 (так для интересу)
21 сен 16, 09:55    [19690349]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Sergey8969
Member

Откуда:
Сообщений: 73
ROI
Попробывал все работает.


Ну да, тоже создал другую форму, там работает. У меня спотыкается на SetFocus по какой-то другой причине. Собственно, я добавил этот код просто чтобы посмотреть к какому полю он перейдет.
Вопрос был почему он отрабатывает код присваивания значения полю "св_во1" (через нижнее подчеркивание), которого вообще нет. Есть поле "св-во1" (через тире).
Ответ уже нашел. VBA отображает пробелы в именах элементов управления как нижнее подчеркивание. Видимо, тоже самое он делает и с тире в именах.

К сообщению приложен файл. Размер - 40Kb
21 сен 16, 10:41    [19690572]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Sergey8969
Member

Откуда:
Сообщений: 73
ROI
А это чё:
Me.TempSvvo=Me.св_во1 (так для интересу)


Это "костыль" для передачи в другую форму данных (нужно передать 2 значения). Создал 2 невидимых поля и из другой формы обращаюсь к ним за нужными мне значениями. Дело в том, что DoCmd.OpenForm может передать только одно значение.
21 сен 16, 10:43    [19690583]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Sergey8969
Member

Откуда:
Сообщений: 73
Кстати, вопрос остался) В форме у меня все поля названы через тире. Первый вариант кода работает, второй - нет, третий - работает.

К сообщению приложен файл. Размер - 58Kb
21 сен 16, 11:08    [19690707]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Sergey8969
Member

Откуда:
Сообщений: 73
пример

К сообщению приложен файл (пример.zip - 17Kb) cкачать
21 сен 16, 11:10    [19690717]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3257
Sergey8969
Дело в том, что DoCmd.OpenForm может передать только одно значение.
да хоть тысячу. Передавай такой же строкой через OpenArgs, а можно - "ИмяПараметра1=Значение;ИмяПараметра2=Значение; и тд"

Ты бы это всё своим топиком организовал, а не в баги акса кривые руки записывал...
21 сен 16, 11:31    [19690877]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1352
Панург
Sergey8969
Дело в том, что DoCmd.OpenForm может передать только одно значение.
да хоть тысячу. Передавай такой же строкой через OpenArgs, а можно - "ИмяПараметра1=Значение;ИмяПараметра2=Значение; и тд"

Ты бы это всё своим топиком организовал, а не в баги акса кривые руки записывал...

Полностью согласен.
21 сен 16, 12:03    [19691153]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Sergey8969
Member

Откуда:
Сообщений: 73
Панург
Sergey8969
Дело в том, что DoCmd.OpenForm может передать только одно значение.
да хоть тысячу. Передавай такой же строкой через OpenArgs, а можно - "ИмяПараметра1=Значение;ИмяПараметра2=Значение; и тд"

Ты бы это всё своим топиком организовал, а не в баги акса кривые руки записывал...


хах, меня спросили - я ответил. Комментарии на счет рук при себе лучше бы оставили. Я вас не спрашивал как мне лучше сделать. Вы бы лучше прочитали сначала о чем речь шла.
Знаю, что можно строкой все передать. Разделять потом на отдельные значения не хочу, исключать возможные ошибки. Да и код длинный получается.
21 сен 16, 13:10    [19691776]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 3257
Sergey8969, а я и прочитал. Первое замечание не относмтся ко второму. Они даже пустым пространством обособлены.
22 сен 16, 16:37    [19697473]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Владимир2017
Member

Откуда: Украина, Днепр (Україна, Дніпро)
Сообщений: 14
Некорректное преобразование mdb-формата в формат accdb.
Причина и способ устранения некорректности


Действительно для:
- операционные системы Windows версий Windows 7/8xx/10
- пакет Приложений MS Office версий 2007 и более старших.

Предпосылки:
Офисное приложение изначально разрабатывалось в среде MS Office 2003.
При "конвертации" Приложения в среду MS Office 2007 и старше возникли ошибки преобразования.
Причем, в исходном коде никакие особенности Office 2007 не использовались (как то: тип данных "Вложение" и др.).

Результат "конвертации": При запуске Приложения офис генерирует исключительную ситуацию "Не распознаваемый формат файла".

Причина ошибки:

Один из сохраненных запросов в файле "клиентского места" был отформатирован с управляющими символами
"возврат каретки"/"новая строка (vbNewLine).


Используемый способ конвертации: создание нового файла в формате accdb с запретом слежения за автозаменой имен, последующий импорт всех объектов из исходного файла в формате ACC 2003 в целевой файл в целевого формата accdb,
поскольку стандартная операция "Сохранить в формате" корректно никогда не работала (скрытые системные таблицы исходного mdb переносятся "как есть", привнося "мусор" в целевой файл) .

Способ исправления: удаление всех управляющих символов в сохраненных запросах.
7 янв 17, 02:23    [20078846]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Владимир2017
Member

Откуда: Украина, Днепр (Україна, Дніпро)
Сообщений: 14
Дополнение к предыдущему сообщению:
"Некорректное преобразование mdb-формата в формат accdb.
Причина и способ устранения некорректности"

Исходный текст Приложения (в формате ACC 2003), включающего в себя запросы, исходный SQL-текст которых
содержал управляюpие символы "перевод каретки" или "новая строка", не вызывал исключительных ситуаций
как при компиляции, так и в процессе функционирования Приложения под управлением среды MS Office 2003.

После описанного выше "стандартного" способа конвертации, при попытке запуска конвертированного Приложения
в среде ACC2007/ACC2010, упомянутая выше исключительная ситуация стабильно возникает.

В случае импорта всех объектов исходного Приложения ACC2003 в среду ACC2013, после нажатия "ОК" в окне диагностического сообщения "чужой формат", Приложение открывается. Однако, в случае попытки открытия объекта (форма/отчет), использующего, в качестве источника данных, запрос, текст которого содержит управляющие символы, операция прерывается с описанием события "Действие открытия формы/отчета прервано".

Кроме того, если у Вас в рабочем (клиентском) месте, имеются запросы, текст которых отформатирован управляющими символами (форматирование SQL-текста в Приложениях с разделённой БД Майкрософт не запрещает), а в таблицах, присутствуюзих в теле запроса одно или более полей в новой версии БД (не рабочего/клиентского места) больше не существует - ситуация с описанной выше "конвертацией" из одной версии ACC в более старшую, возможно, будет происходить так, как описано выше.

P/S . Надеюсь, мой маленький месседж поможет сохранить "братьям по цеху" затраченное ими время на выявление и фиксение ньюансов работы ACC... для более полезных занятий.... :)
8 янв 17, 11:24    [20081487]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Владимир2017
Member

Откуда: Украина, Днепр (Україна, Дніпро)
Сообщений: 14
не рабочего/клиентского места
Упсс... Конечно же "рабочего/клиентского места"
8 янв 17, 11:27    [20081492]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3739
Следующая ситуация.

На сервере стоит 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 произвёл декомпиляцию программы. Затем поджал её. Программа заработала и на тех машинах, где раньше отказывалась работать.

Кто-нибудь встречался с такими проблемами? Как их решали? И что надо делать, чтоб их избежать?
17 янв 17, 10:39    [20113312]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Владимир2017
Member

Откуда: Украина, Днепр (Україна, Дніпро)
Сообщений: 14
Joss, Ваше описание траблы подпадает под мой опыт.
Как фиксил траблу:

Установил рантайм-версию ACC, соответствующую ACC на машине Разработчика. С младшими ей полными установками Office работает устойчиво. Если Вы пользуете библиотеки Word/Excel 2003 из-под рантайм-ACC2010/20ХХ, то они "захватываются" правильно.
В случае наличия на машине двух версий (2003-2010, к примеру, это не есть факт).
Причем, старшая версия не конфликтует с младшими версиями библиотек самого ACC.
Это проверено более чем 4-мя годами успешной эксплуатации Приложения в среде Office 2003..2010 при условии,
что Вы нигде (ни в базе, ни в коде клиентского места не юзаете расширения Office 2007).

На рабочих станциях юзеров установлена рантайм-версия, соответствующая версии ACC на машине разработчика,
под которой скомпилирован файл клиентского места. При разделенной БД сама база данных может быть в формате самой младшей версии ACC, однако настоятельно есть хорошо, когда БД приведена в формат более старшей версии АСС.
10 фев 17, 01:36    [20198849]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3739
Вдогонку к своей проблеме.
Нашел одну из ситуаций, когда возникает такая ошибка.

Если программа при запуске выдаёт сообщение типа "Ошибочная инструкция SQL, предполагалось INSERT, UPDATE или DELETE", не дословно, но смысл похожий, то возможна следующая причина.
Дело в том, что начиная с версии 2007 для Access (и соответственно Офиса) разработана новая библиотека работы с данными ACE вместо DAO, а начиная с версии 2010, разработана так же 64-х битная версия этой библиотеки. Для библиотеки DAO 64-х битной версии не существует. Получается, что для комбинации Windows XP и Офиса 2000 – 2003 можно использовать только библиотеку DAO, в остальных случаях можно использовать библиотеку ACE. Подключение библиотеки производится на этапе программирования.
Поэтому если у Вас подключена библиотека DAO, то программа не будет работать на Windows 64 bit, если у Вас установлен Офис 64-bit. Комбинация W-64 и Офис 2003 работать будет. Комбинация W-64 и Офис версии 2007 и выше в 32-х битных версиях по идее должен работать, но проверить не мог.
Если у Вас подключена библиотеки ACE, то программа не будет работать для конфигурации Windows XP и Office 2003 (отсутствует библиотека ACE). В остальных случаях для различных допустимых комбинаций Windows и Офиса программа работать должна. (все комбинации проверены не были).
Можно попробовать пошаманить и для комбинации Windows XP и Office 2003 доставив самостоятельно библиотеки ACE.
7 июл 17, 14:20    [20623331]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3739
Windows XP SP3
MS Access 2010

Создаю в конструкторе запрос-выборку на основе обычной таблицы
При попытке просмотреть результат пишет

Неизвестные приложению единицы измерения
Задайте допустимые единицы, дюймы (") или сантиметры (СМ).

Я бы понял, если бы разрабатывал отчёт. Но где задать единицы измерения в обычном запросе на выборку?
База была создана в Access 2003, При запуске в Access 2003 программа ошибки не выдает.

Методом исключения нашел в запросе таблицу и поле, для которого выдаётся ошибка. Оно оказалось текстовым.
Создал аналогичное поле. Скопировал данные из старого поля в новое. Старое удалил, новое переименовал. Попробовал вывести. Прошло без ошибок
7 июл 17, 14:49    [20623495]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3739
Вызываю(загружаю) форму из другой форме по кнопке. На одних компьютерах работает без проблем. На других выдаёт ошибку (см. рисунок). Сжатие базы не помогает. Прохожу пошагово под отладчиком - ошибки нет. После этого прохода форма повторно вызывается без сбоев.
При перезагрузке программы опять появляется ошибка.

Как устранил ошибку.
Перед вызовом формы поставил оператор doEvents. Ошибка исчезла.

К сообщению приложен файл. Размер - 31Kb
7 июл 17, 15:36    [20623771]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
rnk_unauthorized
Guest
Неправильная очерёдность действий в VBA.
N Mod 676 \ 26 


В теории:
Операторы Mod (остаток при делении) и \ (целочисленное деление) имеют одинаковый приоритет и должны вычисляться слева направо: берём остаток от N по модулю 676 и нацело делим его на 26. Для N=100 результат должен быть 3.
На практике:
\ вычисляется в первую очередь, Mod во вторую. В результате получаем
N Mod (676 \ 26) = N Mod 26
Для N=100 имеем результат 22.

Полдня коту под хвост, где угодно мог предположить ошибку, но не здесь.
25 авг 17, 13:05    [20749104]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
rnk_unauthorized
Guest
Неправильная очерёдность действий в VBA.
N Mod 676 \ 26

Причём в VBScript всё в порядке.
25 авг 17, 13:13    [20749129]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
rnk_unauthorized
Guest
А нет, вру, в VBScript тот же баг (((
25 авг 17, 13:15    [20749139]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
`
Guest
rnk_unauthorized

В теории:
Операторы Mod (остаток при делении) и \ (целочисленное деление) имеют одинаковый приоритет

нет
https://msdn.microsoft.com/ru-ru/library/office/gg278455.aspx
25 авг 17, 14:20    [20749388]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 6 7 8 9 10 11 12 13 [14] 15   вперед  Ctrl
Все форумы / Microsoft Access Ответить