Access VBA質問箱 IV

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

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


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

【5104】検索結果をフォームで更新したい orange 05/5/25(水) 17:40 質問[未読]
【5106】Re:検索結果をフォームで更新したい Gin_II 05/5/26(木) 1:09 回答[未読]
【5110】Re:検索結果をフォームで更新したい orange 05/5/26(木) 11:51 質問[未読]
【5123】Re:検索結果をフォームで更新したい orange 05/5/26(木) 15:15 質問[未読]
【5127】Re:検索結果をフォームで更新したい 小僧 05/5/26(木) 16:29 発言[未読]
【5131】Re:検索結果をフォームで更新したい orange 05/5/27(金) 0:00 質問[未読]
【5132】Re:検索結果をフォームで更新したい Gin_II 05/5/27(金) 7:13 回答[未読]
【5136】Re:検索結果をフォームで更新したい orange 05/5/27(金) 11:35 お礼[未読]

【5104】検索結果をフォームで更新したい
質問  orange  - 05/5/25(水) 17:40 -

引用なし
パスワード
   こんにちわ。
初歩的な質問になってしまうのですが、
フォームで抽出した結果をそのまま更新したいのです。

フォームは単票形式で、クエリーとマクロの組み合わせで検索していたときには
表示されたレコードをそのままフォームで更新できたのですが
検索項目をコンボボックスで選択したりするように変更したため
VBAで検索結果を求めるようにしました。
ところが、検索はうまくいったのですが、抽出されたデータをフォームから
更新しようとすると、
「このフォームは読み込み専用です」となってしまいました。

wRec.Open strSQL, wCNN, adOpenStatic, adLockOptimistic
これだと更新不可になってしまうのでしょうか?

あと、強制的にme.AllowEdits=true も試したのですが、だめでした。

お気づきの点、アドバイスよろしくお願いします。

【5106】Re:検索結果をフォームで更新したい
回答  Gin_II  - 05/5/26(木) 1:09 -

引用なし
パスワード
   >ところが、検索はうまくいったのですが、抽出されたデータをフォームから
>更新しようとすると、
>「このフォームは読み込み専用です」となってしまいました。

[ACC2000] ADOレコードセットに基づくフォームが読取専用になる
http://support.microsoft.com/default.aspx?scid=kb;ja;227053

こちらとか?
#環境が書いてないのでハズシかもですが。

【5110】Re:検索結果をフォームで更新したい
質問  orange  - 05/5/26(木) 11:51 -

引用なし
パスワード
   Gin_IIさん、レスありがとうございます。

wRec.Open strSQL, wCNN, adOpenDynamic, adLockOptimistic
としたところ、フォーム上のデータの書き換えができるようになりました。
なので、環境などからくる問題ではなかったようです。すみませんでした。

ところがフォーム上、書き換えを行ってもレコードセットが
上手く取得できていないためテーブルの更新にはいたらない状況になってしまいました。

wRec.Open strSQL, wCNN, adOpenStatic,・・・・・
としていたときには
set me.Recordset = wRec
で、レコードセットがセットできたいたのですが、
wRec.Open strSQL, wCNN, adOpenDynamic, adLockOptimistic
に、修正するとセットできないのですよね。
レコードセットが取得できないので、フォームに結果を表示することももちろん
できなくなってしまいました。

よいアドバイスお願い致します。

【5123】Re:検索結果をフォームで更新したい
質問  orange  - 05/5/26(木) 15:15 -

引用なし
パスワード
   【5110】のレコードセット取得はなんとか解決しました。
お調べくださっている方申し訳ありませんでした。

いろいろ調べた結果、基本的にADOで取得したレコードセットはフォームで編集は
できないと記述している著書を発見しました。
編集したい場合は、CursorLocationプロパティの値をadUseClientに設定すると記述されてあったので、試したのですが
やはり、検索結果は表示されてもそのままフォーム上で編集しようとすると
「このレコードセットは編集できません」となってしまいます。

ACCESS2000ではDAOのコードは使えないようなので、模索中です。

お気づきの点、アドバイスなどよろしくお願いします。m(__)m

【5127】Re:検索結果をフォームで更新したい
発言  小僧  - 05/5/26(木) 16:29 -

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

>ACCESS2000ではDAOのコードは使えないようなので、模索中です。

当方、手元にAc2000が無いため、間違っていたらすみません。

参照設定の 「Microsoft DAO x.x Object Library」 にチェックを入れれば
DAOを使えると思います。(DAOが参照設定になかったらすみません。)

参照設定の優先順位を気にする必要がでてきますが…。

【5131】Re:検索結果をフォームで更新したい
質問  orange  - 05/5/27(金) 0:00 -

引用なし
パスワード
   こんばんわ。

早速、参照設定を確認しました。
DAOのコード使えるようになりました。
ありがとうございます。

DAOコードで検索するようにヘルプなど参考にしながらやってみたのですが、
検索結果が該当データなしになっちゃいました^^;
SQLの部分(select 〜)の書き方は、ADOと同じですよね?
あと、レコードセットもうまくセットできませんでした。

ADOの結果のレコードセットはやはり編集できないのでしょうか?
その辺も教えてください。
よろしくお願いします。

【5132】Re:検索結果をフォームで更新したい
回答  Gin_II  - 05/5/27(金) 7:13 -

引用なし
パスワード
   > いろいろ調べた結果、基本的にADOで取得したレコードセットはフォームで編集は
> できないと記述している著書を発見しました。

> [ACC2000] ADOレコードセットに基づくフォームが読取専用になる
> http://support.microsoft.com/default.aspx?scid=kb;ja;227053

そのことを提示したつもりだったのですが。。。


> DAOコードで検索するようにヘルプなど参考にしながらやってみたのですが、
> 検索結果が該当データなしになっちゃいました^^;
> SQLの部分(select 〜)の書き方は、ADOと同じですよね?
> あと、レコードセットもうまくセットできませんでした。

Like 演算子の記号以外は、同じ記述で大丈夫だと思います。(大抵は)
% → *
に変更してください。

【5136】Re:検索結果をフォームで更新したい
お礼  orange  - 05/5/27(金) 11:35 -

引用なし
パスワード
   Gin_IIさん、ありがとうございます!

それから。。。。
先のレスの意図がつかめず失礼しました。すみません。m(__)m

ワイルドカードの%→*に修正したところ、問題解決しました。

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

小僧さんも、レスありがとうございました。

もっと勉強していきますので、またなにかありましたときには
ご協力よろしくお願いしますね。

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