ここから本文です

「access vba 文字の部分のみ、重複する場合はエラーを出したい」 学習塾にて、...

mar********さん

2020/1/1615:58:33

「access vba 文字の部分のみ、重複する場合はエラーを出したい」

学習塾にて、前任の方が作成したaccessデータベースを使っています。
以下のようなレコードが、生徒数分あります。


中1 ふくろ知恵(生徒氏名)

国語 あ1

数学 う2
英語 お4
理科 し3
社会 い2
国語補習 か3
数学補習 つ5
英語補習 さ2
理科補習 け3
社会補習 そ1


あ1、い2、という書き方については、文字の部分(あいうえお…)が受講時間を表し、数字の部分(1234…)は教室名を表しています。
他のExcelシートとつながっており、この部分を、文字と数字で別々のフィールドに分けることはできません。

問題は、入力時に、文字の部分(あいうえお…)が重複するものがあることに気づかずに登録してしまって(例えば、あ1、あ3が両方ある状態、これでは受講時間が重なり、生徒が受けられないのでダメ)


講師に指摘されるまで気づかないということが、ごく稀にですが発生してしまうことです。
単純な確認不足ではありますが、VBAなどを使って、
文字(あいうえお…)の部分が重複するものがある場合にはエラーを出すようにできないでしょうか。


accessも知恵袋も初心者です。長々とすみませんが先輩方、お知恵をお貸しいただけませんでしょうか。どうぞよろしくお願いいたします。

閲覧数:
19
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ony********さん

2020/1/1709:01:39

登録前に、テーブルに対象の生徒氏名で、同じ受講時間に登録されたレコードがあるかカウントし、1件でもあれば登録済みのメッセージを表示し、登録を中断する必要があります。

判定文は下記のようになると思いますが、テーブル名、フィールド名、登録ボタンの有無など不明なので、適当に書いています。

If DCount("*","テーブル名","生徒氏名='" & Me![フォーム上の生徒氏名] & "' AND 受講クラス Like '" & Left(Me![入力した受講クラス] & "*'") > 0 Then
Mgbox "すでにこの時間は登録されています"
End if

  • 質問者

    mar********さん

    2020/1/1711:25:51

    早速ご回答いただきありがとうございます。
    登録ボタンを作ってやってみたいと思います。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる