すでにいくつかのビジネスロジックを備えたasp.netがあるので、これを開いてWebサービス(asmxファイル)としてアクセスできます。アクセスのバージョン(xp / 2003など)用のMicrosoft Office Web Services Toolkit用のGoogle。これにより、Webサービスを呼び出すためのvbaプロキシクラスが作成されます。コード(コントロールの読み取りと書き込みを行うvba)を介してWebサービスデータをフォームにバインドするか、Webサービスからのデータを使用してローカル一時テーブルを作成し、通常のアクセスバインドを使用できます。
何に最も慣れているか(code / tsql)に応じて、ロジックをストアドプロシージャ、ビジネスロジックレイヤー、またはハイブリッド(両方)に配置できます。ストアドプロシージャよりもコードをテストする方が簡単で、ビジネスロジックのSQLサーバーにバインドされないようにします。つまり、データベースを変更したり、データベースなしでコンポーネントをオフラインで開発/テストしたりする場合です。LINQなどの新しい.net機能は非常に優れたパフォーマンスを発揮するため、データベースアクティビティのストアドプロシージャに依存する必要はありません。
Webサービスへのすべてのビジネスロジック/データアクセスをリファクタリングするまで、アクセスフロントエンドユーザーインターフェイスを保持します。次に、必要に応じて、Webサービスを使用するasp.netアプリまたはwinformアプリを作成できます。(これは急な学習曲線であり、アクセスデータシートビューと比較できるデータグリッドがまだないため、当面はuiとしてwpfを避けてください。)
レポート
アクセスレポートは、SQLサーバーレポートサービスにアップサイズできます(レポートのvbaはアップサイズされないため、ストアドプロシージャにtsqlを記述することをお勧めします)。完全なSQLServer製品がない場合でも、reportviewerコントロールを使用して、asp.net(または標準バージョン以上のVisualのwinform)にレポート( http://www.gotreportviewer.com/を参照)を書き込むことができます。 Studio)ado.netデータセットへのバインド。
その他のオプション:
.net dllを記述し、com相互運用機能を使用できます。このアプローチにより、機能の記述を徐々に開始できます。.net ui(winformなど)は使用しないでください。accessuiではうまく機能しません。ビジネスロジックまたはデータアクセスロジックを記述して、vbaからこれらのクラスを呼び出すことができます。その後、必要に応じて、このコードをasp.netまたはWebサービスに移動できます。
除外するもの:
サイドバイサイドバージョンで新しいアプリを作成するアプローチは好きではありません。単一の開発者として、あなたは心配するのに十分です。おそらく、両方のバージョンで機能を追加し、1つではなく2つのバージョンをデバッグすることになります。
vb6フォームの相互運用機能はアクセスには機能しません。
述べたようにADPはかなり死んでいます。(パフォーマンスを最適化するためにローカルテーブルを頻繁に使用し、コードを介してのみ呼び出すことができ、リンクされていないため、これらは好きではありませんでした)
You may be able to convert your vba modules and class modules to vb.net using The Visual Basic Upgrade Wizard (in visual studio) but it doesn't upsize everything (e.g. dao/ado code to ado.net code) and doesn't create code that is optimized for .net and may not be easy to write unit tests on depending on the design of the vba code. I recommend rewriting the code (try Test Driven Development if you are serious about testing to see if you like it).