プロが教えるわが家の防犯対策術!

アクセスのフォーム上でそのレコードを印刷する前は「検査中」と表示し、印刷をすると「報告済み」と表示するにはどのような方法がありますか?できれば、一度訂正を加えると、また「検査中」の表示に戻したいのですが。3から4日かかる検査の状態を他のPCでいつでも閲覧できるようになっています。(また入力も可能になっています。)最悪は、自分でその都度「検査中」か「報告済み」かを選択するかですよね。できれば他の人も使うので自動で設定できればと考えています。どなたかよろしくお願いいたします。

A 回答 (2件)

tab1:



ID__報告済__field_1
1________1__A
2________1__B
3________0__C

このようなテーブルを仮定します。

ID__報告済____field_1
1___報告済み__A
2___報告済み__B
3___検査中____C

このように表示するには、

印刷済.値集合タイプ=値リスト
印刷済.値集合ソース=0;検査中;1;報告済み
印刷済.連結列=1
印刷済.列数=2
印刷済.列幅=0cm;2cm

と<ルックアップ>を設定します。

フォームtab1:

Private Sub Form_BeforeUpdate(Cancel As Integer)
  If Me.報告済 Then
    Me.報告済 = 0
  End If
End Sub

Private Sub コマンド_印刷確認_Click()
On Error Resume Next
  DoCmd.OpenReport "tab1", acPreview, , "ID=" & Me.ID
  If Not Me.報告済 Then
    Me.報告済 = 1
  End If
End Sub

ここでは、列[報告済]の型は、整数ないしバイト型を想定しています。
Yes/No型を使うかどうかは、まあ、趣味の問題です。

なお、フォームの列[報告済]は<TabStop=False>にしておいたがいいですね。
    • good
    • 0

案)


印刷フラグ(仮)
データ型に「Yes/No型」を選ぶ
「Yes」なら「検査中」、「No」なら「報告済み」と表示
印刷対象として抽出したら「Yes(1)」に更新

簡単に言うとこんな感じでどうですか。
    • good
    • 0

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