- ベストアンサー
アクセスにオラクルのテーブルをリンク
アクセスでオラクルのテーブルを ODBCでリンクしたいのですが そのとき オラクルのユーザー名を 例えば USERNAME で リンクしたいテーブルを TABLE1 として、 リンクすると アクセス 上では USERNAME_TABLE1 と言う様に ユーザ名 + テーブル名 になってしまいます。 使用したいのは テーブル名だけなので できれば ユーザ名がつかないでリンクしたいのですが、そう言う事はできないのでしょうか? テーブルの量がたくさんあるので あとから名前を変更するのが大変なんです・・・
- NARA-OOSAKA
- お礼率53% (7/13)
- オフィス系ソフト
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>>スクリプト一発で簡単にできるのでは? > とは アクセスのマクロのことなのですか? VBAです。(マクロではさすがに無理だと思います) 一例ですが、↓こんな感じ。 Option Compare Database Option Explicit Public Const pCstLngFrm As Long = &HFFFF8000 'フォーム Public Const pCstLngMcr As Long = &HFFFF8002 'マクロ Public Const pCstLngRpt As Long = &HFFFF8004 'レポート Public Const pCstLngMdl As Long = &HFFFF8007 'モジュール Public Const pCstLngQry As Long = &H5& 'クエリー Public Const pCstLngTbl As Long = &H1& 'テーブル Public Const pCstLngOdbcTbl As Long = &H4& 'リンクテーブル(ODBCデータソース) Public Const pCstLngLnkTbl As Long = &H6& 'リンクテーブル(*.MDB) Public Sub ReplaceTableName(ByRef strFind As String, ByRef strReplace As String) Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSql As String Dim strTmp As String strSql = "SELECT" strSql = strSql & " Name" strSql = strSql & " FROM" strSql = strSql & " MSysObjects" strSql = strSql & " WHERE" strSql = strSql & " Type = " & CStr(pCstLngOdbcTbl) strSql = strSql & " AND" strSql = strSql & " Name Like '" & strFind & "*'" strSql = strSql & " ORDER BY" strSql = strSql & " Name" Set db = CurrentDb() Set rs = db.OpenRecordset(strSql, dbOpenSnapshot) With rs Do Until .EOF strTmp = .Fields("Name").Value db.TableDefs(strTmp).Name = Replace(strTmp, strFind, strReplace, , , vbTextCompare) .MoveNext Loop .Close End With Set rs = Nothing db.Close Set db = Nothing End Sub
その他の回答 (1)
> アクセスでオラクルのテーブルを ODBCでリンクしたいのですが > > そのとき オラクルのユーザー名を 例えば USERNAME で リンクしたい > テーブルを TABLE1 として、 リンクすると アクセス 上では > > USERNAME_TABLE1 > > と言う様に ユーザ名 + テーブル名 になってしまいます。 > 使用したいのは テーブル名だけなので できれば ユーザ名がつかないで > リンクしたいのですが、そう言う事はできないのでしょうか? 試してませんが、DoCmd.TransferDatabase メソッドでできませんか? > テーブルの量がたくさんあるので あとから名前を変更するのが大変なんです・・・ スクリプト一発で簡単にできるのでは?
お礼
さっそくの回答ありがとうございます。 じつは、アクセスのVBAとかあまり詳しくないので ファイル->外部データの取りこみ->テーブルのリンク で ODBCでテーブルを指定してリンクしているのです。 >スクリプト一発で簡単にできるのでは? とは アクセスのマクロのことなのですか?
関連するQ&A
- odbc接続でaccessのテーブルにリンクを張るには
オラクルのデータベースからodbc接続でaccessにテーブルをリンクしようとしているのですが、起動した1回だけオラクルのユーザとパスワードがでてきます。ユーザとパスワードをいれずにテーブルをひらくことができるのでしょうか。オラクルのodbcを使っています。odbcの登録にはパスワードを登録するところがありませんでした。
- ベストアンサー
- Oracle
- AccessからOrcleのODBCリンクテーブルにて
OS:XP Pro Access:2003 Oracle:9i という環境で、AccessからOracleのODBCリンクテーブルを作成して使用しています。 リンクテーブルを作成する際、パスワードの保存にチェックを入れて、作成しました。 Orcle側のパスワードを変更したいのですが、変更前に作成したリンクテーブルは 作成し直しになってしまうでしょうか?
- 締切済み
- その他(データベース)
- オラクルテーブルで受け付けない文字
ACCESS97のデータベースで オラクルのテーブルを使用しています。 アクセスのテーブルではクエリーが実行できたのですが (実行時に読込めた) 名前を変更して、(リンクしている)オラクルテーブルで実施すると 上手く行きません。 オラクルテーブルでは、受けつけない文字があると聞いたことがあります。 例えば、 " や ' など。 このような文字 一覧がわかるページ等 ないでしょうか?
- ベストアンサー
- その他(データベース)
- 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データベースの表の値を更新したいと思っているのですが、 解決方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?
- 締切済み
- その他([技術者向] コンピューター)
- ASPでACCESSからoracleにリンクさせて表示したい。
はじめまして。 いろいろ調べてみたのですが、わからなかったので質問させてください。 現在、ASPを利用してACCESS(2003)のテーブルから簡単な検索をできるようにしています。 このACCESSのテーブルは、別サーバーで動いているoracle(10g)のデーターベースから EXCELでエクスポートしたものを、ACCESSでインポートして使用していました。 この手間を省くため、ACCESSとoracleをODBCを使用してリンクさせたいと思いました。 まず、ODBCのシステムDSNで「oracle in oraclient10g」で追加して、接続を確認。 その後、ACCESSにてODBCでテーブルをリンクさせて開くことも確認できました。しかし、 WEB上で確認したところ、サーバー側・クライアント側でも以下のエラーが出てしまいます。 Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access Driver] ODBC--'****' への接続が失敗しました。 これはどのようにすれば、出来るようになるでしょうか。 初歩的な質問で申し訳ありませんが、ご教授ください。 よろしくお願いします。
- 締切済み
- Microsoft ASP
- Accessのリンクテーブルについて
Access2000を使用しているのですが、SQLServerのDBをリンクしなければいけないのですが、ODBCを使用せずにリンクさせる方法はあるのでしょうか? またはモジュールでコードを記述してリンクテーブルを作成する方法でもかまわないのですが・・・。 作成したAccessを配布したPCにODBCを設定するのが面倒なのですが・・・。 なにかいい方法があるのか教えていただきたいです。
- ベストアンサー
- オフィス系ソフト
- 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の名前を同じものではなく、別の名前に変更した方が宜しいのでしょうか。 質問内容に不足な点がございましたら、内容を再度追加致します。 どうぞご教授宜しくお願いします。
- ベストアンサー
- その他(データベース)
- access ODBCリンクテーブルの作り方
自分のPCで、あるaccessの業務システムを作成し、それを数人で共有してデータの入力をするようにする為に、ODBCリンクテーブルというものを作る必要があると思っています。 既存で業務的に違う別のシステムがあり、そこでODBCリンクテーブルというものは使用しています。(退職した前担当者が作成。) ODBCリンクテーブルというものは、どのうようにして作るのですか? (地球マークのテーブルです。)
- ベストアンサー
- オフィス系ソフト
- oracle XEのACCESS(ODBC接続)で#Deletedと表示される
ACCESS(2002)のODBCを使用してoracle XEのテーブルリンクして、テーブルの中身を表示すると#Deletedと表示されます。 テーブル名は、英名で、項目名は日本語名称を使用していますが、 そのあたりが原因になっているのでしょうか? 解決策をご存知の方教えてください。
- ベストアンサー
- Oracle
- AccessでOracleのテーブルをリンクし、Access側では読み取り専用にしたい
社内にOracleデータベースでのシステムが立ち上がっているのですが、管理帳票の出力用に、OracleのデータをAccessで読み込みたいと思っています。 テーブルのリンクそのものは知っており、成功しているのですが、Oracleデータベースのデータを壊さないようにするため、このリンクテーブルを読み取り専用にしたいと思っています。どのようにすれば良いでしょうか。 なお、Oracle側で読み取り専用ユーザを作成して、そのユーザでリンクすれば良いことは理解していますが、それは最後の手段にしたいと思っています。別の方法でうまくできないでしょうか。
- ベストアンサー
- その他(データベース)
お礼
うわー わざわざ本当にありがとうございます。 さっそく試してみます。 その結果はまた報告させていただきます。