2011-12-20 1 views
0

Прошло некоторое время с тех пор, как я должен был что-либо сделать с проектом Access, поэтому простите меня, если это будет легко.Проблемы с Access Project Project Forms, не позволяющие вводить данные/данные обновления

У меня есть база данных Access 2007, которую я преобразовал в проект Access 2007. Я создал все таблицы & просмотров на сервере SQL 2008, предоставил все необходимые разрешения и начал тестирование.

Если у меня возникли проблемы, у меня есть форма, которая используется для обновления данных. Форма подается из представления (все таблицы в представлении имеют первичные ключи), а представление - привязано к схеме. В форме для некоторых полей у меня есть обработчик события «Изменить», который обновляет поле «Last_Worked», чтобы мы могли отслеживать последний раз, когда эти поля были изменены. (поле «Last_Worked» является «datetime» на сервере SQL). Обработчики событий в основном «Last_Worked = Now()».

Проблема в том, что для тех полей, где у меня есть обработчик событий «Изменить», я не могу ничего помещать в эти поля, я начинаю вводить текст и ничего не отображается в поле. Когда я проверяю поле «Last_Worked» в таблице, оно обновляется, но поля, которые я попытался изменить из формы, не меняются.

Я могу обновить данные и вставить новые записи из dataview, поэтому представление, которое подает форму, не доступно только для чтения. Если я удаляю обработчики событий, проблема уходит, но мне нужно регистрировать, когда эти поля обновляются. Я попытался сделать «Me! Last_Worked = Now()» и «Me! Last_Worked.Value = Now()» в обработчиках событий и получить ту же проблему, я не могу обновлять/редактировать эти поля.

Это отлично работало в Access, и я даже создал пустую базу данных Access, скопировал формы поверх, создал связанные таблицы с представлениями на сервере и работал. Он просто не работает как проект доступа.

Любая помощь будет оценена по достоинству.

ответ

0

Когда вы говорите обработчик событий, вы имеете в виду, что вы установили источник управления? Вы не можете этого сделать, если вам нужен элемент управления для ввода данных. Также обратите внимание, что событие изменения выполняется для каждого небольшого изменения. Вы можете использовать значение по умолчанию для новых записей или запустить некоторый VBA в событии обновления некоторого соответствующего элемента управления. Я считаю, что в этом случае вам нужно:

Private Sub Form_BeforeUpdate(Cancel As Integer) 
    Me.LastChanged = Now() 
End Sub 
+0

Извините за поздний ответ, довольно занят. Что касается «Обработчика событий», я имею в виду, как «Изменить», «BeforeUpdate» и т. Д. С тех пор я решил проблему, переместив код в AfterUpdate, и он работает нормально. Спасибо за помощь. – ByerRA

+0

@ByerRA AfterUpdate для формы не является хорошим событием, которое можно использовать для изменения чего-либо в форме, потому что это вызовет бесконечный цикл. Я уверен, что вы должны использовать событие после обновления элемента управления или обновлять данные каким-либо другим способом. – Fionnuala