0

APPLICATIONS、SERVERS、および INSTALLATIONS の 3 つのテーブルを持つ Access 2003 DB を設計しました。APPLICATIONS テーブルと SERVERS テーブルのレコードは、合成主キー (Access では "自動番号") によって一意に識別されます。INSTALLATIONS テーブルは、基本的に APPLICATIONS と SERVERS の間のマッピング テーブルです。これは、どのアプリケーションがどのサーバーにインストールされているかを示すレコードのリストです。INSTALLATIONS テーブルのレコードも合成主キーによって識別され、それぞれのテーブル内のレコードの APPLICATION_ID と SERVER_ID で構成されます。

このデータベースにインポートしたい Excel 2003 スプレッドシートがありますが、難しいことがわかりました。スプレッドシートは複数のタブ/ワークシートで構成されており、各タブ/ワークシートは、インストールされているアプリケーションの独自のリストを持つサーバーを表しています。インポートの進め方がわかりません。Access の [外部データの取得 --> インポート] 機能には、[既存のテーブル内] のインポート オプションがありますが、グレー表示されています。また、レコードを INSTALLATIONS テーブルにインポートするためにアプリケーションとサーバーの間の関係を構築する方法もわかりません。

私は以前、Access DB ファイルに何らかのセキュリティを追加することに失敗したことがありました。私はすべてを削除したと思いますが、おそらくそうではなく、それが問題の原因ですか?

Excel スプレッドシートのサンプル データ:

SERVER101
* Adob​​e Reader 9
* BMC Remedy ユーザー 7.0
* HostExplorer 2008
* Microsoft Office 2003
* Microsoft Office 2007
* Notepad++

SERVER102
* Adob​​e Reader 9
* DameWare Mini Remote Control
* Microsoft Office 2003
* Microsoft .NET Framework 3.5 SP1
* Oracle 9.2

SERVER103
* AWDView
* エクストラ! パーソナル クライアント 32 ビット
* Microsoft Office 2003
* Microsoft .NET Framework 3.5 SP1
* Snagit 9.1
* WinZip 12.1

Access DB の設計は非常に単純です。

APPLICATION
* APPLICATION_ID (自動採番)
* APPLICATION_NAME (varchar)

SERVER
* SERVER_ID (自動番号)
* SERVER_NAME (varchar)

INSTALLATION
* INSTALLATION_ID (自動
番号) * APPLICATION_ID (番号)
* SERVER_ID (番号)

4

1 に答える 1

0

既存のテーブルへのインポートが機能しない場合は、[外部データの取得 --> インポート] から新しいテーブルにデータをインポートすることをお勧めします。次に、INSERT INTO クエリを実行して、必要に応じてデータをテーブルに挿入します。

この方法でインポートする場合は、ワークシートごとに 1 回インポートする必要があります。

構造データを投稿していただければ、アプリケーションとサーバーの関係についてお手伝いできるかもしれません。

編集: SQL クエリ

したがって、アプリケーションを APPLICATION テーブルにインポートするには、まずクエリを作成します。

選択する *
[サーバー101] から
連合
選択する *
[サーバー102]から
連合
選択する *
[サーバー103]から

次に、INSERT INTO を実行します。

に挿入
[アプリケーション] (APPLICATION_NAME)
FROM [クエリ] ([フィールド名])

各サーバーのテーブルを操作して INSTALLATION テーブルにデータを入力するために、実際には多くの結合は必要ありません。SERVER101 テーブルの場合、私がうまくいくと思うものは次のとおりです。

に挿入
[インストール] (APPLICATION_ID、SERVER_ID、?その他のフィールド?)
FROM [APPLICATION] (APPLICATION_ID、101、?その他のフィールド?)
内部結合 [サーバー 101]
ON [SERVER101].[アプリケーション名] = [APPLICATION].[APPLICATION_NAME]

また、サーバーを説明する別のスプレッドシートがない限り、SERVER テーブルにデータを入力するだけです。

于 2011-01-12T19:36:03.367 に答える