Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Access 2007
 
 автор: gaz-polutorka   (07.06.2011 в 12:48)   личное сообщение
 
 

Уважаемые Форумчане,

Хотел бы обратиться к Вам за помощью.
В Access сам не силен, но кое что уже сам могу.
Скачал в версии 2007 Access пример от майкрософт - ОСНОВНЫЕ СРЕДСТВА
Так вот в одной из форм он там ведет журнал изменений и примечаний.
В источнике данных вбидата формула.

=ColumnHistory([RecordSource];"Примечания";"[ИД]=" & Nz([ИД];0))

Не могу понять куда он сохраняет все эти введенные примечания?!?!
В самой таблице к которой привязана форма есть только последний введенный комментарий.
А как он и ГДЕ все остальные хранит я не понимаю.
Подскажите пожалуйста.

С уважением,
Александр

  Ответить  
 
 автор: Дядя Федор   (07.06.2011 в 12:56)   личное сообщение
 
 

Думаю, что ColumnHistory - это функция. Ищи ее определение и разберешься.
[RecordSource] - источник данных
"Примечание" - поле
"[ИД]=" & Nz([ИД];0) - условие отбора

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 12:57)   личное сообщение
 
 

Попробую поискать... что за этакая фнкция ColumnHistory

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 13:01)   личное сообщение
 
 

Вот нашел, действительно функция поля МЕМО

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

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 13:33)   личное сообщение
 
 

Похоже что всё таки собака порылась в RecordSource, и вот как его выцепить и понять где он хранитсья и как его править или чистить я пока понять немогу, помогите кто знает.

  Ответить  
 
 автор: kot_k_k   (07.06.2011 в 14:06)   личное сообщение
 
 

ответ находится в самом вопросе - у любого объекта есть 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
получаем строку сортировки , фильтра

  Ответить  
 
 автор: snipe   (07.06.2011 в 14:15)   личное сообщение
 
 

recordsource - источник записей для формы
свойство формы
тип текстовый
это либо имя таблицы либо имя запроса либо строка написанная на языке SQL
хранится внутри формы
найти- зайти в свойства формы в режиме конструктора на вкладке данные строка источник записей

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 15:49)   личное сообщение
 
 

Да всё верно ссылка идет на таблицу, но в таблице это поля является МЕМО.
Перерыл весь интернет касательно поля МЕМО и нашел что с 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))

ПОМОГИТЕ=((((( Я окончательно запутался

  Ответить  
 
 автор: Explorer   (07.06.2011 в 15:52)   личное сообщение
 
 

вообще-то такой способ журналирования изменей меня немного пугает :)
как-то это идет вразрез с классическими подходами к ведению логов изменений.

  Ответить  
 
 автор: час   (07.06.2011 в 16:07)   личное сообщение
 
 

Попробуй сделать запрос к этой табле на выборку данных из этого мемо поля.
Условия отбора напиши как Like "*" & "Искомое"
или как Like "*" & "Искомое" & "*"
Так начнёшь находить нужные данные, а дальше мысль появится

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 16:14)   личное сообщение
35 Кб.
 
 

Короче выкидываю пример, поскольку без него толком ничего объяснить не могу.

Откройте пожалуйста вкладку примечания в форме которая появится и подскажите как отредактировать журнал.

  Ответить  
 
 автор: Explorer   (07.06.2011 в 16:45)   личное сообщение
 
 

насколько я понял журнал ведется не для того, чтобы его редактировать

я такой штукой еще не пользовался, ничего определенного сказать не могу, сам веду учет изменений в таблице вида

TableName - имя таблицы в которой вносились изменения
FieldName - имя поля в котором данные изменены
OldValue - значение поля до изменения
ChangeDate - дата внесения изменений
UserID - идентиашкатор пользователя

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 16:50)   личное сообщение
 
 

Уважаемый Explorer
А можете скинуть примерчик с организацией этой таблицы??

  Ответить  
 
 автор: Explorer   (07.06.2011 в 17:04)   личное сообщение
 
 

как-то так, примерно

http://www.rogersaccesslibrary.com/forum/topic399&OB=DESC.html

  Ответить  
 
 автор: gaz-polutorka   (07.06.2011 в 17:22)   личное сообщение
 
 

Ясно спасибо!
Тем не менее оставляю вопрос открытым, мне кажется что способ выложенный мной довольно интересно исполнен, и научиться его окучивать было бы полезно. Кто знает где с ним придется столкнутся...

  Ответить  
 
 автор: час   (07.06.2011 в 17:48)   личное сообщение
 
 

у мну A 2003

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList