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

нет
https://msdn.microsoft.com/ru-ru/library/office/gg278455.aspx

Ах, вот оно что... Нелогично, в C++ и Transact SQL у умножения, деления и остатка одинаковый приоритет.
26 авг 17, 16:34    [20751160]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
JayDi
Member

Откуда: Сызрань, Россия
Сообщений: 4184
Какова максимальная скорость записи в Microsoft Access очерез oledb? Сколько не пробовал менять настройки и файлы -- получилось добиться лишь порядка 1000 строк в секунду (при полу сотне текстовых и числовых полей). С этим можно что-то сделать?
5 сен 17, 15:33    [20773199]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Beeptec
Member

Откуда:
Сообщений: 3
Относительно ошибки связанной с OLE объектами - "Сервер OLE не зарегистрирован" и т.п.
Решение - открыть объект (в моем случае *.lpg) в браузере к примеру в Firefox, там копируем изображение, вставляем в форме на соответствующее поле объекта OLE.
Работает без проблем.
3 ноя 17, 14:55    [20925085]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5140
Формат базы MDB. Под 2010 версией запускается без проблем. Под 2003 стала выдавать что-то типа "Неправильное присвоение Null". Отладчик ошибку не ловит.
Решение проблемы.
1. Отключаем autoexec и стартовые формы (если есть)
2. Делаем декомпиляцию базы (ключ /decompile)
3. Сжимаем базу.
4. Делаем компиляцию проекта (редактор VBA, меню Debug, пункт Compile...)
5. Подключаем обратно autoexec и стартовые формы (если есть)

Всё работает. Размер базы при этом уменьшается, поскольку из неё удаляется "мусор", который нельзя удалить процедурой "Сжатие/восстановление"

Это так же помогает, когда в программе возникают неопознанные ошибки. Отдельные формы не хотят загружаться или грузятся с ошибками. Возникают обращения к незадействованным событиям.

Вместо декомпиляции можно воспользоваться модулем очистки от "мусора" Юрия Шермана.
Взять можно здесь или здесь
14 апр 18, 11:15    [21338792]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5140
Иногда, довольно редко, прежде чем сделать определённые действия, надо определить, имеет ли пользователь права администратора?

Нашел тут на сайте VBStreets код, который позволяет определить, является ли админом пользователь, вошедший в систему
Код можно посмотреть здесь

Что интересно.
В Access 2003 код великолепно работает, а в 2010 вылетает. Без всяких сообщений об ошибках. Просто идёт на перезагрузку Access и предлагает послать сообщение в Microsoft.
В чём дело, не смог разобраться.

Windows 7 - 32 bit и Windows Server 2008 R2.

Access 2010 - 32 bit 14.0.4750.1000

Access 2003 11.8321.8405 SP3

К сообщению приложен файл (CheckAdmin.rar - 24Kb) cкачать
2 май 18, 13:22    [21382603]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5140
В дополнение к выше написанному.
Оказалось дело в вызове функции FreeSid, которая освобождает идентификатор безопасности (SID), ранее выделенный с помощью функции AllocateAndInitializeSid. Её вызов просто аварийно закрывал Access. Программно перехватить это событие было невозможно.
Для определения привилегий пользователя предлагаю использовать функцию IsUserAnAdmin из библиотеки Shell32, хотя MSDN и пишет, что эта функция является оберткой для CheckTokenMembership, и рекомендует вызвать эту функцию напрямую, чтобы определить статус группы администратора, а не вызвать IsUserAnAdmin. Но в нашем случае лучше использовать функцию IsUserAnAdmin
Определение функции
Public Declare Function IsUserAdmin Lib "Shell32" Alias "IsUserAnAdmin" () As Boolean

В интернете я встречал и вот такой вызов
Public Declare Function IsUserAnAdmin Lib "Shell32" Alias "#680" () As Boolean
4 июл 18, 08:54    [21541269]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 902
Вот такое вот сообщение иногда появляется......
Импортом обьектов в новую базу лечится без проблем.... Но таки что это и почему?

К сообщению приложен файл. Размер - 127Kb
3 сен 18, 10:46    [21662372]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Ганов Александр
Member

Откуда: Петропавловск-Камчатский
Сообщений: 186
Serg197311, тоже возникало несколько раз. причем при возникновении данной ошибки перестают работать любые процедуры на любых контролах формы, втч и на самой форме. лечил также импортом из бэкапа
3 ноя 18, 14:47    [21723264]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 902
Ганов Александр
лечил также импортом из бэкапа
Ну это мы перхоть гильотиной лечим.... Помогает, конечно...... Но как то уж слишком радикально.....
3 ноя 18, 17:36    [21723331]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Ганов Александр
Member

Откуда: Петропавловск-Камчатский
Сообщений: 186
Serg197311, ну вот собственно, опять то же самое. Причем не на какое-то определенное событие в форме или контролах, а на любое и каждое событие в форме и контролах вылетает такая штука. Дело было так, при внесении данных Access вылетел. После открытия в одной из форм началась такая "заморока", причем в момент вылета работа велась в другой форме. Скопировал эту же базу в другое место. Открыл - все ОК. Скопировал обратно с заменой файла - все работает Картинка с другого сайта.

К сообщению приложен файл. Размер - 47Kb
7 ноя 18, 12:37    [21726568]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Проверьте, пожалуйста, имена всех разделов формы - не закрались ли в них какие-нибудь левые символы. (А заодно имя самой формы и имена всех контролов, но это может быть долго.)
7 ноя 18, 15:24    [21726966]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5140
Предыдущим четырём пользователям. Такое, или похожее случается, когда вы правите код в форме открытой в режиме формы. Слетает один из уровней компиляции. Специалисты пишут что количество уровней компиляции в Access Может достигать 11. Я в этом случае пользуюсь модулем очистки от мусора Юрия Шермана, ну или своей модификацией этого модуля.
Модуль Юрия Шермана
моя доработка
7 ноя 18, 16:51    [21727112]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 902
Joss
. Такое, или похожее случается, когда вы правите код в форме открытой в режиме формы.

Да я этим регулярно грешу.....
В основной(довольно большой и сложной) базе - нифига не происходит....
Создал маленькую еще одну для других целей- и понеслась...
Возможно дело в том, что основная база создана была очень давно, я ее просто открыл и пересохранил.....
7 ноя 18, 19:03    [21727260]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
vmag
Member

Откуда: MP
Сообщений: 3991
Serg197311
Создал маленькую еще одну для других целей- и понеслась...

Создал правой кнопкой мыши в проводнике ?
Если так - то это старые грабли, создавай пустые базы через меню акцесса (файл, создать, пустая бд...)
7 ноя 18, 19:08    [21727265]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Serg197311
Member

Откуда: Жуковский
Сообщений: 902
vmag
Serg197311
Создал маленькую еще одну для других целей- и понеслась...

Создал правой кнопкой мыши в проводнике ?
Если так - то это старые грабли, создавай пустые базы через меню акцесса (файл, создать, пустая бд...)

Спасибо, запомню..... Но как создавал - уже и не помню....
7 ноя 18, 19:40    [21727310]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Ганов Александр
Member

Откуда: Петропавловск-Камчатский
Сообщений: 186
Joss, добрый день. дада именно так и было. не думал, что есть взаимосвязь. понял. буду закрывать формы при правке в них когда или переводить в режим конструктора. Спасибо за совет
8 ноя 18, 04:53    [21727597]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 5140
Для любопытных от Даниэля Пино.

Поскольку Microsoft не хочет давать пользователям FREELY сообщения об ошибках, я решил создать эту страницу, чтобы начать собирать информацию о проблемах
https://www.devhut.net/ms-access-bug-listing/
21 ноя 18, 14:29    [21740106]     Ответить | Цитировать Сообщить модератору
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
avedeo
Member

Откуда: Димитровград
Сообщений: 28
ТеньОтцаГамлета, а вот так подумаешь...ну его этот нативный код...ведь может так статься...вот остался
шаг или два до финала разработки и тут перед тобой встает Проблема из темных глубин кода Access и
говорит ..."Куда прешь...не положено...приехали...вылезай"

Так может сразу пойти в Web...там столько вариантов...или в 1С...ERP...там даже переменные можно
на кириллице...может ну его ...этот путь Самурая...вот читаешь повести Ходивших в Access ...
и как то ...страшновато
5 май 19, 08:13    [21877985]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Баги Access (топик не закрыт, можно добавлять)  [new]
Havanka
Member

Откуда:
Сообщений: 41
есть база аксеса.accdb
Которую я 2й год вояю ))
И бух выключила питание сервака.
и я при открытие базы увидел такую надпись

не удалось внести изменения из-за посторяющихся значениях в индексе, первичном ключе или связях.
Измените данные в одном или нескольких полях, содержащих повторяющиеся значения, удалите индекс или переопределите его, разрешив повторяющиеся значения и повторите попытку.

Ну я сначала думал,
1) пересоберу заново в другую базу забрав формы - нихрена, базу не открывает дя импорта
2) Загуглю найду проблему решиться - нихрена везде ответы по таблицам и т.д. База открывается они могут ее редактировать.

В итоге у меня нередактируемая база а просто 50 метров разделенной базы которую я не могу даже открыть.
такой проблемы по открытию не нашел

База разделена, все таблицы как отдельную базу я открыть могу, формы не могу открыть. И причем тут интексы не понятно.

С учетом всеговышесказанного считаю это багом причем не описанным
Если кто найдет инфу как лечить буду бллагодарен

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

Откуда:
Сообщений: 1490
Вот еще один косяк Акцесса. Двойное обращение к хранимке на MS SQL сервере.

Для воспроизведения:

Особенности Акцесса
'пример, демонстрирующий, что открытие рекордсета с запросом в виде "SELECT .. FROM sql_запрос", который обращается к хранимой процедуре, вызовет эту хранимку ДВАЖДЫ
'Возможно, что аналогично происходит не только с обращением к хранимке, но и с любым SELECT`ом
'В приведенном примере после каждого вызова в таблицу добавляется 2 записи, хотя в хранимке происходит добавление только одной записи
'При этом вывод результатов происходит именно для результата первого запуска хранимки, а не второго.

На MS SQL сервере выполняем
1.Создаем таблицу
CREATE TABLE [dbo].[_ttt](
	[ffrom] [nvarchar](128) NULL,
	[dtCrt] [datetime] NULL,
	[kdz] [int] NULL
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[_ttt] ADD  CONSTRAINT [DF__ttt_dtCrt]  DEFAULT (getdate()) FOR [dtCrt]
GO


2. Создаем хранимку
CREATE PROCEDURE _TmpTest
AS
BEGIN
	-- exec _TmpTest
	-- select * from [_ttt] order by dtcrt
	--delete from [_ttt]
	
	SET NOCOUNT ON;
  INSERT INTO [_ttt]([kdz])
  values (1)
  
  select COUNT(*)as cnt from [_ttt]
END
GO
grant execute on _TmpTest TO Public
GO


3. В базе Акцесс создаем процедуру обновления sql-запроса
Public Function editSQLquery(QName As String, stSQL As String, Optional TimeOut As Long = 60) As Boolean

  Dim dbsTMP As DAO.database
  Dim qdfTMP As DAO.QueryDef
  On Error GoTo ErrHandler
  Const prcName As String = "editSQLquery"
  del_tmp_tbl_all
  
  Set dbsTMP = CurrentDb
  Set qdfTMP = dbsTMP.QueryDefs(QName)
  qdfTMP.sql = stSQL
  qdfTMP.ODBCTimeout = TimeOut
  Debug.Print stSQL

Success:
  editSQLquery = True

mEx:
    Set qdfTMP = Nothing
    Set dbsTMP = Nothing
    Exit Function

ErrHandler:
  msgbox Err.Description 'ErrorSave mdlName, prcName, Err.number, "(" & Err.Description & ")" & vbCrLf & "в процедуре " & prcName & " of Module " & mdlName, stSQL
  Resume mEx
  Resume
End Function


4. В БД Акцесс создаем процедуры для теста
Public Function tmpTest() As Long
  Dim rst As DAO.Recordset
  'пример, демонстрирующий, что открытие рекордсета с запросом в виде "SELECT .. FROM запрос", который обращается к хранимой процедуре, вызовет эту хранимку дважды
	'Возможно, что аналогично происходит не только с обращением к хранимке, но и с любым SELECT`ом
  'В приведенном примере после каждого вызова в таблицу добавляется 2 записи, хотя в хранимке происходит добавление только одной записи
  'При этом вывод результатов происходит именно для результата первого запуска хранимки, а не второго.
  editSQLquery "sql_Any", "exec _TmpTest"
  
  Set rst = CurrentDb.OpenRecordset("SELECT * FROM sql_Any", dbOpenSnapshot)
  'После этого вызова в базе уже 2 строки в таблице [_ttt], а рекордсет вернет значение 1. После следующего вызова он вернет значение 3, потом 5

  If rst.RecordCount <= 0 Then
    MsgBox "Нет данных!", vbExclamation, NameApp
    Exit Function
  End If
  Debug.Print rst!Cnt
End Function


и

Public Function tmpTest2() As Long
  Dim sql As String, NeedVozvr As Boolean, N As Long
  Dim rst As DAO.Recordset

  editSQLquery "sql_Any", "exec _TmpTest"
  
  'А вот такое обращение выполнит хранимку один раз
  Set rst = CurrentDb.OpenRecordset("sql_Any", dbOpenSnapshot)
  If rst.RecordCount <= 0 Then
    MsgBox "Нет данных!", vbExclamation, NameApp
    Exit Function
  End If
  Debug.Print rst!Cnt
End Function
16 июн 20, 09:14    [22151356]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 6 7 8 9 10 11 12 13 14 [15]
Все форумы / Microsoft Access Ответить