2010-10-14 4 views
3

Пытается построить запрос в Access 2007. Один из столбцов имеет тип данных «Memo». Иногда возвращается последняя версия, а для других - пустой. Только если я щелкните правой кнопкой мыши и выберите «Показать историю столбцов» в каждой строке, могу ли я увидеть полный набор данных в этом столбце. Есть ли способ разработки конструктора запросов или SQL, чтобы эти данные могли быть получены в полном объеме?Как запросить историю столбцов из поля «memo» в Access 2007?

+1

Было бы интересно, если вы найдете это достойное решение. Мое решение в прошлом заключалось в том, чтобы экспортировать все в csv и импортировать его в mssql (используется текстовое поле). Дополнительные пункты для всех, кто включает «удалить MS Access» в своем ответе;) – Twelfth

ответ

3

Нашел ответ, указав функцию VBA, которая возвращает историю столбцов в виде строки. Затем эта функция используется в запросе «Поле». Щелкните правой кнопкой мыши на ячейке «Поле» в построителе запросов и выберите «Создать» в меню правой кнопки мыши. Здесь вы можете найти функцию VBA. Выражение строитель будет выглядеть примерно так:

Expr1: GetHistory([ID]) 

Вот функция VBA:

Public Function GetHistory(rowID As Integer) As String 
    On Error Resume Next 
    Dim sHistory As String 
    sHistory = Application.ColumnHistory("Table Name", "Column Name", "ID=" + CStr(rowID)) 
    GetHistory = sHistory 
End Function 

полезное чтение:

+0

Другая полезная ссылка: http://msdn.microsoft.com/en-us/library/bb242869%28office.12%29.aspx –

+0

Я считаю, что эти новые memo-поля append-only (новые в A2007) являются ошибкой - это денормализованные данные, и каждое из отдельных изменений должно быть записью в отдельной таблице. Кроме того, имейте в виду, что они (наряду с полями с несколькими значениями и полем прикрепления, все из которых работают по принципу скрытия структуры N: N за интерфейсом) были введены в Access для совместимости с Sharepoint. Вне этого контекста, я думаю, я бы избегал их. –

+0

База данных Access, которая запрашивала запрос на основе этого поля «Заметки», была создана через SharePoint. Я согласен, что их стоит избегать, но это была уже существующая база данных, и запрос был инициирован руководством для получения этих данных в отчете о доступе. Веселые времена. –

Смежные вопросы