• ベストアンサー

MSAccessの追加クエリを使って

MSAccessの追加クエリを使用して、SQLサーバのテーブルにレコードを追加したいのですが、やり方がわかりません。 追加クエリでテーブルを指定する場合、必ずカレントテーブルしか選択できないのですがSQLサーバとリンクを貼ったテーブルに書き込む設定がわかりません。 お手数ですがよろしくお願いします。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>必ずカレントテーブルしか選択できないのですが 何かの間違いでは?「カレントテーブル」とは何ですか? >SQLサーバとリンクを貼ったテーブル リンクしたテーブルなら普通の追加クエリで処理できます。 自MDB内のテーブルと同じに扱えます。(プライマリキーが必要かも) 確実なのはパススルークエリを使うことです。 SQL Server に直接届くため、Accessではなく、SQL Server の文法で 全て「手書き」しなければなりませんが、高速で SQL Server の 組込み関数も使用できます。当然ではありますがMDBのテーブルを 参照したり、VBAの関数を使うことはできません。

asatsuki
質問者

お礼

どうやら何らかの設定により私のPCで出来なくなっていたようです。違うPCで確認したところ出来ることが確認できました。 パススルークエリも試してみたところ使えそうです。 ありがとうございました。 (ちなみに「カレントテーブル」ではなく「カレントデータベース」の間違いでした。)

関連するQ&A

  • アクセスの追加クエリについて

    二つのテーブル間(AとB)を追加クエリを使い AからレコードをBに追加することは出来たんですが、 逆にBからAにレコードを追加しようと選択クエリを追加クエリに変更しようとしたんですが、ウィザードの追加先テーブル名にAのテーブル名が表れないですがその理由が全く分からないので分かる方教えていただけませんか? AとBのレコード内のフィールドは同じです。 AからBにレコードを移行する処理としてマクロを使いアクションとして ・クエリを開く(これは追加クエリです) ・SQLの実行(上と同じクエリを削除クエリに変更し、そのSQL文をSOLステートメントに貼り付けました) 上の処理は問題なく出来たので逆のBからAへレコード移行処理のマクロを作ろうとしたのですが、追加クエリの追加先テーブルにテーブルAの名前が出てこないので困っています。こういったAからB。BからAという処理は追加クエリで出来ないのでしょうか?

  • 追加クエリでテーブル全体を指定したまま条件を追加したい

    ACCESS2000を使ってます。 追加クエリでレコード追加の元となるテーブル全体を選択してます。 クエリのフィールド:テーブル名称.*と指定していますが、テーブルに追加する条件として、西暦4桁が格納されている「NENNDO」フィールドに2006だけのレコードを追加したいです。 クエリのデザインでフィールド:テーブル名称.*と指定されている状況で「NENNO」フィールドを追加して抽出条件に2006を指定して実行すると「出力先が重複しています」と表示されます。 追加クエリの対象テーブルが沢山あって、レコード追加先がOracleとなっているのでテーブルを削除せずにACCESSの削除クエリと追加クエリでレコードの作業したいと思っております。 フィールド:テーブル名称.*としたまま、テーブルに追加する条件だけを設定する方法をご教授願います。 (フィールドは、*ではなく、フィールド全てを1つづつ指定しないといけないのでしょうか?)

  • Accessのクエリでレコード追加

    Access初心者です。 バージョンは2010をつかっています。 テーブルを14テーブル含み、フィールド数が100ほどある選択クエリを作りました。 抽出条件などは設定していません。 このクエリで新しくデータを入力、レコードを追加し、上書き保存した後クエリを閉じます。 それからまた、そのクエリを開くとレコードが追加されていません。 テーブルにはその入力したデータは追加されています。 このクエリにもそのデータを追加表示させるためにはどうすればいいですか? 表示されない原因はなんなのかお教えお願いします。

  • MSアクセスのクエリで結果がおかしい

    アクセス2000で追加クエリを作成していますが、 クエリのデータシートビューで確認したレコードと 追加されたテーブルで確認したレコードが異なり、テーブルのデータが少なくなってしまっています。 条件としては、 クエリの参照元 SQLサーバからのリンクテーブル(レコード数で13万件程度) 追加先のテーブルはローカルのmdb内です たまたまかもしれませんが、今テストしているデータは、 クエリ上では、19件あるものの、実行しても9件しか追加されません。 原因としてありそうなものがわかる方がいれば、よろしくお願いします。

  • 列の一部が追加できないクエリについて

    現在社内の顧客管理をAccessで行おうとして、まずはAccess2003にてスタンドアロンで顧客管理システムを作成し、アップサイジングウィザードを使用してSQL Server Express Editionへテーブル情報をコピーし、テーブルのリンクにて接続する状態まで来たのですが、とあるクエリで新たにレコードを追加する際に一部の列の変更が出来ないと言った現象が発生しています。既に存在している情報については問題なく変更出来ます。テーブル情報をSQL Serverにコピーする以前(mdbの状態)では正常に追加出来ていました。 問題のクエリの構成ですが、 テーブルA、テーブルB、テーブルC、テーブルD共に顧客コード(KOKYAKU_CODE)を主キーにしており、 テーブルAの顧客コード、会社名 テーブルBの○○フラグ、△△フラグ テーブルCの××コード テーブルDの□□コード を表示するようなクエリとなります。 SQLビューでFROM部分を確認すると、 「FROM ((テーブルA INNER JOIN テーブルB ON テーブルA.KOKYAKU_CODE = テーブルB.KOKYAKU_CODE) INNER JOIN テーブルC ON テーブルA.KOKYAKU_CODE = テーブルC.KOKYAKU_CODE) INNER JOIN テーブルD ON テーブルA.KOKYAKU_CODE = テーブルD.KOKYAKU_CODE;」 となっています。 このうち、新規レコード追加時にテーブルB、テーブルC、テーブルDの情報の書き換えが出来ない状態です。 恐らくリレーションの設定がおかしい為にこの様な現象になっているのだとは思うのですが、mdbの状態(アップサイジングウィザード実行前)では問題ない事や、SQL Serverのダイヤグラム等が関係しているのかがよく分からずにいます。 すみませんが助言をお願い致します。

  • Access 選択クエリーの入力制限

    Access97を使用しています。 選択クエリーを用いて単一テーブルの任意の列を表示 します。 元データは単一テーブルなので、選択クエリーに対して 新規レコードを追加すると、そのまま元のテーブルにも レコードが追加されますよね? この選択クエリーの機能を参照のみに限定し、 レコード追加・更新は制限したいのですが、これを実現 することはできるのでしょうか? データシート形式のフォームなら選択クエリーとほぼ 同じイメージで操作できるし、これならプロパティの 「追加の許可」「更新の許可」あたりを設定すれば レコード追加を抑制できると思いますが、極力選択 クエリーを使いたいんです。 よろしくお願いします。

  • ODBC接続で新しいレコードを追加できない

    OS XP SP3、ACCESS2003 DBはSQLserver2005express です SQL Server Management Studio Express を使って 新しいDB、テーブル、項目は作成できました。 また同じツールを使って手入力でデータを追記することもできます 質問はこのテーブルを ACCESSからODBC接続して 追加クエリーを実行したいのですが リンクしてテーブルを開いた時点で新規レコードが追加できない状態です。 サーバーの更新をしたく、少ないデータであれば手入力でも 大量のデータでは…ACCESSのクエリーを使いたいと思っております。 ODBC接続の設定が読み取り専用になっているのか そうであれば その設定はどこにあるのか 教えてもらえないでしょうか? 宜しくお願いいたします

  • Accessの追加クエリで疑問点があり、質問します。

    Accessの追加クエリで疑問点があり、質問します。 フォームにボタンを作り、それをクリックすると、追加クエリを動かす前に、対象のテーブル内を削除クエリで空にしてから、追加クエリを動かし、その後追加先のテーブルをテキストファイルへとエクスポートしています。 この作業の追加クエリでテーブルへデータを追加する際は、追加クエリで設定しているデータの並び替えは反映しないのでしょうか? テーブルはデータを入れておく器にすぎなので、いくら並びを指定してテーブルへデータを順番通りに追加していっても、テーブル内はその順番通りに保存されるとは限らないと聞いた事があります。 そこで、最終的にテキストファイルへエクスポートする場合は、追加クエリをやめて、選択クエリに変更し、これをテキストファイルへエクスポートした方が安全でしょうか?または、追加クエリで並びを指定しておけば、追加クエリで追加したデータはテーブルに追加された際は、追加クエリで指定したデータの並び順になるものなのでしょうか? ご教授よろしくお願いします。

  • テーブルへのデータ追加の元となるクエリの探し方

    Accessのあるテーブルがあります。 そのテーブルには、クエリによりレコードが追加されていると思われるのですが、どのクエリを元にレコードが追加されているのか不明です。 どのクエリを元にレコードが追加されているのかを探り当てるには、どのようにしたらよいか、ご教授願います。 ※ Win XP、Access2002で作業しています。

  • SQLサーバーに保存してあるクエリをアクセスで開くには?

    SQLサーバーに保存してある「クエリ1.sql」をアクセスで開くにはどうすればいいでしょう? アクセスで「リンクテーブル」→「ODBC接続」 でテーブルのリンクはできているのですが クエリをリンクするにはどうすればいいでしょうか? 宜しくお願い致します。