こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセスデータ更新後、保存するとエラーがでる

サブフォームでデータ更新を行い、保存ボタンを押しメイン画面に戻り次の動作(なんでも)をすると添付ファイルのエラーメッセージが出てきてデータが更新されない。
VBAで何とかしたいのですが、ご助言の程、宜しくお願い致します。

投稿日時 - 2015-04-03 10:38:46

QNo.8948268

すぐに回答ほしいです

質問者が選んだベストアンサー

No2です。メインフォームが開かれているならば
メインフォームのデータ更新をするというように
変更しておきます。


Private Sub 保存_Click()
MsgBox "データを確定保存します"
DoCmd.RunCommand acCmdSaveRecord
If Not SysCmd(acSysCmdGetObjectState, acForm, "メインフォーム名") = 0 Then
'MsgBox "メインフォームの画面を更新します"
With Forms!メインフォーム名
.Refresh
End With
End If
End Sub


もし、親フォームが閉じているならば開き直せば
当然ながらデータが更新された状態で開くことに
なります。
なお、
MsgBox "メインフォームの画面を更新します"
はコメントアウトしています。必要ならば
はずしてみてください。

投稿日時 - 2015-04-03 14:13:24

お礼

いつもいつも、ありがとうございます。まるで目の前で見ているような錯覚に陥りそうなぐらい完璧なものを提供いただき、本当にありがとうございます。

投稿日時 - 2015-04-06 11:04:45

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

前のスレッドの補足の続きになりますでしょうか?

サブフォームで編集の対象にしたデータが
親フォームにも存在し、サブフォームで
編集後に親フォームにはその編集後の
データが反映されていないために、

>メイン画面に戻り次の動作(なんでも)をする

によって、質問のエラーがでたのだろう、と思います。
したがって、

親フォームを閉じない状態で、
1 サブフォームを閉じて親フォームに戻り、作業にとりかかる
2 サブフォームを閉じずに親フォームの作業にとりかかる

によって、の違いはありますが、一番簡単なのはサブフォームの
保存ボタンを押すときについでに親フォームの表示データも
更新しておけば、

>サブフォームでデータ更新を行い、保存ボタンを押し
>メイン画面に戻り次の動作(なんでも)をする

という動作でエラーは出なくなります。そこで、


Private Sub 保存_Click()
MsgBox "データを確定保存します"
DoCmd.RunCommand acCmdSaveRecord
With Forms!メインフォーム名
.Refresh
End With
End Sub

のように、しておきます。

投稿日時 - 2015-04-03 12:35:48

お礼

またもやお助けいただいてありがとうございます。これからは色々なバグを潰していく作業を行っていくつもりです。また質問するかも知れませんが、宜しくお願い致します。
本当にありがとうございます。。

投稿日時 - 2015-04-03 14:49:12

ANo.1

>アクセスデータ更新後、保存するとエラーがでる。
>VBAで何とかしたいのですが・・・

それ以前にエラーが表示される原因を追放すべきです。

・サブフォームでデータ更新を行い、
 ↓
・保存ボタンを押しメイン画面に戻り・・・

ここで、競合が発生していると思いますよ。

投稿日時 - 2015-04-03 10:56:14

あなたにオススメの質問