Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


798 / 2272 ツリー ←次へ | 前へ→

【10045】Access2003上でのDAO動作 raki 07/12/3(月) 10:45 質問[未読]
【10046】Re:Access2003上でのDAO動作 VBWASURETA 07/12/3(月) 11:05 発言[未読]
【10052】Re:Access2003上でのDAO動作 raki 07/12/3(月) 14:24 お礼[未読]
【10049】Re:Access2003上でのDAO動作 Gin_II 07/12/3(月) 13:01 発言[未読]
【10051】Re:Access2003上でのDAO動作 raki 07/12/3(月) 14:20 お礼[未読]
【10062】Access2003上でのDAO動作(続報) raki 07/12/5(水) 14:08 発言[未読]

【10045】Access2003上でのDAO動作
質問  raki  - 07/12/3(月) 10:45 -

引用なし
パスワード
   WindowsVistaに対応するために、現行Access97で稼働中のシステムをAccess2003(Vista動作保証あり)に変換することになりました。

データの格納先はmdb、更新処理にはDAOを使用しており、変換後(access97からオブジェクトインポート)に以下のような事象に遭遇しました。

1.テーブルAをOpenrecordsetで開く。
2.テーブルAに対してEXECUTEコマンドでの更新処理を行う
 ↓
 1.にてOPENしているレコードについて、更新不可
 (Accessの2KBページロックから外れるところは更新されている?)

OPENRECORSETで開く際のオプション定数や、レコードセットのクローズ等をすべて試しましたが、試行錯誤の結果判明した対策は以下のとおりでした。


対策1.Access2003へ変換時、基本はAccess2000形式だが、
    2000-2002形式にし、そこへインポートする。

対策2.Access2003で開くとき、排他モード指定で開く。


今のところ、上記2点の解決策が見つかっていますが、その根拠が見当つきません。
知識をお持ちのかたが見えましたら、お助けお願いできませんでしょうか。

【10046】Re:Access2003上でのDAO動作
発言  VBWASURETA  - 07/12/3(月) 11:05 -

引用なし
パスワード
   ▼raki さん:
こんにちは。

Access2003については全然わかりませんが、
以下のHPに書かれているようなことでしょうか??

//support.microsoft.com/kb/825796/ja

直リンクはダメということなので削っています。

【10049】Re:Access2003上でのDAO動作
発言  Gin_II  - 07/12/3(月) 13:01 -

引用なし
パスワード
   ○Access97から変わった点
○事象の内容

から、なんとなくですが、「ツール」→「オプション」の詳細タブにある、

既定のレコードロック
レコードレベルでロックして開く

あたりが関連しているような気はします。

【10051】Re:Access2003上でのDAO動作
お礼  raki  - 07/12/3(月) 14:20 -

引用なし
パスワード
   Gin_II さん

ありがとうございます。

レコードロックの設定について、試してみました。
デフォルトはチェックが入っていたので、はずしてみて実行したところ、更新されました。


解決策のひとつとして利用させていただきます。

【10052】Re:Access2003上でのDAO動作
お礼  raki  - 07/12/3(月) 14:24 -

引用なし
パスワード
   ▼VBWASURETA さん:

ありがとうございます。

参照設定については、想定される環境として、Access2003のみのところへコンバートしたmdbを放り込むという形ですので、現在はDA03.6をADOよりも上にしているような形です。
旧式DAOのDLL参照設定はできないのです。

調査を続けているのですが、同じくMSのサポートページにある、ページフォルトというAccessのページロックに関する情報も関係しているのではないかという見方も出てきました。

情報ありがとうございました。

【10062】Access2003上でのDAO動作(続報)
発言  raki  - 07/12/5(水) 14:08 -

引用なし
パスワード
   解決策として、
「Access2003へインポートする」を報告しましたが、インポート後、”最適化”を実施したところ、更新不正が発生しました。

また、Access2003だけでなく、Access2000でも本件の現象が発生しました。


よって、解決作としては、”排他で開く”が硬いようです。
現在は、「レコードロック」オプションをつけた場合とはずした場合の動作、性能を調査しています。


おかしな現象ですね。
調査中の事項については何か分かったらまた報告します。

798 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free