|
|
|
| Уважаемые Форумчане,
Хотел бы обратиться к Вам за помощью.
В Access сам не силен, но кое что уже сам могу.
Скачал в версии 2007 Access пример от майкрософт - ОСНОВНЫЕ СРЕДСТВА
Так вот в одной из форм он там ведет журнал изменений и примечаний.
В источнике данных вбидата формула.
=ColumnHistory([RecordSource];"Примечания";"[ИД]=" & Nz([ИД];0))
Не могу понять куда он сохраняет все эти введенные примечания?!?!
В самой таблице к которой привязана форма есть только последний введенный комментарий.
А как он и ГДЕ все остальные хранит я не понимаю.
Подскажите пожалуйста.
С уважением,
Александр | |
|
| |
|
|
|
| Думаю, что ColumnHistory - это функция. Ищи ее определение и разберешься.
[RecordSource] - источник данных
"Примечание" - поле
"[ИД]=" & Nz([ИД];0) - условие отбора | |
|
| |
|
|
|
| Попробую поискать... что за этакая фнкция ColumnHistory | |
|
| |
|
|
|
| Вот нашел, действительно функция поля МЕМО
Application.ColumnHistory Method
Office 2007
Access Developer Reference
Gets the history of values that have been stored in a Memo field.
Version Information
Version Added: Access 2007
Syntax
expression.ColumnHistory(TableName, ColumnName, queryString)
expression A variable that represents an Application object.
Parameters
Name Required/Optional Data Type Description
TableName Required String The name of the table that contains the Append Only field.
ColumnName Required String The name of the field to display the history for.
queryString Required String A String used to locate the record. It is like the WHERE clause in an SQL statement, but without the word WHERE.
Return Value
String
Remarks
A Memo field's AppendOnly property must be set to True in order for Access to store the change history for the field.
Example
The following example prints the salary history of employee number 147 to the Immediate window.
Visual Basic for Applications
Sub colhist()
Dim sHistory As String
sHistory = Application.ColumnHistory("Employees", "Salary", "ID=147")
Debug.Print sHistory
End Sub | |
|
| |
|
|
|
| Похоже что всё таки собака порылась в RecordSource, и вот как его выцепить и понять где он хранитсья и как его править или чистить я пока понять немогу, помогите кто знает. | |
|
| |
|
|
|
| ответ находится в самом вопросе - у любого объекта есть RecordSource - так вот если
str_Rec = Me.RecordSource - получим текстовую строку содержащую источник строк.
его можно напиcать програмно
Me.RecordSource = "select * from " & Name_Tabla & " where ID=" & Forms!Forma_2!ID
получаем рекордсет который открывает таблу имя которой хранится в Name_Tabla и с фильтром по полю ID, который равен текущему ID в форме Forma_2
правим и чистим - "элементарная" обработка строки.
так же можно получить Сортировку, Фильтр и проч навоторы формы/отчета
str_Rec = Me.Order
str_Rec = Me.Filter
получаем строку сортировки , фильтра | |
|
| |
|
|
|
| recordsource - источник записей для формы
свойство формы
тип текстовый
это либо имя таблицы либо имя запроса либо строка написанная на языке SQL
хранится внутри формы
найти- зайти в свойства формы в режиме конструктора на вкладке данные строка источник записей | |
|
| |
|
|
|
| Да всё верно ссылка идет на таблицу, но в таблице это поля является МЕМО.
Перерыл весь интернет касательно поля МЕМО и нашел что с 2007 версии Access добавлена такая мулька как "Только добавление".
Надо в режиме конструктора таблиц встать на поле МЕМО и в общих свойствах прокрутить до самого низа, там стоит флажок "ДА" и справке подсказка ВЕСТИ ЖУРНАЛ ЭТОГО ПОЛЯ,
При этом Access начинает вести журнал этого поля, т.е. сохранять дату, время и значения этого поля. - историю поля проще говоря.
Так вот я собственно и немогу найти возможности как редактировать этот журнал на случай ошибки.
Если убрать с таблицы флажок ДА, то он удалит весь журнал ВООБЩЕ, а мне надо лишь в конкретном ID конкретную запись удалить или исправить...
Пробовал с str_Rec =Me.Recordsource. но не получается.
Сделал вот такой макрос
Private Sub Comments_History_Click()
str_Rec = Me.RecordSource
End Sub
Притом в самом Comments_History в форме прописана как раз та формула о которой я писал в начале =ColumnHistory([RecordSource];"Примечания";"[ИД]=" & Nz([ИД];0))
ПОМОГИТЕ=((((( Я окончательно запутался | |
|
| |
|
|
|
| вообще-то такой способ журналирования изменей меня немного пугает :)
как-то это идет вразрез с классическими подходами к ведению логов изменений. | |
|
| |
|
|
|
| Попробуй сделать запрос к этой табле на выборку данных из этого мемо поля.
Условия отбора напиши как Like "*" & "Искомое"
или как Like "*" & "Искомое" & "*"
Так начнёшь находить нужные данные, а дальше мысль появится | |
|
| |
|
35 Кб. |
|
| Короче выкидываю пример, поскольку без него толком ничего объяснить не могу.
Откройте пожалуйста вкладку примечания в форме которая появится и подскажите как отредактировать журнал. | |
|
| |
|
|
|
| насколько я понял журнал ведется не для того, чтобы его редактировать
я такой штукой еще не пользовался, ничего определенного сказать не могу, сам веду учет изменений в таблице вида
TableName - имя таблицы в которой вносились изменения
FieldName - имя поля в котором данные изменены
OldValue - значение поля до изменения
ChangeDate - дата внесения изменений
UserID - идентиашкатор пользователя | |
|
| |
|
|
|
| Уважаемый Explorer
А можете скинуть примерчик с организацией этой таблицы?? | |
|
| |
|
|
|
| как-то так, примерно
http://www.rogersaccesslibrary.com/forum/topic399&OB=DESC.html | |
|
| |
|
|
|
| Ясно спасибо!
Тем не менее оставляю вопрос открытым, мне кажется что способ выложенный мной довольно интересно исполнен, и научиться его окучивать было бы полезно. Кто знает где с ним придется столкнутся... | |
|
| |
|
|
|
| у мну A 2003
| |
|
| |