• 締切済み
  • すぐに回答を!

#DELETEDって?(Access97)

Access97(初期バージョン)でOracle7.3の データをリンクしています。 Access97側でオラクルのテーブルを開いたら、 データのセルが"#DELETED"だらけになっていました。 でも、データの抽出をすると見えるようになるんです。 ナゼでしょう? 何台かのPCで同じ事をしていますが、普通にデータが 見えるPCもあります。 DLLとかのバージョンが悪いのでしょうか? 教えてください。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数407
  • ありがとう数2

みんなの回答

  • 回答No.3
  • mfuku
  • ベストアンサー率50% (173/345)

一般的には、Oracleのデータがシート表示中に削除された後にデータを再表示した時、あるいは、Oracle側のテーブルレイアウトが変更されたとき(特に主キー)に起こります。 しかし、どうやらそのいずれの場合でもないようですね。 ODBCドライバはどれを使用してますか? 一番考えられる原因はODBCドライバの不具合です。 Oracle社のHPから最新のODBCドライバをダウンロードしていただくか、メラント社(旧インターソルヴ社)から発売されているドライバに変更してみてはいかがでしょうか? ちなみに、ACCESSに付属しているMS社のOracleドライバは間違っても使わないでください。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • oracle XEのACCESS(ODBC接続)で#Deletedと表示される

    ACCESS(2002)のODBCを使用してoracle XEのテーブルリンクして、テーブルの中身を表示すると#Deletedと表示されます。 テーブル名は、英名で、項目名は日本語名称を使用していますが、 そのあたりが原因になっているのでしょうか? 解決策をご存知の方教えてください。

  • ACCESS&ORACLEでアプリ作成

    oracle9iとACCESS97を用いて作成されているアプリを改良する予定ですが、アドバイスをお願いします。 現在の状態>access97で作成されているアプリには,       oracleのテーブルをリンクさせ、そのテーブルからクエリーで抽出したい条件のものをACCESSのローカルテーブルへ落とし、必要な条件をすべて落とし終わったらフォームで表示させるようなことをしています。ですが、リンクテーブルとクエリーをガンガンを用いているためレスポンスが半端じゃなく悪いです。 access経験がほぼ無いため、どのように改良を進めていけばよいのか困っております。 レスポンスをあげるにはどうすればよいでしょうか?

  • Excel→Access→Oracleでインポートする手順

    Oracle 9iで作成したテーブルを Access2002でリンクさせ、 Excel2002で作成したデータを、 インポートしたいのですが、 Accessの操作(Excelデータの取込&Oracleへのインポート)の 方法の手順を教えていただけないでしょうか。 ちなみにテーブルの作成とリンクは済んでおります。

  • 回答No.2
  • paz777
  • ベストアンサー率47% (77/163)

定かな記憶では無いのですが、一旦リンクしたテーブルを 削除して再度リンクすると直るような気がするのですが・・・ 一度、お試しあれ。 ではでは・・・

共感・感謝の気持ちを伝えよう!

質問者からの補足

回答ありがとうございます。 残念ながら、再リンクしてもダメです。 それから、この現象が出る端末と出ない端末があるのが 何とも不可解です。

  • 回答No.1
noname#9414
noname#9414

それって、Oracle側で削除したとされるデータでは ないでしょうか。データベースに限らず、Windowsでも ゴミ箱といって、実際には後で削除するものに、 DELETEDというフラグをたてておくのが、基本に なっています。 関係なかったら、すいません。 ではでは☆

共感・感謝の気持ちを伝えよう!

質問者からの補足

回答ありがとうございます。 データ自体は生きています。 オラクルでも確認できますし、通常の業務には 差し支えありません。 でも、なぜかAccess97でリンクしたものの一部に こういう現象が起きるので、変だな……と。 フィルターで条件を指定せずに、全件抽出すると 結果シートにはちゃんと全件出るんですけど。 何か、不気味で。

関連するQ&A

  • AccessからOracleへのリンクテーブル時の型情報?

    Access始めたばかりの初心者です。 現在Oracle10gのデータベースのとあるテーブルを をAccess2000でリンクし、クエリで抽出したものをレポートに表示 しようとしています。 そのテーブル上に、 Oracle上ではVARCHAR2(6バイト)の日付データがあります。 例) 200806 これをAccessのクエリ上で変換し、 "6月" と表示させたいのですが、 なぜかうまくいきません。 Oracle上の項目名が YM だとすると、 Replace(Right([YM], 2), "0", "") & "月" こういった関数でうまくいきそうなものですが・・ もしかしてOracleのVARCHAR2はリンクすると文字列型以外の型として 扱われるのでしょうか・・ どなたかご存じの方、ご教授くださいませ。

  • Oracle 8.1.6で・・・

    Oracle 8.1.6でAccessのようにテーブル構造をみたり、 データをみることのできるユーティリティーはご存知ないでしょうか。 SQL+は使い勝手が最近のviエディタよりもよくないのと、いままでAccessしか 触ったことがないのでなれないということで困っています。 オラクルのユーティリティーの名前自体がバージョンが変わると変わってしまう・・・というのは聞いたことがあるのですが・・・。 よろしくおねがいします。

  • accessからのデータ参照について

    ご存知の方がいたら教えて下さい。 【動作環境】 OS:WINDOWS SERVER 2003,WINDOWS XP ACCESS:ACCESS2000 ORACLE:9i(9.2.0.1.0) 1つのACCESSファイルにシステム部分とデータ部分が存在しているACCESSのシステムを「システム部分はACCESS」「データ部分はORACLE」という形にしました。 ACCESSで管理していたデータをORACLEへ移行して、データ自体は簡単に移行が行え、ODBCでリンクをしてデータを参照できる状態にしました。 ここまでは、良かったのですが移行を行ったACCESSのテーブルに1レコード240ぐらい項目のあるテーブルが存在してリンクテーブルを開くことができません。 クエリーでも項目を選択した場合は参照できますが、全てを表示させようとするとダメです。 パススルークエリ等も試してみたのですが、いまいちうまくいきません。 どうにかして、1レコード240ほどのORACLEデータをACCESS側で参照することができないでしょうか? 説明が分かりずらく申し訳ありません。ご質問いただければ補足を致しますので、よろしくお願いします。

  • AccessでOracleのテーブルをリンクし、Access側では読み取り専用にしたい

    社内にOracleデータベースでのシステムが立ち上がっているのですが、管理帳票の出力用に、OracleのデータをAccessで読み込みたいと思っています。 テーブルのリンクそのものは知っており、成功しているのですが、Oracleデータベースのデータを壊さないようにするため、このリンクテーブルを読み取り専用にしたいと思っています。どのようにすれば良いでしょうか。 なお、Oracle側で読み取り専用ユーザを作成して、そのユーザでリンクすれば良いことは理解していますが、それは最後の手段にしたいと思っています。別の方法でうまくできないでしょうか。

  • オラクルからAccessにデータ追加

    オラクルから、必要なデータを抜出し加工の為のDBをAccessで作成していますが、オラクルから抜き出したデータ(レコードセット)を、どうやってAccessのテーブルに書き込めばよいかがわかりません。 ◎環境 Oracle:10g Access:2010 ◎現在の状況 Dim CON As New ADODB.Connection Dim RS As ADODB.Recordset Dim SQL As String Dim i As Integer 'DB接続定義 CON.Open "DSN=DNS名;UID=ユーザー名;PWD=パスワード;" 'SQL文 SQL = "SELECT " SQL = SQL & "カラム1," SQL = SQL & "カラム2," SQL = SQL & "カラム3" SQL = SQL & "FROM オラクルテーブル名 " SQL = SQL & "WHERE 抽出条件 " SQL = SQL & "AND 抽出条件" SQL = SQL & "GROUP BY カラム" SET RS = CON.EXCUTE(SQL) For i = 1 To 10 Debug.Print rs(カラム1) & rs(カラム2) next i ここまでは、オラクルのテーブルから、レコードセットにデータが取り込まれてます。 rs.close: SET RS = Nothing con.close:SET CON=Nothing end sub 案1 レコードセットのデータを、Access側のテーブルにループで回して、1行ずつデータ追加 案2 INTO句で直接、テーブル作成 調べていて、2通りのやり方があると思うのですが、どちらにしても、テーブルへの書き込み方がわかりません。 案1の場合、Access側のテーブルを開いてデータ追加する方法 ※同時に2つのテーブルを開くことになるのでは? 案2の場合、SQL文はオラクルで処理する為の物なので、AccessテーブルのINTO句が使えるのか? オラクルのテーブルをリンクする事も考えたのですが、実際動かすPCにはAccessRuntimeしかインストールしてませんので、オラクルのテーブルをリンクしてくれませんでした。 よい方法があれば、アドバイスを頂けたら幸いです。

  • ACCESSとORACLEで抽出結果が異なる

    いつもお世話になっております。 ACCESS2000を扱っております。 ACCESSのデータベースにODBCを接続してORACLEの テーブルをリンクテーブルとしてインポートします。 そして、ACCESSのテーブルとORACLEのテーブルを LEFT JOIN を行いクエリーを作成したのですが、 正しい結果が抽出できません。 ただし、ORACLEのテーブル構成・データと全く同一の ACCESSのテーブルを作成し、クエリーを作成したところ 正常に動作しております。 SQLは以下のような内容となっております。 sSQL = SELECT TBL_1.A, TBL_1.B, TBL_1.C FROM TBL_1 LEFT JOIN TBL_2 ON TBL_1.A = TBL_2.A AND TBL_1.B = TBL_2.B AND TBL_1.C = TBL_2.C WHERE TBL_2.A IS NULL AND TBL_2.B IS NULL AND TBL_2.C IS NULL TBL_1がORACLEより引っ張ってきたリンクテーブル、 TBL_2がACCESSに存在するテーブルになります。 以上のSQLで、TBL_2に存在なくTBL_1に存在するレコード、及びTBL_1とTBL_2でキー項目は同じだが 内容が異なるレコードを抽出できると考えているのですが、TBL_2に存在なくTBL_1に存在するレコードしか 抽出できません。 個人的には、処理する件数が多大であることが影響しているのかとも考えているのですが・・・。 (両テーブルともに約20万件レコード) クエリーを分割することで解決はしたのですが、 原因究明を求められておりまして大変困っています。 皆様の知恵を借りたいです。宜しくお願いいたします。

  • 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データベースの表の値を更新したいと思っているのですが、 解決方法をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

  • Accessでテーブルのリンクを新規テーブルに保存

    ExcelのデータをAccessのテーブルでリンクしています。 そのデータをクエリで必要なレコードだけを抽出します。 抽出したデータのみを新規テーブルとして保存したいんですが、保存の仕方がわかりません。 Access2000です。 どうかよろしくお願いします。

  • ACCESS2003 実行時エラー

    初めてmsn相談箱を利用させていただきます。 今、大変困っています。 ・現象 ACCESS2003 VBA  DB.EXECUTE "DELETE * FROM C20_FILE"で      実行時エラー3156 ODBC--リンクテーブル"C20_FILE"での削除に失敗しました。      とダイアログがでてとまってしいます。 ・正常動作実績 OS:Windows XP SP3 msjet40.dll : 4.0.9511.0 msjetoledb40.dll : 4.0.9502.0 ODBC Driver : Oracle in OraHome92 (9.02.00.00) ACCESS2003 DB : Oracle 9i R2 (9.2.0.1.0) 上記の環境では、問題なく動作しています。 ・エラーがでる環境 サーバOS : Windows Server 2008 R2 Standard(64bit) クライアントOS : Windows 7 Professional(32bit) DB : サーバ Oracle Database 11g R2(11.2.0.1.0) for Microsoft Windows(32bit) クライアント Oracle Database 11g R2 Client (11.2.0.1.0) forMicrosoftWindows(32bit) ACCESS2003 msjet40.dll : 4.0.9756.0 msjetoledb40.dll : 4.0.9756.0 ODBC Driver : Oracle in OraClient11g_home1 (11.02.00.01) ODBC接続は正常です。 ACCESS2003 オブジェクトのテーブルからリンクテーブルC20_FILEを開いて 全レコードを削除しようとすると ODBC--リンクテーブル"C20_FILE"での削除に失敗しました。 [Oracle][ODBC][Ora] ORA-01483 : DATEまたはNUMBERバインド変数の長さが            無効です。(#1483) とエラーがでたり、ACCESSに問題が発生しました。とでて ACCESS2003が終了したりと一定ではありません。 ・調査       自分なりに色々のサイトを探してみたのですが、これだ!!と思うのが見当たり            ません。 何卒どうか、どなたか助けてください!!!自分は、OS、ORACLE等は初心者です。          

  • AccessでOracleDBを扱う場合の操作性

    初めまして。Accessを使ってAccessのmdbを作成、使用している者です。  会社で「ORACLEのDBもAccessから更新できるそうだから、そのデータの更新用画面等を作って」と言われ、準備をしているところです。  「裏技」本等を見て、ODBCドライバをAccessを使用するコンピュータへ導入し、リンクテーブル機能を使用すればORACLEのDBへアクセス可能なのは文章上で確認しました。が、その後の操作性が気になっています。  Accessで通常行っているクエリやフォーム、マクロの作成・実行方法は、ORACLEのDBが対象になっても全然変わらないのでしょうか?SQL文を一から作成しなければいけない、ということにはならないでしょうか?  単純に「対象テーブルがORACLEになるだけで、Access上の操作性は変わらないらしいよ」と会社の人には言われたのですが、その情報元が不明なのと、実際その方が担当する訳ではないので本当にそうなのか不安です。  ちなみに、ORACLEのDBはデータ準備中で、まだAccessでどうなるかと確認出来ていません。 質問の仕方が下手で申し訳ありませんが、どなたかお返事を頂けたら助かります。宜しくお願いします。

専門家に質問してみよう