1

MS Access 2010で使用するために.Net言語でカスタムコントロールを作成する方法はありますか?サブフォームを使用してコントロールをエミュレートしようとするプログラムがありますが、実際にはうまく機能していません。C#やVB.Netなどでカスタムコントロールを作成し、AccessMyにインポートできればもっと簡単になります。これは可能ですか?

4

1 に答える 1

5

理論的には、MS Accessで使用できるコントロールを.NETで作成することは可能ですが、機能しないものが非常に多いため、非常に実用的でもありません。

これが私がそれを試したときに遭遇した問題のいくつかです:

  • 私は仕事に縛られることはありませんでした。つまり、MSAccessで使用できるように.NETのネイティブバインディングを公開することはできませんでした。
  • コントロールのサイズを変更できませんでした。Access内からコントロールのサイズを変更すると、コントロールが配置される「デザインサーフェス」のサイズのみが変更されます。コントロールのサイズには影響しません。
  • .NET ActiveXコントロールは、.OCXファイルではなく.DLLファイルにパッケージ化されます。.DLLファイルを登録するには、RegAsmツールを使用する必要があります。
  • COM相互運用機能コントロールを作成するには、MicrosoftのInteropFormのToolkit2.1をダウンロードしてインストールする必要があります。
  • .Netコントロールのプロパティ、メソッド、およびイベントをCOMインターフェイスに公開することは、かなり手作業で面倒なプロセスです。たとえば、コンボボックスは「value」プロパティですが、ActiveXコントロールの.valueプロパティに自動的にマップされません。実際、2つをマップする方法が見つからなかったため、コントロールを使用するプログラマーにとって直感的とはほど遠い、別の名前の別のvalueプロパティを実際に作成する必要がありました。一般的な手動の「バインディング」は、次のようになります。Me!MyFieldName = Me.ActiveXControl.MyValue
  • .NetでCOM呼び出し可能ラッパーを作成することは、ActiveXコントロールであるかどうかに関係なく、少し間抜けです。プロパティ、メソッド、およびイベントがVBAのIntellisenseで正しく表示されるように、.NETコードの記述方法を知っている必要があります。これには、デリゲートを使用してパブリックインターフェイスを作成することが含まれますが、すべてを覚えていません。複雑だと言えば十分です。

それの終わりに、私は不可能なことをすることに本当に一生懸命取り組んでいないのだろうかと思い始めました。そして、すべてに.NETを使用し、Accessを完全にダンプする方がよいのではないかと考えました。残念ながら、今日はまだAccessで開発中ですが、近い将来、.NETへの移行を真剣に検討しています。

私が寄稿した他の関連する質問をここで見ることができます: http ://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/06867384-9e1f-486d-982a-6bbb0f40848d/#5b27805f-3a95- 4bbd-a50e-3de06e199490

于 2012-08-17T19:36:51.177 に答える