Rambler's Top100
Российский фонд помощи
Навигация
Главная
MS ACCESS
VB
ASP
PHP
Наши друзья
Поиск
Форум
Лента новостей
Новый сайт

Online
Рассылки Subscribe.Ru
Работа с MS Access
Подписаться письмом
Реклама на сайте
 
Главная arrow MS ACCESS arrow Кондуит
Кондуит


Новые поступления в КОНДУИТ
Автор Administrator   
12.06.2002 г.

КОНДУИТ (от франц. conduite - поведение ) -
в России журнал в гимназиях, духовных учебных заведениях,
кадетских корпусах для записей проступков учащихся.
("Большой энциклопедический словарь" 1998 г.)

В этот разделе вы найдете ошибки и глюки замеченные в разных версиях MSA и способы борьбы с ними

Версия
Проблема
Решение
Источник
А2000

Свойство LastUpdated (дата последнего изменения) форм, отчетов, макросов и модулей возвращает неверную дату.
Если считать это свойство: CurrentDb.Containers("Forms").Documents("frm1").LastUpdated полученное значение будет равно дате создания объекта, а не дате последнего изменения. При этом в окне БД в столбце "Дата изменения" данные отображаются верно.

Решения нет. Признано MS
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q299554

А97 и выше

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
А2002
Не удается открыть окно диалога для сохранения файла
Dim dlgSaveAs As FileDialog
Set dlgSaveAs = Application.FileDialog(msoFileDialogSaveAs)

Использовать API функции

А2002
(только русская версия)
Не работает отправка по почте файла в виде снимка
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. Войдите в редактор кода, дело сделано - база поломана.

Единственное спасение - это незамедлительная компиляция проекта после импорта объектов!!!!!

A2000, A2002

Связанные dBase и Paradox таблицы доступны только для чтения
данных.

Установить Microsoft Jet 4.O Service Pack5
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q239114 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q282010

A2000(adp) + MSSQL 2000 , A2002 (adp)+
MSSQL 2000

Это наиболее яркие примера этого глюка. Как все происходит:
Пример 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)

Пример демонстрирующий данную ошибку можно взять здесь

Ваш коментарий будет первым | Просмотров: 6774

 
Пример для демонстрации глюка А2000,A2002 (adp) + MSSQL 2000
Автор Дмитрий Филатов   
31.01.2002 г.
Описание ошибки в разделе Кондуит

Коментарии (2) | Просмотров: 6042

Подробнее...
 
Реклама на сайте
HiProg.com - Технологии программирования
Rambler's Top100 TopList