• ベストアンサー

Accessのリンクテーブルについて

Access2000を使用しているのですが、SQLServerのDBをリンクしなければいけないのですが、ODBCを使用せずにリンクさせる方法はあるのでしょうか? またはモジュールでコードを記述してリンクテーブルを作成する方法でもかまわないのですが・・・。 作成したAccessを配布したPCにODBCを設定するのが面倒なのですが・・・。 なにかいい方法があるのか教えていただきたいです。

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

  • ベストアンサー
  • nanashan
  • ベストアンサー率37% (11/29)
回答No.1

TransferDatabaseを使ってみては、いかがでしょうか? 例 DoCmd.TransferDatabase acLink, "ODBC Database", _ "ODBC;DSN=DataSource1;UID=User2;PWD=www;LANGUAGE=us_english;" _ & "DATABASE=pubs", acTable, "Authors", "dboAuthors"

yossi0817
質問者

お礼

お返事ありがとうございます。 この方法でやってみます。 ただしこの方法でもODBC名(DSN名)を指定しないといけませんよね? 配布するPCにはなるべく余計な設定はさせたくないのでこのプログラムをヒントに作成してみます。 ありがとうございました。

関連するQ&A

  • AccessとSqlServerのテーブルリンク

    Access2007とSqlServer2008を使用しています。 Accessで作成したテーブルを「データベースツール」-「データの移動」でSqlServerに移行してリンクする際、 (1)SqlServerに新規にデータベースを作成すると、リンクテーブルマネージャから見てもリンク先DBが正しく表示されますが、 (2)その後、その既存DBに同じAccess内の別のテーブルを、「データベースツール」-「データの移動」してリンクしたものは、リンクテーブルマネージャから見てもリンク先DBが ()となっており表示されていません。 ツールとしてSqlServer Management Studioを使っていますが、そこからでも(1)のテーブルは表示されていますが、(2)のテーブルは表示されません。 でもリンクはできているようなのです。 また、SqlServer Management Studioを使って、SqlServer内に新規テーブルを作成し、 それをAccessからリンクしようとしても、テーブルリンク一覧内に表示されない状態です。 (「外部データ」-「ODBCデータベース」…)にて SqlServerのファイルデータソースを表示しています) (2)のテーブルはSqlServer Management Studioから見ることができないため、更新・削除もできず困っています。 DB、テーブル、リンク方法等、何か問題があるのでしょうか? よろしくお願いします。

  • アクセスのテーブルにリンクできなくしたい

    アクセス97です。 DBのテーブルを見れないようにはできたのですが、 他に別のDBを作成し、元のDBのテーブルにリンクしてしまうと いともたやすくテーブルを見ることができてしまいます。 元のDBには、パスワードやグループファイルで権限を付けたくないです。 テーブルのリンクを許さない方法が何か無いでしょうか? また、テーブルが誰かによってリンクされているかどうかが 分かる方法ってあるでしょうか? よろしくお願い致します。

  • access ODBCリンクテーブルの作り方

     自分のPCで、あるaccessの業務システムを作成し、それを数人で共有してデータの入力をするようにする為に、ODBCリンクテーブルというものを作る必要があると思っています。  既存で業務的に違う別のシステムがあり、そこでODBCリンクテーブルというものは使用しています。(退職した前担当者が作成。)  ODBCリンクテーブルというものは、どのうようにして作るのですか?  (地球マークのテーブルです。)

  • ACCESSのODBCリンクテーブルに接続できなくなる

    ACCESSでSQLserverのテーブルとODBCリンクテーブルで連携したアプリケーションの開発を行っているのですが、ときどきテーブルとのリンクが切れてしまい、「実行時エラーです。リンクするテーブルが見つからないので、クエリを実行できませんでした。」というエラーが発生してしまいます。外的要因以外でACCESSではこのようなことはよく起こりうることなのでしょうか。またこの問題を回避できそうな方法をしている方いらっしゃいましたらよろしくお願いいたします。

  • Accessリンクするテーブルが見つからないエラー

    Access2007で開発しています。 SQLServerにDBを作成し、テーブルをリンクしているのですが、検索時に「リンクするテーブルが見つからないので、クエリを実行できませんでした」というメッセージが起きます。 以下の同じVBAを使用し、検索するテーブルも同じなのに、ある特定フォームからそのVBAを実行した場合のみ、このエラーになります。 エラー箇所は(1)の部分です。 以前は別のAccessで作成したテーブルをリンクしていましたが、SQLServerに変えたとたんにこのエラーが起きます。 DB接続方法等、変更すべき点があるのでしょうか? 対処方法を教えて下さい。 'カレントデータベースを開く Set cnCrrDB = CurrentProject.Connection 'レコードセットを開く     SQLSTR = "select xxxName from mTest1 where xxxNo = 5" (1) rsTable.Open SQLSTR, cnCrrDB, adOpenStatic 'レコード件数とフィールド数を取得する ReCnt = rsTable.RecordCount FiCnt = rsTable.Fields.Count

  • OpenOffice BaseでAccessの「テーブルのリンク」

    Accessでは「テーブルのリンク」で複数のDBのテーブルのリンクを作成することができますが、 同じことをOpenOffice Baseにて行うことはできますか? やりたいことは、OpenOfficeがインストールされているWindowsマシンから、 複数のLinuxマシンのDB(PostgreSQL・MySQL)や当該Winマシンのmdbと接続し、 サーバ・DBを跨いでテーブルの結合(Viewの作成)をしたいのです。 現在、ODBC経由でそれぞれのDBとの接続をし、それぞれをOpenOfficeで リンクすることはできていますが、1つのodbファイルから全てのDBを 参照する方法がわかりません。 既存の複数システムのDBなので、それぞれのDBに手を入れることや、 DB設計を変えることはできません。 また、Windowsマシンにmdbファイルは置かれていますが、Officeは インストールされていません。 OpenOfficeについてあまり知識がないのですが、 ご教示いただけると助かります。

  • リンクテーブル(Oracle)をAccessテーブルにコピーしたい

    質問があります。 ODBC経由でリンクしたOracleテーブルの内容をコピーしてAccessテーブルとして扱いたいのですが、うまくできません。 作ったテーブルは一時的なものとして扱い処理が終了次第削除するという使用方法となります。 VBAを使ってやろうと思うのですが、コードが今ひとつ解りません。 Docmd.ObjectCopyで試してみたのですが、コピーされたテーブルもリンク扱いとなってしまいました。 やり方は問わないので、なにか良い方法がありましたら回答よろしくお願いします。 環境:Access2000 :Oracle8.1.5です。

  • AccessとDB2のテーブルリンクで…

    お世話になります。 ある2台のサーバーが社内にあります。 その2台のサーバーにはそれぞれ、IBMのDB2というデータベースを使用していて、それぞれのDB2内には同じデータベース名(テーブル)が存在します。 現在、サーバーAから新サーバーBに社内WEBシステムの移行を行っていて、Access2000のテーブルリンクを使って、サーバーAにあるDB2のデータベースAのテーブルとリンクをしています。 その際、テーブルリンクをする為にWindows2000の「ODBC データソース アドミニストレータ」のシステムDSNで、「IBM DB2 ODBC DRIVER」を使用してデータベースAにODBCを介して接続しております。 ですが、サーバーA側と同じ名前の、新サーバーBのデータベースAにODBCを介してテーブルリンクを繋ごうとすると、サーバーAと新サーバーBのデータベースAという名前が同じだからか、システムデータソースを追加しても、新サーバーB側のデータベースAに接続が出来ません。 この場合、新サーバーBのデータベースAの名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。

  • アクセステーブル、リンクとローカルで違いはある?

    Access2003からSQLServerにリンクテーブルを張ったアプリケーションの作成をしています。 本番リリース時にはすべてのテーブルがリンクテーブルになる予定ですが 開発時にはローカルテーブルで開発をしたいと考えています。 理由は、DBにテスト用のゴミデータを追加したくないことと、 セキュリティの関係で接続出来るマシンが限られるためです。 現状の開発方法としては、 テーブルに一度リンクを張り、テーブル追加クエリでローカルにテーブル構造とデータを退避。 手動で主キーを定義して、そのテーブルを実体をみなして開発をしています。 SQLレベルではローカルテーブルもリンクテーブルも同等の扱いだと思っているのですが 何か制限事項などがあるのであれば教えていただきたいです。 なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 追記。 クエリからクエリを参照して、さらにSQL内でサブクエリも記述しています。 その為、度々「クエリが複雑過ぎます。」みたいなメッセージが表示されています。 複雑というより無駄に長いだけだったりするのですが、 ローカルテーブルなら発行出来たのに、 リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。

  • MS-Accessのリンクテーブルで更新

    MS-Accessのリンクテーブルで更新 MS-Accessのリンクテーブルを使用して、 Oracleデータベースの表に対して 値の更新をしようとしていますが、 更新が競合しているというメッセージが出て、 更新できません。 また、値の更新をしようとしているタイミングで、 Oracleデータベース側のリンクテーブル対象表に アクセスしている処理はなく、 更新が競合していることありません。 ODBCドライバの設定では、読み取り専用設定は 実施してない点は確認しています。 使用しているソフトウェアの各バージョンは以下になります。 Access 2007 Oracle 10.2.0.4.0 WindowsXP SP3 ODBCドライバ 10.02.00.01 リンクテーブルからの更新自体がそもそも出来ないのでしょうか? MS-Accessを使用してOracleデータベースの表の値を更新したいと思っているのですが、 解決方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

専門家に質問してみよう