|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Предлагаю сюда собирать известные "дырки" акцессе(-ах), а-ля if me.mysubform.mycheckbox then (кстати, кто ее щупал, поделитесь :) Наверняка, эта информация могла бы многим пригодится... Просьбы к пишущим: 1. Указывать версию(и) Access, где замечена ошибка, используемые библиотеки (ADO/DAO и т.п.) и версии иных программ, если надо. 2. Указывать гарантированный (ну или почти) способ ее получения. 3. По возможности указывать способы борьбы или обхода. И от себя первый, который пришел на ум (последний, с которым встречался). -------------------------------------------------------------------- Access 2002 SP3, SQL Server 2000 DE SP3, ADP Ошибка: Создаем на сервере таблицу с полем типа bit. Создаем в проекте форму (Форма1) с флажком. Источник данных формы - созданная таблица, флажка - созданное в ней поле. Выполняем команду Forms("Форма1").recordset.resync или Forms("Форма1").recordset.resync adAffectCurrent, adResyncAllValues Щелкаем по флажку. Получаем "приложение выполнило недопустимую операцию, будет закрыто" и т.д. С полями иного типа акцесс может выпасть после нескольких resync'ов в процессе редактирования записи. Лечение: Вместо Forms("Форма1").recordset.resync надо писать Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Этот способ работает тем дольше, чем больше записей в форме. Ошибка неактуальна, если в форме не разрешено изменение/добавление записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2004, 17:11 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
WinXP (sp1), A97 (SP2) (может по-этому?. Больше Админ не качает :() : Столкнулся с таким багом, как лечить не знаю: при попытке вызвать из Form2 метод .Undo контрола подчиненной формы Form1, например, из [Form2] вызвать forms!Form1!sumFORM.form!field1.undo получаю срезанный напрочь без предупреждения Access без права переписки с кем-либо кроме Билли на 10 лет:)) (пришлось обходиться без этого) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2004, 00:06 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Я создал базу на SQL Server, все ключи сделал bigint, пытаюсь связать с клиентом в Access, и получаю таблицу где вместо записей стоит #Удалено. Ключевое поле показывало, что оно char(255) Тогда я все ключи сделал как numeric и все у меня нормально заработало. Access 2000 - 2002 пробовал на обоих версиях. SQL Server 2000 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2004, 16:26 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
MS Access 2002 SP1 - при попытке последовательного открытия нескольких отчетов на печать - акес вылетает - исправленно в SP2. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2004, 12:42 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Только что обнаружилось.\r \r /topic/86296\r \r Если в запросе идет поле из таблицы (пусть даже с алиасом, но главное без формулы), а потом * (в смысле "все поля"), то это поле среди "всех полей" не показывается.\r \r Если такой запрос включается в Union, то в лучшем случае вылезает ошибка про несоответствие количества полей, а в худшем показывается на одно поле меньше, но не те поля под не теми.\r \r Пример: если в таблице T есть поля A, B, то:\r select A as Z, * from T -> выдает Z, B\r select B as Z, * from T -> выдает Z, A\r select 1 as Z, * from T -> выдает Z, A, B\r union 1-го со 2-м -> выдает 2 поля, причем нигде нет ни A под A, ни B под B\r union 1-го с 3-м -> выдает ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2004, 22:26 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
вс все работает правильно. это не баг. это логика. * означает, что выбраны все поля. а так как поле уже выбрано, то и дважды его показывать ни к чему. для того, чтобы его показать, надо поставить принудительно select T.*, Поле1 вот тогда оно покажет вот тебе справка: SELECT [предикат] { * | таблица.* | [таблица.]поле_1 [AS псевдоним_1] [, [таблица.]поле_2 [AS псевдоним_2] [, ...]]} FROM выражение [, ...] [IN внешняяБазаДанных] [WHERE... ] [GROUP BY... ] [HAVING... ] [ORDER BY... ] [WITH OWNERACCESS OPTION] предикат - Один из следующих предикатов отбора: ALL, DISTINCT, DISTINCTROW или TOP. Предикаты используются для ограничения числа возвращаемых записей. Если они отсутствуют, по умолчанию используется предикат ALL. * Указывает, что выбраны все поля заданной таблицы или таблиц. таблица Имя таблицы, из которой должны быть отобраны записи. поле_1, поле_2 - Имена полей, из которых должны быть отобраны данные. Если включить несколько полей, они будут извлекаться в указанном порядке. псевдоним_1, псевдоним_2 Имена, которые станут заголовками столбцов вместо исходных названий столбцов в таблице. выражение - Имена одной или нескольких таблиц, которые содержат отбираемые данные. внешняяБазаДанных - Имя базы данных, которая содержит таблицы, указанные с помощью аргумента выражение, если они не находятся в текущей базе данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 10:56 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Ну и чем твое select T.*, Поле1 отличается от моего select Поле1, T.* ? Причем ведь я даже даю алиас. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 13:14 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
ты написал select A as Z, * from T а я по-другому select A as Z, T.* from T ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 13:37 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Да, действительно. Итого: алиас не помогает получить поле два раза, а помогает указание имени таблицы при *. Закономерность совершенно понятна, но логики я в ней не наблюдаю. Я был уверен, что если в селекте всего одна таблица, то можно вместо T.* писать просто *. Вот перед нами случай, когда это неверно. Есть ли еще такие случаи? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 13:45 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Интересно, стоит ли сюда повторно писать о найденных мною багофичах? Имею в виду глюк с Left/Right Join'ами по вычисляемому полю и и безобразие с агрегатами внутри подзапросов Union All. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 14:03 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Сделай одним постом подборку ссылок на другие топики. И при каждой ссылке минимальный комментарий. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 14:05 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
вс логика така: если * , то хочешь увидеть все столбцы (не какой-то конкретной таблицы, а всех таблиц) и она тебе их и показывает. если конкретно Т.* - то должна выдать все поля конкретной таблицы, невзирая на то, что было указано ранее. здесь ты как бы говоришь ей, шо хочу видеть поля именно из этой таблицы. вот она тебе конкретно и выдает. все правильно она раьотаит. как ее ты спрашиваешь, так она и отвечает. сформулируй четко для нее запрос, она тебе четко и ответит. при нечетком формулровании, она начинает думать так, как считает нужным. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 14:24 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
2 ищ: * - значит все поля из всех таблиц T.* - значит все поля из данной таблицы Если одно из полей упомянуто в том же селекте еще раз, то ниоткуда не следует, что эти два синтаксиса должны вести себя по-разному. Конечно, узнав про это явление, можно задним числом сформулировать, в чем состоит разница. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2004, 14:51 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Сообщения об ошибках в *.ADP: Если на уровне таблицы задать текст сообщения об ошибке при нарушении ограничения или ключа, он будет выводиться только для пользоватетеля dbo. Под любым другим пользователем сообщение не выводится, вместо него выводится стандартное сообщение об ошибке SQL Server 2000. Исправить эту ситуацию программно невозможно, если не лезть в Recordset формы (сообщение об ошибке недоступно), а лезть туда не стоит, как уже говорилось многими выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2004, 14:45 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 20:56 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
А на той странице как раз ссылка на наше обсуждение, которое именно той страницей и было спровоцировано. /topic/33519 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 21:00 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Green2Я создал базу на SQL Server, все ключи сделал bigint, пытаюсь связать с клиентом в Access, и получаю таблицу где вместо записей стоит #Удалено. Ключевое поле показывало, что оно char(255) Тогда я все ключи сделал как numeric и все у меня нормально заработало. Access 2000 - 2002 пробовал на обоих версиях. SQL Server 2000 У меня Numeric не помогло - поставил int - все сразу стало нормально. Access 2000 + Sql2000 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 08:29 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
ADP 2000 -2003 баг с использованием суммового поля в примечании формы при использовании фильтра. =sum(поле) ведет себя по разному в 2000 без сервис паков срезу пишет ошибку в 2002 после использования фильтра формы в 2003 после нескольких попыток реквери / фильтрации ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 08:51 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
По багу автора Создаем на сервере таблицу с полем типа bit. В А97 (в других - не знаю) помогает назначение default на это поле. По-видимому, Акс не может превратить автоматом Null to boolean Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2004, 09:41 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Ошибка компиляции: http://www.sql.ru/forum/actualthread.aspx?tid=121644 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2004, 21:26 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
мои 2 копейки: странное поведение при закрытии Access: при закрытии основного окна Access вызывается Form_Load /topic/115316 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2004, 22:06 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
авторЕсли в одном ЛистБоксе переменная = 0,25л Молоко, то после добавления в другой ЛистБокс и удаленеия сей переменной из первого ЛистБокса, получается следующие: в первом ЛистБоксе переменная становится равной 25л Молоко и добаляется к предыдущему значению. http://www.sql.ru/forum/actualthread.aspx?tid=127141 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2004, 17:07 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
MS SQL 2000 SP3 Access ADP Взято отсюда. В Access не имеет смысла пользоваться не-глобальными временными таблицами, иначе, как в хранимых процедурах (которые удалят таблицы после работы). Это не баг, но я нигде не видел отдельного упоминания об этом эффекте, поэтому, думаю, будет невредно выложить отдельно. Создайте форму из одной кнопки; в обработчик нажатия кнопки поместите этот код: Код: plaintext
На выделенной строке получаем ошибку "Invalid object name #ttt". Если войти в отладку, подождать несколько секунд, пока форма получит записи, и продолжить выполнение программы, то программа отработает дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2004, 21:16 |
|
Баги Access (топик не закрыт, можно добавлять)
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4.
Я бы это все-таки другими словами сказал. Нельзя полагаться на неизменность/уникальность объекта соединения, возвращаемого методом. CurrentProject.Connection. Гарантируется только, что метод доступен, и возвращает объект соединения. Однако последовательное обращение к методу может приводить к возврату различных объектов. Например, в случае, когда все текущие открытые соединения заняты/блокированы обработкой команды и выборкой результата, акцесс просто откроет в момент обращения еще одно соединение и вернет его в ответ на обращение. Это необходимо иметь ввиду по крайней мере при последовательном исполнении набора команд типа CurrentProject.Connection.Execute (с выражением лица) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2004, 10:39 |
|
|
start [/forum/topic.php?fid=45&msg=32478678&tid=1610055]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 514ms |
0 / 0 |