お世話になります。

今わが社ではACCESS2007を使っております。
最近気づいたのですがここ毎日〇〇Data.ldbというのがでてきています。
調べてみると他の誰かが使用している場合、〇〇Data.ldbが出ると書いてあるのですが誰ひとり使用していなくても出てきています。
原因はなんなのでしょうか?

よろしくお願い致します。

A 回答 (3件)

ldbファイルは誰かが開いているとき以外でも


何らかのプログラムがそのMDBにあるテーブルなどを開いていると作成されます。
ほかのプログラムなどが〇〇Data.MDBを読み書きしているのではないでしょうか?


たとえば、

 勤怠管理.mdb
 |
 |※テーブルリンク
 |
 社員マスタ.mdb の 社員情報テーブル
 
となっている場合、

勤怠管理.mdb側のデータ入力時に社員情報を表示しようとして
社員マスタ.MDBに接続され社員マスタ.ldbが作成されます。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
皆様の意見を参考にさせて頂きまして無事解決できました。

本当にありがとうございました。

お礼日時:2011/04/12 08:31

最後に閉じるときに LDB ファイルは消えるはずなのですが


単独で使用していても何故か残ってしまうケースがありました。
エラーで終了したわけでも無いですし閉じるときに最適化の
オプションを外していても残ってしまう場合があります。
何かのタイミングの問題かと考えていますが、あまり気にしていません (^^ゞ

ところで、その LDB ファイルをメモ帳で開くと
使用していた コンピュータ名と ログオン名 が分かります。
また LDB ファイルを右クリックして
セキュリティタブから詳細設定で
所有者タブにて所有者のログオンアカウント名が分かります。
多分これが使っていた最後の人かと思われます。
    • good
    • 0

Googleででも「ACCESS ldb」「ACCESS ldb 消えない」で照会してください。


多数記事があり
http://oshiete.goo.ne.jp/qa/1740965.html
などを読んでみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「○○○.ldb」のAccess レコード ロック情報←このファイルが消えません

windows-nt、officeはAccess2003です。

Access97から2003に変換したファイルを、なんら問題なく、半年使っていました。
メンテナンスは「shift+enter」の排他モードで開き、度々行っていました。

ですが突然いつものように、メンテをして閉じたのですが、「Access レコード ロック情報」のファイルが消えません。
ファイルを全て閉じても、このファイルのユーザーが自分になったままになっています。
レコードロック情報のファイルを消したいのですが、どうしたらよいでしょうか??

もぅ、ギブアップです・・・

説明がうまくなくて、申し訳ありませんが、どなかた解決して頂けたらと思います。
宜しくお願い致します!!

Aベストアンサー

ldbファイルは共有データベースでロックされているレコードとロックしているユーザーを特定するために使用されます。最後のユーザーがデータベースを終了するとldbファイルは自動的に削除されますがmdbに損傷などある場合は残ってしまうことがあります。ldbファイルにはデータベースを開いているユーザーの一覧が含まれている程度なのでldb ファイルが存在する場合は対応するmdbファイルを閉じてから削除します。
削除が出来ない場合はPCを再起動してください。再起動して残っている場合。削除できるはずです。

Qレコードロック情報の解除方法を教えてください。

windows-XP、officeはAccess2003です。

共有フォルダ上で他のPCでも開いて使用しています。

いつものように、メンテをして閉じたのですが、「Access レコード ロック情報」のファイルが消えません。

ファイルを全て閉じても、このファイルのユーザーが自分になったままになっています。
レコードロック情報のファイルを消したいのですが、どうしたらよいでしょうか??


どなかた解決して頂けたらと思います。
宜しくお願い致します。

Aベストアンサー

Access でそのmdb(mde?)ファイルを開いて閉じても消えない。
Delete キーでも消えない。
他にファイルを開いている人は絶対にいない。
のなら、質問者さん以前の使用者のAccessがきちんと終了しなかったため?
かもしれません。

ldb ファイルが残ったままでも不都合が発生する事はないので
気にしなくとも良いのでは?と思います。
どうしても消したいのなら、質問者さんの権限にもよりますが
ldb ファイルを右クリックして
プロパティ→セキュリティタブ→詳細設定ボタン→所有者タブ→編集ボタン
から所有者の変更を行って、所有者を自身に替えます。
その後にldb ファイルを Delete キーで削除してみてください。

質問者さんにその共有フォルダ内で削除権限が無い、
ファイルサーバーに軽微なエラーが発生している、
ファイルサーバーのOSがwindows系では無い・・などの場合は
削除できない(上記操作が不可)かもしれません。

まぁ明日の夜か、あるいは二・三日掛かるかもしれませんが
消えてくれると思います。気にしないことです。
ただ、これが、ずーーーーーーと残ったり、頻発するようでしたら
ファイルサーバーの管理者と相談してみてください。

蛇足ですが、ldb ファイルをメモ帳で開くと
どのパソコンで開いている(いた?)かが分かります。

Access でそのmdb(mde?)ファイルを開いて閉じても消えない。
Delete キーでも消えない。
他にファイルを開いている人は絶対にいない。
のなら、質問者さん以前の使用者のAccessがきちんと終了しなかったため?
かもしれません。

ldb ファイルが残ったままでも不都合が発生する事はないので
気にしなくとも良いのでは?と思います。
どうしても消したいのなら、質問者さんの権限にもよりますが
ldb ファイルを右クリックして
プロパティ→セキュリティタブ→詳細設定ボタン→所有者タブ→編集ボタン
から所有者の変更...続きを読む

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QACCESSに同時アクセス(編集)をしたい

教えてください。
ACCESSのDBに複数のユーザが同時にアクセスして、
データを追加・編集したいのですが、
やはり、不可能でしょうか?

Aベストアンサー

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」

というのがありますから、最初に作ったdb1をたどり、リンクしたいテーブルを
選択します。

こうすることにより、db2にdb1のテーブルがリンクされ(リンクテーブルと
呼ばれます。アイコンが通常のテーブルと違います。)、db1に格納された
データをdb2で編集することができます。

db2で、db1からのリンクテーブルを元にクエリーを作成することもできます。
リンクテーブルに対してできないことはテーブル構造の変更くらいで
他のことはだいたいできると思っていいかと思います。

このような形をとれば、ローカルエリアネットワーク内の複数のコンピュータ
から同時に同じアクセスデータベースにアクセスすることは可能かと思います。

このやり方にはおそらく問題もあるだろうと思うのですが、昔私がやって
いた頃は、特段支障もなく業務を行なうことができました。問題は、これを
読んだ他の誰かが指摘してくださるかと思います。

同じレコードに複数ユーザが同じタイミングでアクセスするとややこしい
ことになります。これを回避するためには、db2にワークテーブルを備えておき、
リンクテーブルからレコードを一度db2に格納し、編集を終了したのちに
リンクテーブルのレコードを削除し、ワークテーブルで編集したレコードを
リンクテーブルに追加する、などのルーティンをマクロやVBAで構築するのが
よいかと思います。私はそのようにしていました。

他に、ADOを使う方法などもあります。方法はいくつかありますから、
少し研究してみるといいですよ。(^-^)

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」
...続きを読む

QACCESSで作成したアプリケーションがACCESSランタイムで動かない?

ACCESSで作成したアプリケーションがあるのですが、顧客の要望でランタイムで運用したいと思っています。

ところが動作確認をすると、あるフォームを開く際に「実行時エラーが発生したため、このアプリケーションの実行は中断しました。
アプリケーションを続行できません。システムはシャットダウンされます。」

というダイアログを表示して、OKボタンを押すとアプリケーションが落ちてしまいます。

ランタイムではないACCESSでは問題なく動作するのですが、ランタイムでは何が違うのかわかりません。

動作環境
OS:WindowsXP
ACCESSランタイムは2003と2000 SR-1、ランタイムでないACCESSでも2003と2000 SR-1を試していますが、いずれの場合でもランタイムで上記の症状が発生し、ランタイムでない場合は発生しません。
Microsoft Jetは4.0にしてあります。

断片的なヒントでも結構です。また参考になるサイトでも結構ですのでご教示をお願いいたします。

Aベストアンサー

Accessの内部エラーが発生しているのですぐ落ちてしまう。
ランタイム条件によってフォームが実行される時に有効なコードが誤っているとか。(フォーム中のコードが削除したテーブルを開こうとしている。実行時のコードで誤ったロジックが含まれる。みたいな誤り)
エラーがコード内で発生しているがエラー処理を実装していないので落ちてしまうとか。

QAccess終了時の最適化が失敗?

Accessで作成したシステムには必ずオプションで「終了時に最適化」を指定しています。最適化の時に一旦、MDBのファイル名がdb1.mdbとかに変わり、次に元のファイル名に戻るのが正常なパターンですが、たまにファイル名が戻らない場合があります。何か対策はありますでしょうか?宜しくお願いします。

Aベストアンサー

私はACCESS2000を使用しています。
最適化するときは次のように注意しています。

(1)コードを閉じてから最適化する。
   ===コードの閉じ方===
   モジュールをデザインで開き、右上内側の閉じるボタンをクリックしてコードを閉じる。灰色の背景が見えるまで全て閉じる。(※1)
   コンパイルする。(コンパイルが通ったら)上書き保存する。AccessDBを閉じる。
   最適化する。
 Access2000になってからコードが開いた状態で最適化やフォームの削除、モジュールの削除をするとDBが壊れるということを経験しました。

(2)AccessDBは閉じてから最適化する。
 Accessウインドウの中にAccessDBが開いている状態で最適化するとちゃんと最適化できないようです。
 Accessウインドウだけが開いた状態から最適化します。

※1)
開いているコードが多すぎて手作業で閉じるのは大変という事でしたら、
コードを閉じる関数を持っています。コメントにご連絡ください。

Qフォームを開くときに、コンボボックスの値を選択(アクセスVBA)

こんにちは。
アクセスVBAで、フォームを開いたとき
(フォームのOpenイベント)に、
コンボボックスの値を選択したいのですが、
どういう方法が、あるでしょうか。

理想は、
フォームのOpenないし、Loadイベント内で、
コンボ0.ItemData(2).Selected
と、書くような感じです。
(無論、Selectedは使えませんでした)。

よろしくお願いします。

Aベストアンサー

これでいいのかな?
※テキスト書きなので検証していません

If コンボ0.ListCount > 0 Then
  コンボ0.Value = コンボ0.Column(0, 2)
End If

QOfficeアクセス テーブル「テキスト型」⇒「日付型」への変換について

テーブルにデータが保管されており、そのフィールドの一つに「テキスト型」で”20080301”のようなデータを持っています。これを「日付/時刻型」”2008/03/01”のように変換したいのですが、どのようにすればよいのでしょうか。

※ちなみにこのオリジナルデータは毎日、自動的にテーブルにダウンロードされており、このテーブル自体の型を予め「日付/時刻型」に変換すると、日々のデータ取得時にエラーとなってしまいます。ですので、「日付/時刻型」のフィールドを持った新規のテーブルに、この”20080301”のデータを変換し格納したいのですがどのようにすればよろしいでしょうか。

テーブル⇒デザインより、該当のフィールドの型を「テキスト型」⇒「日付/時刻型」へ直接変換してしまうと、「データの変換中にエラーが発生しました。○○件のレコードのデータが失われました。」と表示されます。素人のため、なるべく追加クエリや更新クエリや簡単な関数のみでの方法を教えていただけたら幸いです。

Aベストアンサー

テーブルに日付時刻型フィールドを追加して、
更新クエリを使って、#1さんが提案されている
数式を使えばよいのでは?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報