Как переключаться между представлениями «Форма доступа» и «Таблица» и оставаться в той же записи без фильтрации?

В MS Access 2007 я хочу переключаться между представлениями таблицы и формы без фильтрации и оставаться в текущей записи.

Должен ли я использовать закладку? Как ? или Как разместить на ленте кнопку для переключения представлений без поиска записи или использования фильтра.

Мне это нужно для запуска Access 2007 Runtime, так как он будет реализован на нелицензионном компьютере. Кажется, что некоторые кнопки и группы ленты не отображаются, даже если они определены:

Я попробовал параметры «GroupViews» и «ViewsModeMenu» на ленте, но они не работают в среде выполнения. Кроме того, любые параметры ленты, которые изменяют вид, также запрашивают первую запись в наборе данных, а не сохраняют текущую запись.


person Community    schedule 14.01.2010    source источник


Ответы (2)


Вероятно, вы могли бы собрать что-то, что переключается между двумя представлениями, но, как правило, гораздо лучше создать форму продолжения с кнопкой, которую пользователь нажимает, чтобы запустить форму сведений.

Попытка контролировать, как и что отображается в форме продолжения, в отличие от формы, которая позволяет пользователю просматривать/редактировать/печатать/проверять и просто управлять пользовательским интерфейсом в разумном поместье, предполагает, что вам НАМНОГО ЛУЧШЕ запустить другую форму. И это не только решает множество проблем, но это всего одна или две строки кода, и вы не теряете свое место в этой продолжающейся форме, чтобы позволить пользователю запускать + просматривать другие формы. Например:

Docmd.OpenForm "frmDetails",,,"id = " & me!id

Вот снимок экрана, и что действительно приятно в формах продолжения в доступе, так это то, что кнопки и объекты повторяются для вас:

alt textА вот еще:

alt text
(источник: shaw.ca)

Опять же, обратите внимание, что кнопка просто повторяется, а две приведенные выше формы используют одну строку кода, которую я разместил выше.

Формы продолжения — отличное решение, и я не думаю, что стоит заморачиваться или пытаться переключаться между представлениями. Приведенные выше идеи хорошо работают и для среды выполнения.

person Albert D. Kallal    schedule 14.01.2010

Создали ли вы настраиваемую ленту (http://www.databasedev.co.uk/access2007ribbon.html). )?

В этом примере RibbonXML создает две кнопки: первая для закрытия формы и вторая для отображения определенной формы в DatasheetView. Вы можете добавить ссылку на ленту, используя вкладку «Другое» на странице свойств формы.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="tab1" label="Object Helpers">
                <group id="grp1" label="Helpers">
                    <!-- close current object button -->
                    <button id="btnCloseObject" label="Close Current Object"
                            size="large"
                            imageMso="PrintPreviewClose"
                            onAction="OnCloseCurrentObject"/>
                     <!-- show datasheet -->
                    <button id="btnShowDatasheet" label="Show Datasheet"
                            size="large"
                            imageMso="AccessFormDatasheet"
                            onAction="ShowDatasheet"/>
               </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Вам также понадобится код и ссылка на библиотеку объектов Microsoft Office 12.0 или 14.0 (Инструменты->Ссылки в окне кода).

Public Sub OnCloseCurrentObject(ctl As IRibbonControl)
    DoCmd.Close CurrentObjectType, CurrentObjectName
End Sub

Public Sub ShowDatasheet(ctl As IRibbonControl)
    ''This saves the current unique ID
    CurRec = Forms!Test!TransactionID
    DoCmd.RunCommand acCmdDatasheetView

    ''This finds the saved ID, however, it is not necessary in Access 2010
    ''Because the bookmark is kept from form view
    Forms!Test.Recordset.FindFirst "TransactionID=" & CurRec
End Sub

Дополнительная информация: http://www.accessribbon.de/en/index.php?Загрузки
http://blogs.msdn.com/access/archive/2007/09/24/ribbon-customization-closing-the-currently-open-object.aspx

person Fionnuala    schedule 14.01.2010