2011-01-12 19 views
0

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

私はこのデータベースにインポートしたいExcel 2003スプレッドシートを持っていますが、それは困難であることが判明しています。スプレッドシートはいくつかのタブ/ワークシートで構成され、それぞれがインストールされたアプリケーションの一覧を持つサーバーを表します。私はどのようにインポートを続行するかわかりません - "Get External Data - > Import"機能のAccessには "In Existing Table"オプションがありますが、グレー表示です。私はまた、INSTALLATIONSテーブルにレコードをインポートするために、アプリケーションとサーバーの関係をどのように構築するかについてもわかりません。

以前はAccess DBファイルにセキュリティを追加していました。私はすべてを削除したと思うけど、おそらく私はしなかったし、それは問題を引き起こしている?

Excelスプレッドシートからのいくつかのサンプルデータ:

SERVER101
*はAdobe Reader 9
* BMCレメディユーザー7.0
* HostExplorer 2008
* Microsoft Office 2003の
*のMicrosoft Office 2007の
*メモ帳++

S ERVER102
*はAdobe Reader 9
* DameWareミニリモートコントロール
* Microsoft Office 2003の
*は、Microsoft .NET Framework 3.5 SP1
*オラクル9.2

SERVER103
* AWDView
EXTRA * !個人クライアント32ビット
* Microsoft Office 2003の
*は、Microsoft .NET Framework 3.5 SP1
* Snagitの9.1
*のWinZip 12。1

アクセスDBの設計は非常に簡単です:

APPLICATION
* APPLICATION_ID(オートナンバー)
* APPLICATION_NAME(varchar型)

サーバ
* SERVER_ID(オートナンバー)
* SERVER_NAME(varchar)

インストール
* INSTALLATION_ID(オートナンバー)
* APPLICATION_ID(数)
* SERVER_ID(数)

答えて

0

既存の表にインポートが機能していない場合、私はからデータをインポートすることをお勧めします「ゲット外部データ - >インポート "を新しいテーブルに追加します。 INSERT INTOクエリを実行して、必要に応じてテーブルにデータを挿入します。

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

いくつかの構造データを投稿すると、アプリケーションとサーバーの関係を支援することができます。

EDIT:SQLクエリ

だから、最初のクエリを作成し、アプリケーション表にアプリケーションをインポートする:次に

 
SELECT * 
FROM [SERVER101] 
UNION 
SELECT * 
FROM [SERVER102] 
UNION 
SELECT * 
FROM [SERVER103] 

INSERT INTO実行します移入するに

 
INSERT INTO 
[APPLICATION] (APPLICATION_NAME) 
FROM [Query] ([Field Name]) 

をINSTALLATIONテーブルは、各サーバのテーブルを操作しているので、実際には多くのジョインは必要ありません。

 
INSERT INTO 
[INSTALLATION] (APPLICATION_ID, SERVER_ID, ?other fields?) 
FROM [APPLICATION] (APPLICATION_ID, 101, ?other fields?) 
INNER JOIN [SERVER101] 
ON [SERVER101].[Application Name] = [APPLICATION].[APPLICATION_NAME] 

そして、あなたはサーバを記述した別のスプレッドシートを持っていない限り、私は、サーバテーブル上のデータ入力をただ行うだろう: はここSERVER101テーブルのために、私が仕事だと思うものです。

+0

私が編集で追加した上記のデータは、あなたに何か協力してくれますか? – Keeb13r

+0

私はあなたがジョインズなどで助けが必要な場合は、構造データ、フィールドを意味しました。しかし、テーブルの実際のデータは役に立ちません。 –

+0

自分のDBにフィールドのリストを追加しました。数字はちょうど「長い数字」(合成プライマリキーの場合は自動数字)で、文字列は単に「varchar(255)」です。 – Keeb13r

関連する問題