![]() |
|
Модераторы: Akina |
![]()
|
|
| LankaLight |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.7.2007 Репутация: нет Всего: нет |
Помогите, пожалуйста советом! нужно, чтобы распечатать отчет, в котором данные по той записи, которая последней была изменена в таблице. Печатать форму - это некрасиво. Тем более, что есть установленная форма отчета и она не совсем совпадает с теми параметрами, которые есть в форме.
|
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: нет Всего: 12 |
Создай отчёт, а там поставь фильтр на нужную запись. У меня вопрос: как ты находишь последнюю запись, в которой было редактирование?
Это сообщение отредактировал(а) kapbepucm - 26.7.2007, 14:03 -------------------- (С) kapbepucm |
|||
|
||||
| LankaLight |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.7.2007 Репутация: нет Всего: нет |
Наверное, я не четко вопрос сформулировала, но он и заключался в том, как найти последнюю редактированную запись! В этом-то и вся загвозка. Я не знаю, как ее искать.
|
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: нет Всего: 12 |
У тебя редактирование той записи в форме происходит? Если да, то создай дополнительное поле в исходной таблице (только не показывай пользователю) и в него автоматически с помощью Now() пиши Date/Time после редактирования (AfterUpdate). Конечно, может есть и лучшие варианты, но на ум лучшего не приходит
Это сообщение отредактировал(а) kapbepucm - 26.7.2007, 15:12 -------------------- (С) kapbepucm |
|||
|
||||
| LankaLight |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.7.2007 Репутация: нет Всего: нет |
не знаю.. Может, я неправильно делаю, но получается, что после сохранения записи обновляется не только та запись, в которой изменения происходили, а вся таблица и при попытке отобрать запись по последену времени выводится весь список. Если у тебя такая проблема решена, не покажешь кусок кода, который это делает?
Добавлено через 2 минуты и 18 секунд И еще, а реально вообще сохранить одну конкретную запись в таблице, а не всю таблицу обновлять при попытке сохранения??? Потому что у меня на сохранить запись все обновляется. |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: нет Всего: 12 |
Как такового кода нет, файл закрыт. Но этот принцип реализуем элементарно. Например, кидаешь на форму поле для даты последней записи, скрываешь, а потом (AfterUpdate) пишешь XXXXX.value=Now. А чтобы обнавлялась вся таблица... не знаю, по идее так быть не должно. Раскажи по-подробнее, как у тебя запись происходит.
Это сообщение отредактировал(а) kapbepucm - 26.7.2007, 19:29 -------------------- (С) kapbepucm |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Поскольку нужно хранить сведения о последней обновленной записи, то из этого автоматически вытекает небоходимость журналирования действий. А коли так - то надо пересматривать собственно структуру базы. Вернее, идеологию структурирования. Потому что там пропущена одна сущность - штамп времени корректировки записи. Для осмысленного совета о рациональной организации нужны дополнительные данные - количество записей, размер записи, объем обновлений в год (с учетом каскадных).
Покажите текст источника данных для формы... это запрос? Вообще правильнее - не привязывать форму к таблице. Т.е. форма свободная, не имеет источника данных. А связь с данными осуществляется либо через соотв. контролы (Data+Grid), либо программно (Connection+Recordset). В последнем случае вообще все поступающее в таблицы контролируется кодом. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Для программного контроля над данными специально придуманы события формы (До добавления, После добавления и п.р.). Выше предложенное решение приведет к ненужным усложнениям. Плюс в Access нет встроеного грида. Он реализуется через табличную форму. LankaLight, расскажи как происходит добавление. Не понятно почему у тебя вся таблица обновляется. Самую последную добавленую запись можно найти по максимальному значению ключевого поля. При условии, что поле - последовательный счетчик. Чтобы найти максимальное значение счетчика можно использовать: - функцию Dmax() - см. справку - запрос SELECT MAX([поле]) FROM .... |
|||
|
||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Все так... когда постоянно прыгаешь из Vb в Access - забываешь где находишься :( Скорее всего именно из-за того что источник данных - запрос...
Даже на однопользовательской локальной БД при некоторых реализациях возможны проблемы... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Akina, да согласен. Скрестив пальцы - заблокировав табличку для изменений - можно решить эту проблемку.
|
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |