2

Office.com テンプレート ([ファイル] --> [新規] --> [Office.com テンプレート]) からセットアップ済みのデータベースを取得しました。これは、このテンプレートで既に要件の 80% が得られているためです。

次に、このテンプレートの最後の 20% を次のように変更しました。このテンプレートは Web データベースのようです。Web データベースと Access の通常のデータベースの違いについてはまったくわかりませんが、VBA コードを実行できないことがわかりました。少なくとも、イベントで呼び出そうとしているときはそうではありません。

とにかくこれを達成する方法はありますか?それとも、Web データベースを通常のデータベースに変換するなど、他の方法はありませんか?

4

1 に答える 1

3

実際には、フォーム イベント コードから VBA コードを呼び出すことができます。ただし、少しコツが必要です。

ただし、あなたのケースではこれを行う必要はありません。

Web アプリケーションでクライアント オブジェクトを作成し、クライアント VBA コードを使用できることに注意してください。

これは、そのアプリケーションに VBA フォームを追加/混合できることを意味します (これらのクライアント オブジェクトはもちろん Web ブラウザーで実行できませんが、クライアントで使用できます)。

提案 #1: レコード ナビゲーション ボタンを非表示にします。

Web フォームをレイアウト モードで開きます。オブジェクトを移動します (デザインを汚します)。

VBA コマンド プロンプトで ctrl-g を押します。次のように入力します。

forms(0).NavigationButtons = False

次に、フォームを保存します。レコード ナビゲーション設定はフォームと共に保存されます。

提案 #2: VBA で Web フォームを開きます。次のコードを使用します。

DoCmd.OpenForm "AssetsDetails"
Forms("AssetsDetails").NavigationButtons = False

提案 #3: フォームの読み込みイベントから VBA コードを呼び出します。これは少しおかしな話ですが、うまくいきます:

フォームのオープン イベントに、次のマクロ コードを配置します。

OpenForm (frmRunVBA,,,Dialog)

上記の WEB MACRO エディタでは、上記の frmRunVBA と呼ばれる VBA フォームはドロップダウン選択リストに表示されませんが、名前を入力/強制することはできます。これは有効です。

ここで、frmRunVBA という名前の VBA フォームを作成します)。フォーム読み込みイベントで、次のコードを配置します。

Private Sub Form_Load()

   Forms("AssetDetails").NavigationButtons = False
   DoCmd.Close acForm, Me.Name

End Sub

したがって、VBA コードを呼び出すことはできますが、tip#1 を使用する場合は実際には必要ありません。

于 2013-01-14T18:00:21.940 に答える