OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ACCESS2000で更新ボタンを押すと、更新履歴を取れるようにしたいのです。

  • すぐに回答を!
  • 質問No.171050
  • 閲覧数108
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 38% (15/39)

履歴を取るときに、今は更新したら、履歴を残すようにしているのですが、更新ボタンたるものを作成して、そのボタンを押したら、履歴をとるということはできますでしょうか?
現在、メイン(フォーム)の中には、タブを作成し、1つめには、担当者情報(サブフォーム)と重要人物情報(サブフォーム)。2つめのタブにはには、・・・。3つめのタブには、・・。とタブをたくさん作っています。
どなたか、ご教授ください。よろしくお願い申し上げます。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル10

ベストアンサー率 61% (75/121)

杉本です。

>、「変更」というボタンを押した時に(←ここが質問です)履歴を取る!
が目的であれば、更新ボタンをクリックしたときの処理に、履歴の処理を入れればいいのでは?

Private Sub 更新ボタン_Click()
History_a
'更新の処理を記述
End Sub
お礼コメント
cas-jp

お礼率 38% (15/39)

杉本様m(__)m本当にありがとうございました。
access初心者の私には少し難しく・・・(ーー;)
杉本様から教えて頂いたプロシージャーをもう少し勉強してみますm(__)m
投稿日時 - 2001-11-24 20:02:12
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 61% (75/121)

初めまして。杉本と申します。 ご質問の内容の、履歴を残したいだけの処理であれば以下の方法が有効です。 なお、的はずれな回答であれば、ご容赦ください。 履歴テーブルを作成する ID,担当者情報,重要人物情報,....,更新日 更新ボタンをクリックするときに以下の様なプロシジャーを実行する。 Sub 更新履歴() Dim DB As DAO.Database Dim StSQL A ...続きを読む
初めまして。杉本と申します。
ご質問の内容の、履歴を残したいだけの処理であれば以下の方法が有効です。
なお、的はずれな回答であれば、ご容赦ください。

履歴テーブルを作成する
ID,担当者情報,重要人物情報,....,更新日

更新ボタンをクリックするときに以下の様なプロシジャーを実行する。

Sub 更新履歴()
Dim DB As DAO.Database
Dim StSQL As String
Set DB = CurrentDB

'SQL文を作成する(一例)
StSQL = "insert into 履歴テーブル (担当者情報,重要人物情報,更新日) " _
& "values( " _
& "'" & Forms!更新フォーム名!担当者情報フィールド名 & "'," _
& "'" & Forms!更新フォーム名!重要人物情報フィールド名 & "'," _
& "#" & Date & "#)"

'SQL文を実行する
DB.Execute StSQL
Set DB = Noting
end sub

*注意
1.サブフォームや、タブコントロールの参照方法は、ヘルプを参照してください。
2."'"は数値型のフィールドを更新するときは必要ありません。
3.参照設定で"Microsoft DAO 3.6 Object Library"を有効にしてください。
補足コメント
cas-jp

お礼率 38% (15/39)

お返事ありがとうございます。
ごめんなさい。質問の出し方が悪かったです。m(__)m
実は、データの変更時(BeforeUpdateとAfterUpdateを使用)に履歴を取ることはできているのですが、それでは、入力を行った時の履歴は取れるのですが、プルダウンメニューから選択しただけの時には、変更が行われたという認識ができていないようで、履歴が取れないのです。なので、「変更」というボタンを押した時に(←ここが質問です)履歴を取る!ということがしたかったのです。できますでしょうか?
ちなみに、現在は以下のように書き込んでおります。(これも、教えてもらったものなのですが・・・^_^;)
もし、わかればで良いのですが、履歴を下記で取り出すと、メモ帳部分でリターンを返した後の部分は履歴が取れていませんでした。防ぐ方法はありますでしょうか?ご教授よろしくお願い申し上げます。
Sub History_a()

Dim Ctr As Control
Dim strSQL As String

For Each Ctr In Me.Controls
If Ctr.ControlType = 109 Then
If Ctr.OldValue <> Ctr.Value Then
strSQL = "insert into 履歴 select * FROM 担当者情報 " & _
"where 顧客コード = " & Me.顧客コード
DoCmd.SetWarnings False
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
Exit Sub
End If
End If
Next Ctr
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
History_a
End Sub

Private Sub Form_AfterUpdate()
Forms("メイン").Form.SF_履歴.Requery
End Sub
投稿日時 - 2001-11-21 15:40:56

このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ