- ベストアンサー
変更履歴テーブルの作成方法とフォームでのエラーについて
- 変更履歴テーブルの作成方法とフォームでのエラーについてアドバイスをお願いします。
- 変更履歴テーブルの作成方法とフォームでのエラーについて、アドバイスをお願いします。
- 変更履歴テーブルの作成方法とフォームでのエラーについて、アドバイスをお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
不思議とフォームの更新前ではエラーになるのに 各コントロールのイベントならエラーにならずに拾えるようです。 当方、Windows XP SP3 & Access 2002 SP3 環境 なので泥臭い方法ですが、 履歴を保存したい各コントロールの更新前処理にそれぞれ Dim ctr As Control Dim sqla As String On Error GoTo errHndl Set ctr = Screen.ActiveControl sqla = "insert into 履歴 values(" & _ Me.ID & ",'" & ctr.name & "','" & ctr.OldValue & "','" & ctr.Value & "',#" & Now() & "#)" CurrentDb.Execute sqla, dbFailOnError Set ctr = Nothing Exit Sub errHndl: Set ctr = Nothing MsgBox "Number= " & Err.Number & Err.Description & vbCrLf & _ "履歴登録に失敗しました" を入れれば動きます。多分(^_^;)
その他の回答 (2)
- nicotinism
- ベストアンサー率70% (1019/1452)
原因が分かり(Google)ました http://kure-ryusuke.blogspot.com/2008/12/access_17.html 1対多のクエリーを元にしたフォームだと発生しました。 回避策はあるのかな?
- nicotinism
- ベストアンサー率70% (1019/1452)
ん~ エラーが再現できない。 エラーで止まったときに、下行の ctr.Name にマウスを持ってゆくか Ctrl + G を押してイミディエイトウィンドウ内で ?ctr.name で エンターキー コントロールの名前が現れますのでフォームに戻って そのコントロールを詳しく調べれば解決に繋がると思います。 あと同じくイミディエイトウィンドウで ?ctr.oldValue ?ctr.value の結果も分かるかと思いますので以上3点どうなってますか? PS. Access のバージョンも教えてください。
お礼
遅くなり、大変失礼しました。 私用で休んでおりました。 早速試してみました。 無事変更履歴へ入っていました。 一対多のリレーションを組んでいるとだめなんですね。履歴に残すデータは全て多側でした。 まだ、未開のコードでかかれているので、勉強してコードの中身を理解したいと思います。 どうもありがとうございました。