Microsoft Access 掲示板

openrecordset メソッド / 7

11 コメント
views
4 フォロー
7
nokonoko 2020/08/04 (火) 17:48:09 653a6@54883

フォームのレコードソースが、M_F_ID またはそれを含むクエリになってませんか。

レコードソースは空欄です

提示のコード以外の部分で、M_F_ID を更新するような操作を行ってませんか。

更新はないと思います。MT_F_ID(M_F_IDは誤植でした)については
コンボボックスcmbVerのイベントがあって、一度参照しています。

Private Sub cmbVer BeforeUpdate(Cancel as integer)
(前略)
 strSQL = "SELECT * FROM[MT_F_ID]" & _
 "WHERE [FV_ID] = '" & Me.txtFV_ID & "'"
SET rs1 = db.OpenRecordset(strSQL, dbOpenSnapshot)
With rs1
 If .EOF then
(以下レコードがない場合はExit sub、
ある場合は、非連結テキストボックスに対して、
Me.txtPCardDate=.Fields("PCard_date")とデータを入れただけ)

コンボボックスcmbF_IDのレコードソースにMT_F_ID関連のクエリを組み込んでいないときはエラーが出ませんので、それ以外の部分で更新の影響が出ていることはないと(勝手に)考えております。

通報 ...
  • 8

    コンボボックスcmbF_IDのレコードソースにMT_F_ID関連のクエリを組み込んで

    コンボボックスの「値集合ソース」プロパティにクエリ名を設定しているということでしょうか。
    (コンボボックスにレコードソースはない)

    原理的に考えて、コンボボックスの値集合ソースの設定で、排他エラーがでるとは考えにくいです。

    他にそのテーブルと連結しているテーブルとか、更新クエリを実行しているとか、別の処理で排他的に開いているとか、、、
    があるとしか思えません。

    提示されている情報からは、これ以上のアドバイスは無理です。

  • 9

    もし、本当にコンボボックスの「値集合ソース」プロパティにクエリを設定しない場合はエラーがでないのなら、
    「値集合タイプ」を「値リスト」に設定して、
    db.OpenRecordset(strSQL, dbOpenSnapshot) という感じでレコードセットを開いて、ループさせて AddItem でリストを追加すればどうでしょうか。