• ベストアンサー

アクセスの処理方法

ご存知の方がいらしたらご教示ください。 宜しくお願い致します。 質問1 オラクルのテーブルとODBC接続している。(T_ABC) オラクルのテーブルをコピーしてAcc内にデータを持たせる(T_ABC2)と容量が大きくなりすぎ、 処理が遅くなる。 今現在はODBC接続しており、処理をさせるとNWの問題?か何かで これも処理が遅く何とか処理を早められる方法があって欲しい。 Accにテーブルのコピーを作るのは、 select intoを使用している。 質問2 ユニオンクエリは、 元となるテーブルが別々でないと駄目なのか? 同じテーブルならどうしたら良いか?

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

  • ベストアンサー
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちは。 オラクルユーザーじゃないので若干ズレる部分があるかもしれませんがご容赦願います。 >>質問1 Accってのが何かちょいと分かりませんが、 持たせるデータの量を減らすことは出来ませんか? 例えばですが、 「select * from hogehoge」 でデータを持たせているが 「Select 名前,年齢 from hogehoge」 だけで済む情報の使い方しかしてない。とか。 持たせるデータ量が減れば、当然処理速度は変わるかと。 後は、select into でその都度(?)作るんじゃなくて、条件が決まってるのなら ビューにして作っておいて、それを呼び出すだとかもありますよね。 後は。。。 SQLServerとかだと、ストアドつかってなんちゃら。。。とかいえますが オラクルだと自分は分からないですからねぇ。。。(汗 >>質問2 どうやら出来そうですが。。。 ちゃんと、項目合ってますかね?? http://www.shift-the-oracle.com/sql/union-operator.html

n_c63amg
質問者

補足

早速の回答有り難う御座います。 Accは、Accessのつもりで書いてました。 判りづらくてスイマセンでした。 必要なフィールドのみにしてやってみます。 Accessでビューを作成するのはどうしたら良いですか? 質問2については、 抽出するフィールドは1つで中身もあっていると思っています。

関連するQ&A

  • データ型の変更

    アクセス2003を使っています。 ユニオンクエリを使って複数のクエリを結合しました。 その後、SQLで結合したクエリをテーブルにする為、 SELECT Qユニオンクエリ.* INTO T統合 FROM Qユニオンクエリ; という、SQLを使ってテーブルにしました。 できあがったテーブルのデータ型が希望通りになっていないので、 データ型を変更して、常にそのデータ型で処理したいので保存しておきたいと思います。 しかし、データを入れる度に、前述のユニオンクエリを使い、再びそのクエリをテーブルにするという処理を行います。 その際にデータ型がまた変わってしまいます。 対処方法はあるでしょうか? よろしくお願いします。

  • Accessで多くのExcelファイルをリンクしてテーブルを作ろうとするととエラーが出ます

    Access2007で、複数のExcelファイルをリンクテーブルとして参照し、 UNIONで結合して1つのテーブルにまとめ、様々な処理をしています。 リンクするExcelファイルの数がだんだん増えてきて、 50個になったところでエラーが出るようになりました。 ユニオンクエリは正常に開くことができるのですが、 テーブル作成クエリで「クエリが複雑すぎます」と表示され、 テーブルが作成できません。 ユニオンクエリでは全てのリンクテーブルをUNIONで繋いでいます。 テーブル作成クエリはユニオンクエリをSELECT...INTOでテーブルにしているだけです。 参照するExcelファイルは今後も増えていって最終的には120個くらいまで 増やるかもしれないということで、 どうしていいかわからず困っています。 何かいい方法をご存知の方、教えていただけないでしょうか。

  • ORACLEデータをACCESSへインポート VB

    OracleのデータをAccessへインポートする方法について、どなたかご教授ください。 VB.NETで OracleからAccessへのデータコンバート機能を作ることになりました。 (環境 OS;Win7 言語;VB2008 Oracle;10g Access;2010) 対象のテーブル数、フィールド数、データ数がかなり多いのですが、Accessへデータをインポート(コピー)する良い方法はないでしょうか? 普段、データ入力が専門のためプログラムは初心者です。 今のところOLE DBを使用して1行ずつデータを登録する方法しかできません・・・ ヘルプを参考に、ODBCでDSNレスのINTO(SQL)を挑戦しているのですが「入力テーブルまたはクエリが見つかりません」と出てしまいます。 ◇質問 (1).複数のテーブルをAccessへコピーするにはどんな方法がありますか?   また、このような対象テーブルが多い場合に有効な方法は? (2).ODBCでDSNレスのINTO(SQL)を作成するのに注意することはありますか? ちなみにエラーが出てしまうSQL文は以下です。違っているでしょうか? cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;data source=D:\DATA\DB.mdb" sql = "SELECT * INTO impテーブル名 " & _ "FROM [ODBC;DRIVER={Microsoft ODBC for Oracle};" & _ "SERVER=" & orSorc & ";" & _ "UID=" & orUsrID & ";" & _ "PWD=" & orPswd & "].expテーブル名" ※ Oracleは10g/11gのバージョンが存在するためODPは使用しません

  • ユニオンクエリをデザインビューで開くには?

    アクセス2010です。 T_テーブル1とT_テーブル2があり、 どちらもフィールド1に文字が入っています。(テキスト型です) クエリのSQLビューで SELECT * FROM T_テーブル1 UNION ALL SELECT * FROM T_テーブル2; として保存したらユニオンクエリが出来上がったのですが、 これをクエリのデザインビューで見るにはどうすればいいですか? 以前のバージョンならユニオンクエリをデザインビューで見れました。 でもやり方を忘れました。 該当のクエリをアクティブにしてデザインビューを選択しても SQLビューで開いてしまいます。

  • Access 2000、ユニオンクエリーがどうしても出来ない!

    初歩の質問ですが、ユニオンクエリーが出来ません。 やりたい事は非常に単純です↓↓ 1:テーブル1、テーブル2、テーブル3があります。 2:各テーブルのデータ内容は様々ですが、共通項目として「品番」を持っています。但しテーブル1は「製品名」、テーブル2と3は「品番」という項目名になっています。 3:各テーブル内に、品番が幾つ入っているか、集計クエリでカウントします。項目名が違うので以下のように処理しました。  <テーブル1の場合>    フィールド|品番のカウント: 製品名|タイトル: "テーブル1"    テーブル |テーブル1     集  計 |カウント  <テーブル2(或いは3)の場合>    フィールド|品番のカウント: 品番|タイトル: "テーブル2"    テーブル |テーブル2     集  計 |カウント 4:3の集計クエリーを繋ぎ、テーブル1~3の品番件数を一気に表示させたい  <ユニオンクエリの内容>     SELECT *     from Q0_カウント_テーブル1     UNION select *     from Q0_カウント_テーブル2     UNION select *     from Q0_カウント_テーブル3; 5:私の予想としてはこんな風↓↓出てくるはずだったのですが・・・     品番のカウント| タイトル     ------------------------------        30   | テーブル1        20   | テーブル2        23   | テーブル3  6:結果は「From句の間違いです」と出ます。他の質問も見ましたが、自分のSQLのどこを直せば良いのかわかりません・・・教えてください!

  • odbc接続でaccessのテーブルにリンクを張るには

    オラクルのデータベースからodbc接続でaccessにテーブルをリンクしようとしているのですが、起動した1回だけオラクルのユーザとパスワードがでてきます。ユーザとパスワードをいれずにテーブルをひらくことができるのでしょうか。オラクルのodbcを使っています。odbcの登録にはパスワードを登録するところがありませんでした。

  • テーブル作成クエリで新テーブル作成時に、オートナン

    SELECT Q_ユニオンクエリ.* INTO 新テーブル FROM Q_ユニオンクエリ; テーブル作成クエリで、新テーブルを作成するときに、 元テーブルにはないフィールドを作成することは可能ですか? 元テーブルには主キーがなく、 カテゴリ、品名 というフィールドしかない場合、 テーブル作成クエリで新テーブル作成時に、オートナンバー型の主キーを付ける方法はありますか?

  • ユニオンクエリの場合は「Like [Forms]![フォーム1]![テキスト0]」とはできないのでしょうか?

    こんにちは。いつもお世話になります。 早速ですが T果物、T野菜、T花の3つテーブルでユニオンクエリを作成しました。 (各テーブルのフィールド名は「名前」です。) SQL文は ************************************************ SELECT 名前.名前, * FROM [select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ]. AS 名前; ************************************************ です。 次に図1の様にテキストボックスに名前を入力してコマンドボタンを押してクエリを開く為のユーザーフォームを作成しました。 コマンド2を押したときは Private Sub コマンド2_Click() DoCmd.OpenQuery ("ユニオンクエリ") End Sub でユニオンクエリを開く動作を指示してあります。 ここまでなら問題なく作業ができるのですが テキストボックスに入力されている名前を含むものがコマンドボタンを押すと表示されるようにしたいのですが どうもユニオンクエリだとうまくいきません。 ユニオンクエリはデザインビューなら図2、 SQL文なら ************************************************ SELECT 名前.名前, * FROM [select * from T果物 UNION ALL select * from T野菜 UNION ALL select * from T花 ]. AS 名前 WHERE (((名前.名前) Like [Forms]![フォーム1]![テキスト0])); ************************************************ とすると、図3のようなエラーが出てしまいます。 ユニオンクエリではなく、普通のクエリ(選択クエリ?)なら 「Like [Forms]![フォーム1]![テキスト0]」の一文を入れても 問題なく作業できます。 何かアドバイスお願い致します。

  • AccessからOrcleのODBCリンクテーブルへの挿入

    OS:XPpro Access:97,2000 Oracle:7 AccessからOracleのODBCリンクテーブルに対して追加クエリを実行すると、 ODBC--リンクテーブル'テーブル名'への挿入に失敗しました。 [Oracle][ODBC Oracle Driver][Oracle OCI]ORA-01461: can bind a LONG value only for insert into a LONG column.(#1461) というエラーが発生します。 メモ型のフィールド'A'をvarchar2(4000)のフィールド'B'に追加する部分で、LeftB(A,4000)としている部分がうまく行かないようようなので、LeftB(A,3000)と丸めてあげると通ります。 質問を纏めますと、 1.varchar2(4000)となっていても、4000Byteのデータを挿入することはできないのでしょうか。 2.発生しているエラーは、私の考えとは別の問題なのでしょうか。 ご回答よろしくお願いします。

  • ACCESSとoracleのODBC接続

    accessでoracleとODBC接続しています。access2003です。oracleは最新。 oracleのテーブルの項目数が255を超えています。 ACCESSの制限とか(?)で項目が350位あるので100項目くらいがリンクできません。VBAからselect文で(Select SYA_ID from IDOU)起動してもエラーになってしまいます。 何とか後ろのほうの項目を取得する方法は無いでしょうか? ご指導のほど宜しくお願い致します。