Как переключаться между представлениями «Форма доступа» и «Таблица данных» и оставаться в одной записи без фильтрации? - PullRequest
1 голос
/ 14 января 2010

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

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

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

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

Ответы [ 2 ]

1 голос
/ 14 января 2010

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

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

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

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

alt text И вот еще один:

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

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

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

0 голосов
/ 14 января 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?Downloads
http://blogs.msdn.com/access/archive/2007/09/24/ribbon-customization-closing-the-currently-open-object.aspx

...