Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1253 / 2272 ツリー ←次へ | 前へ→

【8001】レコードの更新の許可 あおぎん 06/6/16(金) 14:16 質問[未読]
【8003】Re:レコードの更新の許可 Gin_II 06/6/16(金) 14:35 回答[未読]
【8004】Re:レコードの更新の許可 あおぎん 06/6/16(金) 15:29 お礼[未読]

【8001】レコードの更新の許可
質問  あおぎん  - 06/6/16(金) 14:16 -

引用なし
パスワード
   こんにちわ。いつも参考にさせていただいています。

顧客の住所等を管理するデータを入力するフォームAと、その売上を管理するデータを入力するフォームBがあります。売上データは、年度ごと・顧客ごとで管理しているので、フォームAからフォームBを開いた際、年度の数のレコードが表示されるのですが、古い年度の分を誤って更新してしまわないように、特定の年度のレコードを編集不可にしたいと思っています。
今のところ16、17、18年度分のデータしかないので、『年度が17以下だったら更新及び削除を許可しない』というコードをフォームを開くイベントに、次のように記入してみましたが、そうするとすべての年度のレコードが更新できなくなってしまいました。ヘルプ等で調べましたがよくわかりません。
解決方法もしくは解決のヒントでもご教示いただけるとうれしいです。

また、年度データは毎年増えていくので、そのたびごとに数字を書き替えなくていい方法がありましたら教えていただけると嬉しいです。

アクセス2000を使っています。
よろしくお願いいたします。

Private Sub Form_Open(Cancel As Integer)

If Me!年度 <= 17 Then
 Me.AllowDeletions = False
 Me.AllowEdits = False
 
 Else
 Me.AllowDeletions = True
 Me.AllowEdits = True
End If

End Sub

【8003】Re:レコードの更新の許可
回答  Gin_II  - 06/6/16(金) 14:35 -

引用なし
パスワード
   >今のところ16、17、18年度分のデータしかないので、『年度が17以下
>だったら更新及び削除を許可しない』というコードをフォームを開くイベントに、
>次のように記入してみましたが、そうするとすべての年度のレコードが更新でき
>なくなってしまいました。ヘルプ等で調べましたがよくわかりません。
>解決方法もしくは解決のヒントでもご教示いただけるとうれしいです。

条件付書式機能を使ってください。


>また、年度データは毎年増えていくので、そのたびごとに数字を書き替えなくて
>いい方法がありましたら教えていただけると嬉しいです。

どういった条件で?

例えば、テーブルに入力されている年度の最大値を取得して、その年度以外で
あれば、更新できないようにするのであれば、

条件付書式で、式を使って

DMax("フィールド名", "テーブル名")>[フィールド名]

のようにするとか。

【8004】Re:レコードの更新の許可
お礼  あおぎん  - 06/6/16(金) 15:29 -

引用なし
パスワード
   ▼Gin_II さん:


教えていただいた方法でできました。条件付書式でコントロールを無効にできると思ってなかったので・・。まだまだ勉強不足です。

条件も、おっしゃるとおり最大値以外の年度の更新不許可を考えていましたので、そのように設定したらできました。

ありがとうございました。

1253 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078228
(SS)C-BOARD v3.8 is Free