25

バックグラウンド

私は、何千もの MS Access アプリケーションが飛び交う大規模な組織で働いています。私はこれらのどれも書いていません - 実際、オリジナルの作者のほとんどは会社を離れて久しいのですが - ときどき別の Access アプリがサポートを求めて私のデスクにやってくることがあります。アクセスを別のソリューションに置き換えたいと思います。

要件

MS Access のデータベース部分 (Jet データベース) には、SQLite、MySQL、VistaDB など、いくつかの優れた代替手段があることを知っています。

私が知りたいのは、MS Access のフロント エンド部分に取って代わるものはありますか?

つまり、フォームの作成、簡単なスクリプトやクエリの作成などに使用できるものはありますか?

なんで?

@BracC は「なぜアクセスを置き換えるのですか?」と尋ねました。- 確かに公正な質問です。
次の理由により、アクセス権を削除したい:

  • ロジックが隠され、アプリケーションのサポートが困難になります。ロジックはさまざまな場所に存在する可能性がありますが、構造を提供または促進するものはありません。
    • マクロ
    • モジュール
    • クエリ
    • フォーム
  • その性質上、ユーザーは「それほど小さなアプリケーションではない」「小さな」アプリケーションを作成するようになります。その後、ユーザーは去り、私はたくさんのスパゲッティをサポートする必要があります. アクセスが唯一の原因ではないことはわかっていますが、それは私の組織のリーダーであり、私はそれを完全に取り除きたいと思っています.

追加のクレジットについて

私が本当に見つけたいのは、MDB ファイルを読み込んで、機能を複製する C# のようなものを出力できるものです。(または任意の言語 - 面倒ではありません)。

これがすべて明確であることを願っています。そうでない場合は、コメントを投稿してください。詳細を書き直し/追加します。

アップデート

@GuinnessFan は、私が興味深いと思うポイントをいくつか挙げています。これらの点について議論するためにコメントを追加しました。

私が質問してから私たちがしたこと:

  • ユーザーが使用し、必要とするアクセス アプリケーションの決定的なリストをユーザーに提供してもらいました。(リストにない MDB ファイルは削除できるということを理解しておいてください - 万歳!)。
  • リスト上の MDB を分析し、次の結論に達しました。
    • ほとんどの "アプリケーション" は、1 つのハードコードされたクエリまたは 1 つのリンク テーブルで構成されています。
    • 多くは、おそらく日付パラメーターなどを使用した少数のクエリです。
    • 真に複雑なロジックを持っている人は (もしいたとしても) ごくわずかです。
  • 現在、リストの作業を進めており、ほとんどのアプリを SSRS (SQL Server Reporting Services) パッケージに変換しています。
  • SSRS を使用して複製できないものはすべて、手作りの Web アプリケーションになります。ただし、これらの多くはありません。

有益な回答をくれたすべての人に感謝します。

4

11 に答える 11

6

数年前に、あるアプリケーションのバックエンドを MSacces から MSSQL に切り替えました。うまく機能したため、フロントエンドを保持しましたが、使用/変更が簡単なものは見つかりませんでした。

MSAccess -> C# トランスレータは見たことがありません。ただし、MSAccess から VB6 へのトランスレータ (構文はほぼ同じ) を見つけることができる場合があり、そこから VB6->VB.Net トランスレータ (さらには VB.Net ->C# トランスレータ) があります。

于 2008-10-21T14:12:36.930 に答える
5

MySQL データベースへのフロントエンドとして、MS Access に基づく内部アプリを使用しました。私たちは多くの問題に遭遇し、最終的に Win32 用の CodeGear Delphi 2007 でアプリ全体を書き直しました。これは大きな成功を収めていますが、移行にはかなりの労力がかかりました (2 人の Delphi プログラマーのトレーニング/雇用、サードパーティ ツールの購入)。ただし、Delphi を心からお勧めします。そして、私の知る限り、MS Access バックエンドとの統合は確かに可能です --- 私はかつてそれを行う Delphi アプリを作成しましたが、機能が完全なバージョンを取得するのに数日しかかかりませんでした!

これは完全なプログラミング ソリューションであるため、フロントエンドを構築するための MS Access の使いやすさの一部が失われることは間違いありません。繰り返しになりますが、あまり多くのコードを書かなくても、10 分で Delphi でデータベース アプリケーションを作成できます。冗談ではありません。そして 2009 年のリリース以来、この言語はゆっくりと再び主流になりつつあります...

于 2008-10-21T20:04:13.803 に答える
5

Oracle の Application Expressを確認できます。これは無料で、Access 開発者を対象としています。

Accessデータベースを実行する移行アシスタントもあり、データとフォームを処理し、すべてをOracleデータベースに移行し(これは無料のデータベースであるOracle XEで動作し、デフォルトでインストールされます)、Webフォームを構築しますAccess データベース用。

したがって、最終的には、Access データベースを Web 上に、データを Oracle に、そしてそれらを拡張するためのやや優れた Web フロント エンドを使用できます。

オラクルに関する限り、このツールは半分も悪くありません。無料のインスタンスにサインアップして、ここで遊んでみてください。

Access データベースを移行する方法を説明するドキュメントを次に示します。

于 2008-10-21T14:21:17.677 に答える
5

では、個人的な嫌悪感以外に、なぜ Access フロントエンドを置き換える必要があるのでしょうか? 一部の (単純な) データベースでは簡単に実行できる場合もありますが、実際の Access アプリのほとんどは非常に複雑です。

もちろん、バックエンドをアップグレードする理由はたくさんあります (スケーラビリティ、パフォーマンス、データベースの破損、ユーザーのロック)。Access には、データからフォームとロジックを分割し、データを MS SQL サーバーにアップグレードできる組み込みの「アップグレード ウィザード」ツールもあります。必要に応じて、このウィザードを使用してバックエンドを SQL Express にアップグレードしてから、手動で別の db プラットフォームに移行します。

これがあまり話題から外れていないことを願っていますが、Access で行う必要があるのは次のことだけです。

  1. バックエンドをアップグレードする (既に説明したように)

  2. フロントエンドがロックされていることを常に確認してください (読み取り専用)

  3. 必要に応じて、さまざまなユーザー ロールに対してさまざまなフロントエンドを作成します (セキュリティの形態として)。

  4. 可能であれば、パフォーマンス上の理由から、フロントエンドを各ワークステーションにローカルにコピーしてください。フロントエンドの新しいバージョンを確認するには、ネットワーク スクリプトが必要になる場合があります。

直接の経験はありませんが、http://www.microtools.us/で「Access Whiz」という Access to ASP.Net コンバーター ツールを見つけました。

于 2008-10-21T14:54:27.657 に答える
4

@ブラッドC

MicroTools はお勧めしません。私はしばらく前に同じ問題を抱えていた会社で働いていました。MicroTools が製品に大幅な改善を加えていない限り、私が最後に確認したゴミを吐き出します。

私たちが発見したのは、ほぼすべてのアップグレード パスで、かなりの量のコーディングの変更が必要になるということです。これらのツールはすべて、元のアプリケーションと同様の GUI を維持するのに適しています。彼らのコードにはオブジェクト構造がなく、Access がレコード ナビゲーションを提供する方法をシミュレートするために各ページにダンプされた一連のユーティリティ関数だけでした。多数のフォームがある場合、それらのソリューションを引き出して独自のソリューションを実装するには、いくらかの作業と大量の検索と置換操作が必要です。

MicroTools のパフォーマンスに非常に失望したため、独自のコンバーターを作成し始めました。1 週間のコーディングの後、より優れた ASP.NET フォームを送り出すことができました。

于 2008-10-21T15:01:22.310 に答える
3

デスクトップ インターフェイス設計ツールも付属しているサーバー クラスのエンジンはありません。大きなサーバー エンジンはすべて、C++、C#、Java、または PHP などを使用してインターフェイスを構築することを期待しています。

私も、いくつかの基本的な C# フォームを吐き出して、同等の SQL Server データベースと対話する、アクセス用のアップグレード ツールを見てみたいと思っています。顧客に完全な SQL Server をアップセルする方法として使用できるため、Microsoft にとっては大きな収益源になると思われます。

IIRC、Access フロント エンドに SQL Server と通信するように指示する方法や、Access フロント エンドで使用されるテーブルを実際に SQL Server にリンクされたテーブルに変更する方法などがあるかもしれませんが、私は一度も行ったことはありません。自分で機能を使用する必要がありました。

于 2008-10-21T14:12:06.353 に答える
3

私はあなたが考慮すべき別の視点を持っています。あなたの主な問題は、ロジックが隠され、データとアプリケーションが組織全体に散らばっていることです。

残念ながら、機能的なフォームを簡単に作成できる RAD (迅速なアプリケーション開発) ツールを私は知りません。

ただし、データとロジックを一元化する可能性にもっと集中し、Access をフロント エンドとして許可することをお勧めします。私は、RI (参照整合性) ルール、ストアド プロシージャ、トリガーなどをサポートする Advantage Database Server と呼ばれるデータベース製品をサポートしています。これらはすべて中央サーバーで管理できるため、すべてのロジックを利用できます。これらの Access フロントエンドは、ODBC または OLEDB を使用してデータ バックエンドにリンクできます。このようなソリューションに切り替えた場合、後で Access フロントエンドを段階的に廃止しながら、同じデータに結び付ける .NET、PHP、JDBC などの他のアプリケーションを柔軟に作成できます。

この種のデータ バックエンドを使用していない限り、新しい Access の開発を停止することから始めることをお勧めします。

于 2008-10-21T19:52:20.723 に答える
3

何千もの Access ファイルのうち、サポートを依頼されたファイルはいくつありますか? 私は 100 未満だと思います。A) 誰も使用していない B) そのままで問題なく動作するアプリケーションを再構築する必要があるのはなぜですか?

大規模な組織がカスタム アプリケーションを堅牢でスケーラブルで信頼性の高いヤッダ ヤダ ヤダ環境で開発することは許容される慣行であるというポリシーを開始する必要があります。重要である、または大きくなりつつあると思われる Access アプリケーションを特定し、それらに取り組むだけです。

迅速で汚れた小さなアプリケーションを迅速なターンアラウンドで取得するという期待に対処する準備をしてください. 新しいアプリの利点を彼らに示す必要があります。

常駐の専門家になって、これらのユーザーにアプリケーションを改善する方法を教えたり、最初から意見を聞いて正しく開始したりする必要があると思います. そうしないと、これらのファイルをすべて変換する必要があり、圧倒されてしまいます。

于 2009-11-03T03:53:39.557 に答える
1

Firebirdもご覧いただけます

移行する方法は次のとおりです(Delphiが必要です)

私もこのMDB2FDBを見つけます

于 2009-04-23T21:24:14.057 に答える
1

Microtools は、Access 変換ツールのセットである Access Whiz を提供しています。ASP .NET (VB/C#) コンバーターへのアクセス、VB6 コンバーターへのアクセス、WinForms (VB .NET/C#) コンバーターへのアクセス、Crystal Reports コンバーターへのアクセスで構成されます。詳細情報とトライアル デモは、http://www.microtools.usにあります。

于 2008-12-19T08:28:40.797 に答える
0

MS Access のフロントエンド部分に代わるものはありますか?

もしかしてケシー

于 2008-10-21T14:13:59.907 に答える