0

私が最初にMs-Accessを悪用しようとした後、あなたの助けを借りて大成功を収めた後、私は「これ以上のこと」をするために送り返されました。

必要に応じてスキップできるちょっとした紹介:

分析と概要を作成したい特定のプロジェクトに関するデータ基盤を構築しています。

データと調査結果はExcelやPowerpointなどのプログラムで表されるため、プロセス自体は非常にオープンです。それはおそらく非常に視覚的であり、要求に応じて詳細なポイントがあります。

ただし、データは定期的に変更される可能性があり、これがうまくいった場合は、プロセスを繰り返す可能性があります。
したがって、理想的な方法は、データレイヤーを作成し、そのデータに対して固定のクエリセットを作成してから、(半)手動で結果を適切な形式のレポートにコンパイルすることです。間にRとして。

問題は、私がアクセスできる唯一のデータベースは..まあ..MsAccess2010です。私はこのマシンに何かをインストールする自由はありません。
もちろん、これに関する推奨事項があれば、非インストールツールまたはオンラインツールを使用できます。

tl; dr:Ms Accessを使用して、リレーショナルデータベースから表形式にデータをクエリし、Ms-Access VBAとフォームをできるだけ少なくして、手動でさらに処理したいと考えています。


それ以来、標準のリレーショナルデータベースであるms-Accessにプロトタイプを実装し始めました。

私がこの種のデザインを思いついた興味深い問題の1つは、プロジェクトに関与する企業のテーブルがあることです。これに加えて、利害関係、所有権、協力などの「関係」の表があります。
たとえば、A社がプロジェクトAを構築しているが、B社の補助金であり、B社はC社などによって部分的に所有されているとします。

ここで、プロジェクトに関与するすべての企業にクエリを実行したいとしますが、所有者として、チェーンの最後の「要素」を表示したいだけです。
リストを純資産で並べ替えたいと想像してみてください。これは通常、チェーンの上位にあるプロジェクトの補助金などではなく、チェーンの最後にある公開会社のみが利用できる数値です。

これは(Ms-)SQLで可能ですか、それともVBAでこれを行う必要がありますか?
今のところ、VBA関数を記述して一時テーブルにダンプすることはできると思いますが、フォームなどを作成する必要があります。

これからすぐに生まれるもう1つのアイデアは、「C社はどのプロジェクトに出資しているのか」という質問に質問で答えることです。これがどこに向かっているのかがわかります。

私はデータベースとクエリが可能な限り柔軟であることを望みます(そしてこの場合、実際のアクセスから独立しています)。したがって、今回は、モックプログラムやユーザーインターフェイスはありません。前回のプロジェクトでAccessから欲しいものを入手するのは苦痛でしたが、それは非常に具体的な質問セットでした...

しかし、一般的には、可能であればさまざまなツールを使用することもできます。

どうもありがとう!

4

1 に答える 1

2

RDBMSでの階層のモデリングは、かなりトリッキーなプロセスです。一部の(Oracleなど)には、階層データをクエリする機能が組み込まれていますが、Accessにはないようです。

最善の解決策は、「入れ子集合」モデルを使用することです。これにより、標準SQLを使用しながら階層データをモデル化できます。クエリもかなり高速です。

データが階層的でない場合、ネストされたセットはそれほど有用ではありません。その場合の一般的な解決策は、関係をマップするためのテーブルを導入することです。通常、2つの関連するエンティティが含まれ、多くの場合、「関係タイプ」フィールド(「親」、「部品所有者」など)が含まれます。これは、有向非巡回グラフまたはDAGと呼ばれることがよくあります。データベースでこれらをモデル化する方法はいくつかあります。「クロージャーテーブル」がおそらく最も効率的です。この記事はこれを行う方法を示しています-それは重い読み物ですが、私はそれがあなたの質問に答えると思います。

于 2013-01-21T11:19:12.353 に答える