• ベストアンサー

VBからリレーションの作成

いつもお世話になっています。 SQLServerにAccessVBAからRDOで接続 テーブルの作成 インデックスの作成 リレーションシップの作成 という流れを行いたいのですが テーブル、インデックスの作成は SQL文で行えたのですが、リレーションの作成方法がわかりません。 SQL文で作成することはできないのでしょうか? なにかアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#11722
noname#11722
回答No.1

テーブルの作成とインデックスが作成出来たとのことなので、 おそらく ALTER TABLE を使用したのだと思いますが、 リレーションも同じです。 まず、EnterPriseManagerでリレーションシップを張ってみてください。 ちゃんと動作するならば、そのテーブルをSQLスクリプト生成でSQL文に落とします。 そのときにオプションのテーブル作成スクリプトオプションは全部チェックしといてください。 書き出したSQL文の中身を見ると、テーブル作成部分、キー作成部分、 リレーション作成部分と分かれていると思うので、 リレーションの部分だけを使用すればいいはずです。 VBAでそのSQL文をEXECUTEしてあげれば作成できると思います。

noppi_99
質問者

お礼

ありがとうございます。 問題なく動かせました。 SQLスクリプト生成という機能を知りませんでした。

関連するQ&A

  • Sqliteのリレーション

    ■利用環境 Sqlite3.3.5 データベース初心者で、 リレーションの概念等、理解出来てない 質問になってましたらすみません。 現在、テーブルを作成する事くらしかできません。 ■質問 Sqliteのテーブルプログラムから、 SQL関数を使ってつくっているのですが、 リレーションの設定の仕方がわかりません。 ■説明 Aと言うテーブルとBと言うテーブルがあるとき useridを主キーとして、お互いにリレーション を作るには、どのようにSQLを書けばよいですか?

  • phpmyadminのリレーション

    SELECT * FROM table1,table2 WHERE table1.id=table2.data_id; phpmyadminにて、上記のようなSQL文を実行してtable1とtable2のデータを リレーションにより表示します。 この時に表示した内容のテーブルを新規作成するにはどうすれば良いでしょうか?

    • ベストアンサー
    • MySQL
  • リレーションをSQL文で作る方法は?

    urizakaです 今まではSQL-Serverを使っていたのですが、今度からPostgresSQLを使うこと になりました。 さて、そこで質問なのですが、SQL文でテーブルを作るとき、他のテーブルの カラム(フィールド)と作ったテーブルのカラム(フィールド)のリレーションを 作るにはどうすれば良いのでしょうか? 特に、シリアル型で作ったフィールドの値を外部参照キーとして持ってきたい 場合はどのようにSQL文を書けばよいのでしょうか? すみませんが、よろしくお願いします。

  • VBからSQLServerへの接続について

    こんばんわ。 いまVB6.0とSQLServer8.0でプログラミングをしている者です。 rdoでVBからSQLServerへ接続したいのですが, 接続文字列の設定がわかりません。 ローカルにPersonal SQLServerを入れて, そこに接続しようとしています。 なお対象のデータベースはWINDOWSログインユーザ認証で ログインするよう作成しています。 このような場合, SEDRVER=(local);DATABASE=TEST;UID="WINDOWSのユーザID"; PWD="WINDOWSのパスワード"としたのですが, 「~(ユーザID)でログインできませんでした」 となってしまいます。 どうすればローカルのSQLServerにrdoでつなげることができるでしょうか? 教えてください。 よろしくお願いします。

  • DBのCreate文スクリプト作成について

    現在あるDBの全テーブルのCreate文を取得したいのですが・・ 以前は、SQLSERVER2000のEnterPrizeManagerでコンソールルートから すべてのタスク、SQLスクリプト作成で選択したテーブルすべての スクリプト文をいっぺんに作成出来ていたのですが、 SQLSERVER2008に環境が変わったので、同じことを使用としても Management Studioでテーブルを選び、テーブルをスクリプト化 でやっても一つのテーブルしかスクリプト文が出来ません。 SQLSERVER2008では、同じように全テーブルのスクリプト文を一度に 作成する方法はないのでしょうか? 教えてください。

  • 重複行を表示するビューの作成

    お世話になります。 SQLServerにでテーブルAの重複行を表示させるビューBを作りたいのですが、ビュー作成ヴィザ―トでの条件式がうまく書けません。Accessのクエリだと標準機能でできちゃうのですが、SQLServerはSQL文がうまく書けないので、よろしくお願いします。 ちなみに使用しているのはSQLServer2000です。

  • 学生 科目 課題のリレーション

    テーブルの設計をしています。 現在はACCESS2003で設計しており、ゆくゆくはSQLSERVER2005にしたいと考えています。 今現在あるテーブルは学生・科目履修・科目です。 順に1対多、多対1でリレーションを作成しています。 これに課題テーブルを作成したいのですが、どのようにリレーションすればいいか、分りません。以下課題の条件です。 ・課題には課題コードがあります。 ・1科目には必ず複数個の課題があります。 ・科目により課題の個数は違います。 ・学生1人1人に課題の点数を入力する必要があります。 私なりに1週間ほど考えたのですが、結局は科目履修とは別に、学生・実習・課題のようにテーブルを定義して1対多、多対1のリレーションしかないのでしょうか? しかしあまりにひどいリレーションになってしまいます。入力も時間がかかります。もっときれいに理論的に整理されたリレーションが作れないでしょうか? お手数でしょうが、ご教授ください。

  • [VB5] RDO:エラー'429' ActiveX コンポーネントはオブジェクトを作成できません

    Excel97のVBAを使って、RDOでSQLserverに接続しようとすると 「ActiveX コンポーネントはオブジェクトを作成できません」 というエラーがでます。 VB5.0を再セットアップするとよいと以下のURLにはのっていますが http://www.microsoft.com/japan/support/kb/articles/J043/1/96.asp VBがインストールされていないマシンでは、どうしたらよいのでしょうか? RDOのバージョンは2.0です。

  • Accessでリンクしたテーブルのリレーションが設定できない

    PostgresへA5SQLとか言うツールを使ってテーブルを2つCreateTableしました。 テストデータも入力しました。 あらためてAccessでPostgresのテーブルをリンクテーブルとして参照しデータを見ることが出来ましたが、Access上でリレーションが未定義でサブフォームを作成することが出来ません。 リレーションを1:多で作成しようと思うのですが、設定フィールドが真っ白でいじれません。 何故でしょうか? 基本的にCreateTableするときに、なにやらリレーション設定する構文が必要だったのでしょうか? 今は、CreateTableしか構文は記述されていません。 どなたかご教授ください。 よろしくお願いします。

  • phpMyAdminの「リレーションを表示する」について

    テーブル間のリレーションについて質問です。 phpMyAdminを使ってMySQLのデータベースにテーブルを作成しています。 今、顧客のテーブル「Customer」と業務のテーブル「Order」があったとして、 ----------------------------------------------------- 【Customer】 [CustomerNo] int型 主キー設定 [CustomerName] varchar_20 [PostName] varchar_20 [Address] varchar_30 [TelNumber] varchar_20 【Order】 [CustomerNo] int型 主キー設定 [OrderName] varchar_10 ---------------------------------------------------- としています。 ここでCustomerテーブルのCustomerNoとOrderテーブルのCustomerNoで リレーションを組もうと思いました。そこでOrderテーブルでリレーションを表示するを選択し、 CustomerNoのフィールドで「Customer -> CustomerNo」を選択し保存するを押したのですが、 「インデックスは設定されていません。 (CustomerNo)」というエラーが帰ってきました。 これはどうすればリレーションを組むことができるのでしょうか? ググッて調べてみたのですが、それっぽい情報が無かったものでして質問をさせていただきました。 どなたか宜しくお願い致します。