КОНДУИТ (от франц. conduite - поведение ) -
в России журнал в гимназиях, духовных учебных заведениях,
кадетских корпусах для записей проступков учащихся. ("Большой энциклопедический словарь" 1998 г.)
В этот разделе вы найдете ошибки и глюки замеченные в разных версиях MSA и
способы борьбы с ними
Версия
Проблема
Решение
Источник
А2000
Свойство LastUpdated (дата последнего изменения) форм, отчетов,
макросов и модулей возвращает неверную дату.
Если считать это свойство: CurrentDb.Containers("Forms").Documents("frm1").LastUpdated
полученное значение будет равно дате создания объекта, а не дате
последнего изменения. При этом в окне БД в столбце "Дата изменения"
данные отображаются верно.
ACCESS "зависает" или "умирает" при удалении
ссылки на объект
Set obj= Nothing. Если объектная переменная
была описана с использованием ключевого слова WithEvents.
Например:
'Класс clGluck
Private WithEvents frm As Form
'если Private frm As Form то все OK
Public Sub Init(frmMonitor As
Form)
Set frm = frmToMonitor
End Sub
'В модуле формы
Dim oGl As clGluck
Private Sub Form_Open(Cancel As Integer)
Set oGl = New clGluck
oGl.Init Me
End Sub
Private
Sub Form_Close()
Set oGl = Nothing
' Здесь MSA "падает"
End Sub
Не использовать явного удаления ссылки
на объект Set obj= Nothing, по крайней мере
в подобных ситуациях. Пусть Access сам собирает мусор.
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
А2000 и выше
При использовании выражения Format(Date();"dd
mmmm yyyy") вместо "19 февраля 2002" выдает "19 феврапя
2002" Буква "л" поменялась на "п".
Этот глюк действует только для февраля месяца. Остальные пишутся нормально.
Если поле представляет собой дату и в формате поля стоит "Длинный
формат даты", то все нормально. Проявляется в VBA, формах и отчетах
Function StringMonth(dateData
As Date, _
strTip As String) As String
If Month(dateData) = 2 Then
StringMonth = Replace(Format _
(dateData, strTip), "п", "л")
Else
StringMonth = Format(dateData, strTip)
End If
End Function
Не работает отправка по почте файла в виде снимка
DoCmd.SendObject acSendReport, "rptОтчетОГенерации&", acFormatSNP,
strКому, , , strТема, varТекст, False
Заменить в строке вызова константу acFormatSNP на "Снимок (*.snp)"
т.е DoCmd.SendObject acSendReport, "rptОтчетОГенерации&", "Снимок (*.snp)", strКому, , , strТема, varТекст, False
Или сохранить сначала отчет в файле snp, а потом отслать его письмом, но уже не через SendObject
А2000 (если установлены А2000 и А2002 одновременно)
Разрушение базы после импорта форм содержащих модуль.
Порядок действий для достижения эффекта:
1. Создайте для теста новую базу. Откройте ее.
2. Выполните в нее импорт каких-нибудь объектов: форм с модулями, просто
модулей кода.
3. Зайдите в редактор кода, убедитесь, что импорт прошел нормально - код
на месте.
4. Не делая лишних движений, сразу сожмите базу.
5. Войдите в редактор кода, дело сделано - база поломана.
Единственное спасение - это незамедлительная компиляция проекта
после импорта объектов!!!!!
Это наиболее яркие примера этого глюка. Как все происходит: Пример
1. Достаточно побегать по записям с помощью курсора, а затем поменять мышкой логическое поле и происходит зффект залипания записи. Возможно
это произойдет не с первой попытки, но произойдет обязательно. Пример 2.
Нажать на кнопку "Вставить запись и спозиционировать". :) Иногда
программа при первом нажатии работает нормально, но при втором или
пропадает рекордсет формы или вообще ничего не происходит. Я менял
версии ADO, не помогло.
В программе используется одна таблица, вот ее код создания: CREATE TABLE
[dbo].[Table1]
([ID] [int] IDENTITY (1, 1) NOT NULL ,
[Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS
NOT NULL ,
[Logic] [bit] NULL)
ON [PRIMARY]
Решения пока нет :-(
Рекомендации :
Избегать обращений к рекордсету формы, работать с данными обращаясь
к ним через форму, а для поиска использовать не методы рекордсета,
а средства Access(FindRecord)