• 締切済み

Access2010 音 鳴らす

Access2010 で質問です。  PC環境:windows 7 テーブル  :A フィールド名:B(格納されるデータは日付形式) ・AのBに日付情報が入れば、警告音が鳴る。 これを実現できるソースをお教えいただきたいです。 ほぼ初心者の為、モジュールでの表現になるか、 テーブルでの表現になるか詳しく記入いただければ非常に助かります。 よろしくお願いします。

みんなの回答

回答No.2

> 日付情報が入れば、警告音が鳴る。 とのことですが、逆に「入力されるのはどのタイミングでどこから」でしょうか。 テーブルやクエリに直接入力しに行くのであれば、 「日付(っポイ)データが入力されたら音」は難しいです。 定型入力を使って「定型以外のデータが入力されそうになったら警告」するのが吉です。 フォームを使って入力するなら、マクロやVBA(モジュール)も使えます。 ただし、テーブルやクエリに連結したフォームだと、テーブルの定義を優先しますので、 やはり「日付以外だと音」の実装しか難しいところです。 そうなると、 非連結のフォームを作って、登録するクエリなりマクロなりを組む。 そのテキストボックスに「日付なら警告音を鳴らすマクロ/モジュール」を仕込む。 というのが求める正解に近いのかもしれません。 非連結のフォームに関しては本題から外れますので割愛。悪しからずご容赦ください。 入力フォームを[F_Beep]、フォーム内のテキストボックスの名前を[Column_A]として マクロであれば If IsDate([Forms].[F_BEEP].[Column_A])=True Then     警告音 If文の最後 というマクロを作り、テキストボックスの更新前処理に仕込みます。 モジュールを組むのであれば Function M_Beep()     If IsDate([Forms].[F_BEEP].[Column_A]) = True Then         Beep         ' MsgBox "日付です", vbInformation, "日付"     End If End Function くらいで組んで、やはりテキストボックスの更新前処理に仕込んでやります。 ※MsgBox~~の行はオマケです。 なお、ここでいう「音」はWindowsの標準警告音です。 それ以外の音・・となると、もう少し(そこそこ)複雑です。 はてさて、参考になりますかどうか。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

エクセルの日付の実態がシリアルナンバー(自然数)であることはご存知ですね アクセスも同様のようですので、日付の判定は困難です。 カーソルが日付項目が移動したときにフィールドの右端にカレンダー入力が現れますが… テーブルのデザインビューでフィールドを定型入力に定義して入力形式を強制すると 形式に合わないときに警告音が鳴り次へ進めません。 流れは添付を参考にしてください。

関連するQ&A

  • Access2003で

    Access2003で AテーブルとBテーブルがあります。 両テーブルにも、NOフィールドがあります。 両テーブルとも1からの数字を付与しています。 NOフィールドの他に名称などのフィールドがあります。 ここでお聞きしたいのですが、BテーブルのNOフィールドの2のレコードを、 AテーブルのNOフィールドの2のレコードに上書きしたいのですが、どうすれば良いでしょうか? ちなみにBテーブルには上書きしたいレコード(この例でいきますとフィールド2)だけが格納されています。 どうすれば良いでしょうか? よろしくお願いします。

  • Access2013で翌日のデータのみのクエリ

    お世話になります。 Access2013を使用しており、2つの日付フィールドを比較して 翌日のレコードのみ抜き出したい場合のクエリについて質問で ございます。 日付Aフィールド と 日付Bフィールドが あり、それぞれ日付と時刻が書式yyyy/mm/dd hhmmss で格納されております。 このうち、クエリで抽出したいのは、 日付Bフィールドに格納されている、 日付Aフィールドの翌日のレコードのみを 抽出したいです。 その際、時刻(hhmmss)は無視して翌日のレコードを 抽出したいです。 例えば、 日付Aフィールドに 2016/08/24 15:00:00 2016/08/24 16:00:00 2016/08/24 17:00:00 というデータが格納されていて、 日付Bフィールドに 2016/08/25 00:00:00 2016/08/25 17:00:00 2016/08/26 00:00:00 というデータが格納されていた場合、 日付Bフィールドの 2016/08/25 00:00:00 2016/08/25 17:00:00 のみ抽出したいです。 この場合のクエリの設定方法を教えてください。 どうぞ宜しくお願いいたします。

  • accessで重複を排除してデータ追加したい

    access2000使っています。 EXCELからリンクしたテーブルAのデータをテーブルB追加しています。テーブルBには累計というか履歴のようにデータを蓄積させています。 今は追加クエリでA→Bにデータ入れていますが、どうしても重複するものがあると警告メッセージが出てしまいます。フィールドは、日付*、コード*、金額、で*のものをキーにしています。 警告メッセージを出さず追加する方法、もしくは現在Bにある日付移行のものだけ追加する方法はないでしょうか?

  • ACCESSにおいてコントロールソースのフィールド値に関数を適用するには?

    フォームに表形式のフィールドを表示しています。 フィールドのコントロールソースへテーブルのフィールド値を設定しています。 ここに関数を適用する方法を教えてください。 例えば、aテーブルにbというフィールドあったときフォームにright(b,10)の状態で表示させたいです。 環境はACCESS2000です。 宜しくお願い致します。

  • ACCESS テーブル内の特定の文字の置換

    お世話になっております。 Access2007+VBAについてになります。 フィールド内の特定の文字を置き換えたいのですが、どのようしたら良いでしょうか。 例えば・・・ テーブル_Aと、テーブルBがあります。 テーブルAには、フィールドCに抽出したいデータのIDが入っています。 テーブルBには、フィールドDに置換えたい日付が入っています。 フィールドDの日付は、『日付は2015-12-22です。』となっており、 フィールドCのIDと、テーブルBにあるフィールドEというIDがマッチしたフィールドDの日付を、『日付は、2015-12-23です。』に置き換えたいと思っています。 IDは、両方ともに、オートナンバー型ではありません。 色々試してみたのですが、全く分かりません。 是非、ご教授をお願い致します。

  • Access Dcount で抽出条件複数の場合

    教えてください。Access2000です。 テーブルAでフィールド1の値が「1」でフィールド2の値が「Cを含む全て」としたいのですがどうしたら良いですか? テキストボックスのコントロールソースに記入します。 DCount("*","[テーブルA],"[テーブルA]![フィールド1]=1 and [テーブル1]![フィールド2]='*C*'") よろしくお願いします。

  • ACCESSクエリでの結合の仕方

    ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。

  • アクセスでデータを足すには、また、引くには?

    アクセスを使用していて、テーブルAにあるデータに、テーブルBにあるデータを足したいと思っています。 それぞれデータは”名前”のようなフィールドで、ひとつにまとめたいのですがクエリーでの表現が分かりません。SQLビューのようなやり方でも構いませんので、是非お願い致します。 また、もう一つですが、テーブルAにあるデータに、テーブルBにあるデータを引きたい思っています。こちらも”名前”のようなフィールドで、同じレコードは省きたいと思っております。 よろしくお願い致します。

  • Accessについて

    Access2003を使っています。 商品情報フォームに入力されたデータをAのテーブルには情報を新規フィールドで追加、 Bのテーブルへは、テーブルに商品番号をもとに入力した日の日付だけ追加したいのですが、 Aには問題なく入り、Bには反映されません。 初心者ですみませんがどうしたら動くのか教えて頂きたいです。 よろしくお願いいたします。

  • ACCESSの結合

    よろしくお願いします。 ACCESS2000で、AテーブルのA'フィールドとBテーブルのB’フィールドを結合させ、同一でないものを表示させる(クエリーで)方法を教えてください。 よろしく、お願いいたします。

専門家に質問してみよう