Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Последняя измененная запись в таблице 
:(
    Опции темы
LankaLight
Дата 26.7.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.7.2007

Репутация: нет
Всего: нет



Помогите, пожалуйста советом! нужно, чтобы распечатать отчет, в котором данные по той записи, которая последней была изменена в таблице. Печатать форму - это некрасиво. Тем более, что есть установленная форма отчета и она не совсем совпадает с теми параметрами, которые есть в форме. 
PM MAIL   Вверх
kapbepucm
Дата 26.7.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Создай отчёт, а там поставь фильтр на нужную запись. У меня вопрос: как ты находишь последнюю запись, в которой было редактирование?

Это сообщение отредактировал(а) kapbepucm - 26.7.2007, 14:03


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
LankaLight
Дата 26.7.2007, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.7.2007

Репутация: нет
Всего: нет



Наверное, я не четко вопрос сформулировала, но он и заключался в том, как найти последнюю редактированную запись! В этом-то и вся загвозка. Я не знаю, как ее искать.
PM MAIL   Вверх
kapbepucm
Дата 26.7.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



У тебя редактирование той записи в форме происходит? Если да, то создай дополнительное поле в исходной таблице (только не показывай пользователю) и в него автоматически с помощью Now() пиши Date/Time после редактирования (AfterUpdate). Конечно, может есть и лучшие варианты, но на ум лучшего не приходит smile В БД, которую я сейчас ковыряю (не мой проект), устроено именно так

Это сообщение отредактировал(а) kapbepucm - 26.7.2007, 15:12


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
LankaLight
Дата 26.7.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.7.2007

Репутация: нет
Всего: нет



не знаю.. Может, я неправильно делаю, но получается, что после сохранения записи обновляется не только та запись, в которой изменения происходили, а вся таблица и при попытке отобрать запись по последену времени выводится весь список. Если у тебя такая проблема решена, не покажешь кусок кода, который это делает? smile

Добавлено через 2 минуты и 18 секунд
И еще, а реально вообще сохранить одну конкретную запись в таблице, а не всю таблицу обновлять при попытке сохранения??? Потому что у меня на сохранить запись все обновляется.
PM MAIL   Вверх
kapbepucm
Дата 26.7.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Как такового кода нет, файл закрыт. Но этот принцип реализуем элементарно. Например, кидаешь на форму поле для даты последней записи, скрываешь, а потом (AfterUpdate) пишешь XXXXX.value=Now. А чтобы обнавлялась вся таблица... не знаю, по идее так быть не должно. Раскажи по-подробнее, как у тебя запись происходит.

Это сообщение отредактировал(а) kapbepucm - 26.7.2007, 19:29


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Akina
Дата 26.7.2007, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Поскольку нужно хранить сведения о последней обновленной записи, то из этого автоматически вытекает небоходимость журналирования действий. А коли так - то надо пересматривать собственно структуру базы. Вернее, идеологию структурирования. Потому что там пропущена одна сущность - штамп времени корректировки записи. Для осмысленного совета о рациональной организации нужны дополнительные данные - количество записей, размер записи, объем обновлений в год (с учетом каскадных).

Цитата(LankaLight @  26.7.2007,  17:07 Найти цитируемый пост)
получается, что после сохранения записи обновляется не только та запись, в которой изменения происходили, а вся таблица 

Покажите текст источника данных для формы... это запрос?

Цитата(LankaLight @  26.7.2007,  17:07 Найти цитируемый пост)
а реально вообще сохранить одну конкретную запись в таблице, а не всю таблицу обновлять при попытке сохранения??? Потому что у меня на сохранить запись все обновляется. 

Вообще правильнее - не привязывать форму к таблице. Т.е. форма свободная, не имеет источника данных. А связь с данными осуществляется либо через соотв. контролы (Data+Grid), либо программно (Connection+Recordset). В последнем случае вообще все поступающее в таблицы контролируется кодом.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 27.7.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Akina @  26.7.2007,  21:07 Найти цитируемый пост)
Вообще правильнее - не привязывать форму к таблице. Т.е. форма свободная, не имеет источника данных. А связь с данными осуществляется либо через соотв. контролы (Data+Grid), либо программно (Connection+Recordset). В последнем случае вообще все поступающее в таблицы контролируется кодом.


Для программного контроля над данными специально придуманы события формы (До добавления, После добавления и п.р.). Выше предложенное решение приведет к ненужным усложнениям. Плюс в Access нет встроеного грида. Он реализуется через табличную форму. 


LankaLight, расскажи как происходит добавление. Не понятно почему у тебя вся таблица обновляется. Самую последную добавленую запись можно найти по максимальному значению ключевого поля. При условии, что поле - последовательный счетчик. Чтобы найти максимальное значение счетчика можно использовать:
- функцию Dmax() - см. справку
- запрос SELECT MAX([поле]) FROM ....
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 29.7.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(bopoha @  27.7.2007,  21:46 Найти цитируемый пост)
Выше предложенное решение приведет к ненужным усложнениям. Плюс в Access нет встроеного грида. Он реализуется через табличную форму. 

Все так... когда постоянно прыгаешь из Vb в Access - забываешь где находишься :( 

Цитата(bopoha @  27.7.2007,  21:46 Найти цитируемый пост)
Не понятно почему у тебя вся таблица обновляется. 

Скорее всего именно из-за того что источник данных - запрос...

Цитата(bopoha @  27.7.2007,  21:46 Найти цитируемый пост)
Чтобы найти максимальное значение счетчика можно использовать:
- функцию Dmax() - см. справку
- запрос SELECT MAX([поле]) FROM .... 

Даже на однопользовательской локальной БД при  некоторых реализациях возможны проблемы...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 29.7.2007, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Akina, да согласен. Скрестив пальцы - заблокировав табличку для изменений - можно решить эту проблемку.  smile 
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.