ACCESS2000で住所録を作っています。
(VBAを少しだけ触ったことのある初心者です。)
複数の人間が触るので変更した箇所が分るように
最終変更日時のフィールドを作りデータが変更される都度
日時が更新されるようにしたいと思っています。
タイムスタンプを設定する方法があると聞いた事があるのですが、
具体的にはどうすればよいのでしょうか?
又、wordやexcelのように変更履歴を表示するシステムはあるのでしょうか?
どうか宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

 まず最初に...


 もしAccessをネットワーク上に置いて共有して複数の人が、更新する様なシステムなら、何かミドルウェアの構築を考えた方が良いでしょう。いずれ破綻します。

 それで質問の件。
 データの入力を、専用のフォームを作成して、行っているのなら、データ挿入時/変更時に、その最終変更日時フィールドに、『now』関数で取って来た日時データを入れてあげれば出来ます。

 テーブルを直接変更している時には、ちょっと難しいですね。使用している人に、操作をして貰う必要が出て来ます。自動では出来ません。

この回答への補足

ご回答ありがとうございました。(お礼が遅くなり申し訳有りません。)
今、住所録入力用というフォームを作り、そこから入力してもらう形に
しています。更新日時というフィールドも作ったのですが、now関数は
どこにいれればいいのでしょうか?
フォームのプロパティの更新後処理の欄に、
「更新日時フィールドにnow間数の値を入れる」というコードを入れるのでしょうか?(コードの入れ方もよくわからないのですが・・・)
検討違いの質問をしているのかもしれませんが、宜しくお願いします。

補足日時:2001/01/15 09:54
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアクセスで複数フィールドを結合して1フィールドを作る際

こんにちは。
OSはWIN2KでAccess2000を使用しております。
「T_データ」テーブルには、
社員コード(数値型)、社員名(テキスト型)、
給料(数値型)、住所(テキスト型)フィールドがあります。
この4つのフィールドを以下の条件を満たしつつ
「T_結合」テーブルの「結合データ」フィールドという
一つのフィールド(テキスト型)に追加したいのです。
------------------------------------------------
1.社員コードは 5桁、社員名は半角30桁、
給料は10桁、住所は全角20桁。
2.社員コード、給料は右詰とし残りは0で、
社員名、住所は左詰とし、残りは空白("")で埋める。
-------------------------------------------------
最終的に「T_結合」テーブルを1レコード85バイトの
レコードとしてエクスポートするのが目標です。
アクセスはUnicodeで管理されているというので単純には
いかなそうなので、どなたかご教授願います。

こんにちは。
OSはWIN2KでAccess2000を使用しております。
「T_データ」テーブルには、
社員コード(数値型)、社員名(テキスト型)、
給料(数値型)、住所(テキスト型)フィールドがあります。
この4つのフィールドを以下の条件を満たしつつ
「T_結合」テーブルの「結合データ」フィールドという
一つのフィールド(テキスト型)に追加したいのです。
------------------------------------------------
1.社員コードは 5桁、社員名は半角30桁、
給料は10桁、住所は全角20桁。
2.社員コード、給料は右詰と...続きを読む

Aベストアンサー

Format([社員コード],"00000")
& Left([社員名] & Space(30),30)
& Format([給料],"0000000000")
& Left(StrConv([住所] & Space(20),4),20)

こんな感じでどうでしょうか?

QACCESSでデータ変更箇所が分かるようにする方法

ACCESS初心者です。
顧客住所録管理をしていて、フォームで既存レコードのどこかのフィールドを変更したら、”変更日時”のフィールドに日時が入るように指定しました。
(全てのフィールドのプロパティ更新後処理に
          Me![更新日時].Value = Now()     と設定。)
変更日時で抽出をかければ特定の日以後に変更のあったデータを抽出してくれるの
ですが、どのフィールドが変更になったかは分かりません。
そこで、変更があったフィールドに色をつけるということはできないものかと考えました。
フォームの条件付書式で条件が真のときに色を塗るっていうのがありましたよね。
あんな感じのことがしたいのですが・・・。
各フィールドの更新後処理になにかVBAを付け加えればいいのでしょうか?
初心者なもので質問が的を得ていないのかもしれませんが、どなたかご教授頂ける方、よろしくお願いします。

Aベストアンサー

単票フォームの場合ですが
各フィールドの更新後イベントで
フィールド名.OldValueプロパティで変更前の値を取得できます。これと現在の値を比較して異なっていればフィールド名.BackColorで背景色を変更するっていうのはどうでしょう?

帳票フォームの場合は使えませんが。

Q以前作った画像ファイルが開けません。ウインドーズのマークのようなファイルにいつのまにか変更されている。どうして?

以前作った画像ファイルが開けません。ウインドーズのマークのようなファイルにいつのまにか変更されている。どうしてでしょう。これを開こうとすると、「開くアプリケーションを選択してください。」というダイヤログボックスが出てきて、アクロバットリーダーとかで開いてみましたが、開きません。以前フオトショップで画像処理していた時とウインドーズが競合しています。という注意が一度出てきたのですが、処理の仕方がわからずそのままにしています。多分これかと思うのですが、競合しないようにするにはどうしたらよいのでしょう。お願いします。
ウインドーズ2000

Aベストアンサー

.BAKはBACKUPファイルです。様々なアプリケーションで、一つ前の状態を保持しています。よって画像ファイルでは有りませんので開けなくて当然でしょう。そのバックアップを作成するアプリケーションからでないと使用できないファイルです。通常はその.BAKが存在するディレクトリから何のバックアップか想像できると思うのですが。

.LAYはレイアウトファイル。これも画像ファイルではありません。
DVLayout.LAYと言うことは、DVなどの名前のアプリケーションをインストールしたことは無いでしょうか?
例えばデジタル・ビデオ・なんとか、など。
そのアプリケーションの画面のレイアウトなどの情報を保持しています。

.CONは解りませんが、恐らくConfigurationファイルだと思います。つまり、構成ファイル。
上記と同様画像ファイルではなく、何かのアプリケーションの何かの構成を保持しているのでしょう。

3つとも、そのファイルがある場所から、エクスプローラーで上にたどると、どのアプリケーションのデータか想像できると思うのですが。

尚、それらはアプリケーションとの関連付けは無くて正解です。そのままにしておいた方が無難でしょう。

参考URLに各種拡張子の説明がされているHPを紹介しておきますのでご参考に。

参考URL:http://www.jisyo.com/viewer/

.BAKはBACKUPファイルです。様々なアプリケーションで、一つ前の状態を保持しています。よって画像ファイルでは有りませんので開けなくて当然でしょう。そのバックアップを作成するアプリケーションからでないと使用できないファイルです。通常はその.BAKが存在するディレクトリから何のバックアップか想像できると思うのですが。

.LAYはレイアウトファイル。これも画像ファイルではありません。
DVLayout.LAYと言うことは、DVなどの名前のアプリケーションをインストールしたことは無いでしょうか?
例えば...続きを読む

Qaccess 複数フィールドを1フィールドに

Access勉強中です。

委員名簿テーブルと、いくつかの行事テーブルを結合したいのですが、上手くいきません。
どうか教えてください。
access2003です。

委員名簿テーブル
 クラス   生徒名1   生徒名2   生徒名3
 1-1     ああ     いい   
 1-2     かか     きき      くく
 1-3     ささ
 1-4     たた     ちち      つつ

行事Aテーブル          行事Bテーブル
 生徒名   参加          生徒名    参加
  かか    true           ああ     false     
  ささ     true           いい     true         
  ちち    false           きき     true
                      たた     true
                      ちち     true

 このようなテーブルを結合して、次のようなテーブルを作りたいのです。

 クラス  生徒名   行事A    行事B
 1-1   ああ            false
 1-1   いい            true
 1-2   かか    true
 1-2   きき            true
 1-2   くく
 1-3   ささ     true
 1-4   たた            true
 1-4   ちち    false     true
 1-5   つつ

よろしくお願いします。

Access勉強中です。

委員名簿テーブルと、いくつかの行事テーブルを結合したいのですが、上手くいきません。
どうか教えてください。
access2003です。

委員名簿テーブル
 クラス   生徒名1   生徒名2   生徒名3
 1-1     ああ     いい   
 1-2     かか     きき      くく
 1-3     ささ
 1-4     たた     ちち      つつ

行事Aテーブル          行事Bテーブル
 生徒名   参加         ...続きを読む

Aベストアンサー

一応、質問の範囲での回答とします。

たとえば、以下のような「委員会名簿テーブル」があるとします。
フィールドの生徒名は生徒名6でも、生徒名100でもフィールドが
設定できるまでかまいません。

クラス 生徒名1 生徒名2 生徒名3 生徒名4 生徒名5
1-1   田中  佐藤   西田  山崎   内藤
1-2   東   南田   中川
1-3   豊臣  田中   中田  今井
1-4   谷   道上
1-5   徳川  佐竹   佐藤  西岡   中川


これを以下のようなテーブルに簡単に変更できますか?
また、下記では質問の最終的な結果を得るには下記の
ように「生徒ID」という各生徒を一意に区別するフィールドが
必要になります。これは最後に作るクエリで必要であるということと、
同じクラスあるいは他のクラスに同じ苗字の人物が存在する可能性が
あるかもしれないからです。


生徒ID クラス 生徒名
1        1-1  佐藤
2        1-1  西田
3        1-1  山崎
4        1-1  内藤
5        1-2  南田
6        1-2  中川
7        1-3田中
8        1-3  中田
9        1-3  今井
10        1-4  道上
11        1-5  佐竹
12        1-5  佐藤
13        1-5  西岡
14        1-5  中川


もし、データが多くて大変だというのであれば、以下のようにしてみてください。

(1) 以下のようなテーブルを作ります。
生徒ID  数値型  主キーを設定します。
クラス  テキスト型
生徒名  テキスト型

テーブルの名前を「委員会名簿テーブル」とします。
元の「委員名簿テーブル」を「委員会名簿テーブル元」
とします。

(2) 次に分かりやすく実行できるようにするために、
フォームを作り、そこにボタンを一つ設定します。
ボタンのクリック時のイベントに以下を設定します。
なお、ボタンの名前は出来上がったボタンの名前の
ままでいいです。

Private Sub コマンド0_Click()
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim i As Integer
Dim j As Long

Set db = CurrentDb
Set rs1 = db.OpenRecordset("委員会名簿テーブル元")
Set rs2 = db.OpenRecordset("委員会名簿テーブル", dbOpenDynaset)

j = 1
rs1.MoveFirst
Do Until rs1.EOF
For i = 2 To rs1.Fields.Count - 1
If rs1.Fields(i) <> "" Then
rs2.AddNew
rs2!生徒ID = j
rs2!クラス = rs1!クラス
rs2!生徒名 = rs1.Fields(i).Value
rs2.Update
j = j + 1
End If
Next i
rs1.MoveNext
Loop

rs1.Close: Set rs1 = Nothing
rs2.Close: Set rs2 = Nothing
db.Close: Set db = Nothing
End Sub

次に、コード表のコマンドバーのツールから
参照設定を選択し、Microsoft DAO xx Object Library の項目に
チェックを入れ、OKとします。なお、xx は3.6のような数字です。

(3) (1)、(2)ができたら、ボタンを押して「委員会名簿テーブル」
を確認してみてください。


(4) 次に、「行事Aテーブル」と「行事Bテーブル」
数値型の「生徒ID」というフィールドを追加し、できた「委員会名簿テーブル」
を参照して「クラス」と「生徒名」に合致した「生徒」を入れていってください。
本来は「生徒ID」があれば「生徒名」はこれらのテーブルでは必要はないのですが。
これらのテーブルの「生徒ID」は主キーを設定しません。


たとえば以下のように。

行事Aテーブル
生徒ID 生徒名 参加
1   佐藤    True
3   山崎    True
6   中川    True

行事Bテーブル
生徒ID 生徒名 参加
1    佐藤   False
6    中川   True
13    佐藤   True
14    中川   True


(5) 最後にクエリを作成します。下記のSQL文を新しいクエリを
SQLビューにして、貼り付けます。

SELECT 委員会名簿テーブル.生徒ID, 委員会名簿テーブル.クラス, 委員会名簿テーブル.生徒名, 行事Aテーブル.参加, 行事Bテーブル.参加
FROM (委員会名簿テーブル LEFT JOIN 行事Aテーブル ON 委員会名簿テーブル.生徒ID = 行事Aテーブル.生徒ID) LEFT JOIN 行事Bテーブル ON 委員会名簿テーブル.生徒ID = 行事Bテーブル.生徒ID;


あるいは、以下のようにしてもいいですが、こちらはフィールド名を変更しています。
変更は手動で書き変える必要があります。

SELECT 委員会名簿テーブル.生徒ID, 委員会名簿テーブル.クラス, 委員会名簿テーブル.生徒名, 行事Aテーブル.参加, 行事Bテーブル.参加
FROM (委員会名簿テーブル LEFT JOIN 行事Aテーブル ON 委員会名簿テーブル.生徒ID = 行事Aテーブル.生徒ID) LEFT JOIN 行事Bテーブル ON 委員会名簿テーブル.生徒ID = 行事Bテーブル.生徒ID;

上記のクエリをデザインビューで確認すると、「委員会名簿テーブル」
から「行事Aテーブル」と「行事Bテーブル」に結合線が向かっている
ことに注目してください。行事テーブルが追加されるような場合は
結合線の設定を同じようにしてください。

以上です。
わからないところがあれば補足してください。

一応、質問の範囲での回答とします。

たとえば、以下のような「委員会名簿テーブル」があるとします。
フィールドの生徒名は生徒名6でも、生徒名100でもフィールドが
設定できるまでかまいません。

クラス 生徒名1 生徒名2 生徒名3 生徒名4 生徒名5
1-1   田中  佐藤   西田  山崎   内藤
1-2   東   南田   中川
1-3   豊臣  田中   中田  今井
1-4   谷   道上
1-5   徳川  佐竹   佐藤  西岡   中川


これを以下のようなテーブルに簡単に変更でき...続きを読む

Qaccessリレーションシップ 1つのフィールド対2つのフィールド

困っているので質問します。
テーブルAのフィールドをテーブルBのフィールドとリレーションシップを結ぶ時、テーブルAの1つのフィールドをテーブルBの2つのフィールドにリレーションシップを張ろうとするとできません。

例)テーブルA=元号テーブル
        元号テーブルには元号CDと元号の2つのフィールドがあります。
  テーブルB=管理テーブル

管理テーブルには作成年月日と更新年月日という2つのフィールドがあって、それぞれに元号テーブルにある元号というフィールドを元号CDを使って引っ張ってきたいのです。

どのようにすればよいのか教えてください。

Aベストアンサー

リレーションシップを結びたいフィールドの数だけ
テーブルの追加が必要です。

今回の場合は作成年月日と更新年月日なので、
もうひとつテーブルBを追加してください。

クエリのデザインビューにて
右クリック→テーブルの表示、で追加できます。


このカテゴリの人気Q&Aランキング

おすすめ情報