• ベストアンサー
  • すぐに回答を!

Access2000でフォーム上のテキストボックスで計算はできるのでしょうか?

Access2000のフォーム上に「生年月日」と「現在年齢」というテキストボックスがあります。 「現在年齢」というテキストボックス内で、関数を使用して(日付関数だと思うんですが)今、何歳かという表示をしたいのですが、できるのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数202
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • k_eba
  • ベストアンサー率39% (813/2055)

生年月日のイベントで イベントプロシージャを選択し Me![現在年齢] = Year(Me![処理日] - Me![生年月日]) - 1900 で実現します がんばって下さい。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

早々のご指導有難うございます。 ちなみに、教えていただきたいのですが、[処理日]に自動的にマシンデートを入れる方法ってあります?

関連するQ&A

  • ACCESS2000のフォーム

    お願い致します。 ACCESS2000のフォームを開いた時に、一番初めに入力させたいテキストボックスに、自動的にカーソルを持っていく方法を教えてください。 すみませんが、お願い致します。

  • カレンダについて(Access2000)

    WindowsXP SP2, Access2000, Visual Basic6.5で開発しております。 Accessのフォームに複数のテキストボックスがあり、テキストボックスをクリックしたらフォームにMSCAL.Calendar.7を張り付けたをカレンダーサブウィンドウを表示して日付入力できるようにしたいです。 そこで、下記の点がうまくできなくて困っているのでご教授ください。 ・カレンダーの表示時、どのテキストボックスから呼ばれたか判別できない。(カレンダーにうまくテキストボックスオブジェクトを渡せない) ・カレンダーの表示時、呼び出し元のテキストボックスに日付が入力されていた場合はその日付をデフォルト表示したい。

  • Access2000のinsert文

    Access2000を使用しています。 ウィザードを使用しない方法を教えてください。 フォームにいくつかのテキストボックスの項目があります。 入力したあと、ボタンを押したときに、 テーブルへ挿入される方法を教えてください。 テーブルとフォームに存在する項目名 ・番号 ・氏名 ・生年月日 です。

その他の回答 (4)

  • 回答No.5
  • k_eba
  • ベストアンサー率39% (813/2055)

フォームを開いた時は、まだレコードも読んでいないし 当然フォームに値がセットされていない為に エラーになると思います。 フォーカス取得時は、レコードを読んでフォームに値がセットされ 入力可になる前なのでokになると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございました。 ようやく、意味と動きがわかってきました。 がんばってみます。

  • 回答No.4
  • k_eba
  • ベストアンサー率39% (813/2055)

>フォーム → ビューモード → "現在年齢"のプロパティ →みつけられません。  フォーム → ビューモード →  アクセスのフォームの画面の左上に小さな■が有るところで  右クリック→プロパティ→イベントで表示されませんか?  でフォームのイベント一覧が表示されます。 がんばって下さい。 尚次回の補足の回答は、明日になります。オヤスミナサイ。  

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございました。 無事みつかりました。しかし問題が....。 Private Sub Form_Open(Cancel As Integer) Me![現在年齢] = Year(Me![年齢基準日] - Me![生年月日]) - 1900 End Sub というコードを組んだのですが、フォームを開くと"ここに数値の代入はできません"というメッセージがでて代入できませんでした。 ちなみに"フォーカス取得時"(Enter)にするとできるんですけど。

  • 回答No.3
  • k_eba
  • ベストアンサー率39% (813/2055)

再再度登場  フォームのプロパティのイベントで開く時の所に  イベントプロシージャーの所で式を入力すれば  okです がんばって下さい。    

共感・感謝の気持ちを伝えよう!

質問者からの補足

早速の回答ありがとうございます。 実は、私もイベントに"Open"という種類があるというのは知っていたのですが、 イベントで見つけることができなかったのです。 フォーム → ビューモード → "現在年齢"のプロパティ →→→みつけられません。 フォーム → ビューモード →"現在年齢"を右クリック → イベントのビルド → コードビルダ →→→更新前処理になってしまいます。 どうしたらよいでしょう?

  • 回答No.2
  • k_eba
  • ベストアンサー率39% (813/2055)

>[処理日]に自動的にマシンデートを入れる方法ってあります?  Me![現在年齢] = Year(Date() - Me![生年月日]) - 1900 でいかがですか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

追加の質問に早速ご回答いただきありがとうございます。 がんばってチャレンジしてみます。

質問者からの補足

いろいろと、ご指導ありがとうございました。結局、下記の記述でできました。 Private Sub 本日_Enter() Me![本日] = (Date) End Sub Private Sub 現在年齢_Enter() Me![現在年齢] = Year(Me![本日] - Me![生年月日]) - 1900 End Sub ところで、関連した質問をしたいのですが、[年齢基準日](固定の日付)と[生年月日]を使って、フォームが開いたときに[年齢]を表示したいのですが、できますでしょうか?

関連するQ&A

  • Access2000 フォームで計算したものをテーブルに反映するには?

    上司に頼まれ、Access2000で従業員データを作成しました。 そこで、フォームにおいて年齢を計算するために 「生年月日」を入力する欄と、「年齢」を表示する欄を作成して コントロールソースにも入れて、うまく表示できたのですが、 その年齢の数字が、テーブルやクエリで見ると表示されていません。 他の何かのデータを見た時にはできていたはず。。。 表示する為の手順が足りないのでしょうが、初心者ゆえにまったくしてわかりません、教えて下さい。 どうかよろしくお願いいたします。

  • Access2000で、あるフォームを開いた後でないと見れないフォームがあります。

    Access2000を用いたフォームの整備を行っています。 Aフォーム(ID番号や会社名などの必須項目を入力する) Bフォーム(詳細を見るためのフォーム) Cフォーム(支払金額を入力するフォーム) BとCでは、Aで入力したID番号や会社名などが自動的に表示されます。 しかし、Aで入力を行った後、先にBを開くと、 全てのテキストボックスがからっぽのまま表示されてしまいます。 先にCを開いてからBを開くと、ちゃんと表示されます。 この場合、Cは開きっぱなしで閉じなくても大丈夫です。 Cフォームで何かを入力するわけでも無いのに、 どうしてCを開いた後でなければ表示されないのか判りません。 この場合、どういった可能性が考えられるでしょうか? 初心者ですので、見当違いの方向ばかり考えているかもしれません。 「これだけの説明じゃ判らないから、もっとここら辺を詳しく」 という指摘などをして戴けると本当に幸いです。 宜しくお願い致します。

  • ACCESS2000 テキストボックス

    ACCESS2000でフォームにあるテキストボックスの入力規則に次の条件を書きました。   "1" OR "2" OR " " → 最後は半角スペース 1、2、半角スペース以外は入力できないようにしたいのですが、 半角スペースを入力してもエラーが表示されます。 色々、試しましたが、半角スペースはnullと判別されているような???? 1、2、半角スペースのみ入力可能にするにはどうすればよいでしょうか?

  • Access2000 フォーム 条件付き書式

    Access2000 フォームのテキストボックスにて 使用可能:いいえ、編集ロック:はい とし、値によって条件付き書式で文字を赤にする。 以上の設定をしています。 フォームビューできちんと条件通り表示されるのですが 1つ疑問が・・・ 条件に合致した場合だけテキストボックス内の文字選択ができてしまいます。 消したり書き替えたりはできないので特に困りませんが、なぜ?と思ったので質問してみました。 もしご存知の方がいらっしゃいましたら教えてください。

  • ACCESS2000 で年齢を更新の仕方

    ACCESS2000 の初心者です 顧客管理の表をフォームにて作成いたしました。 その中で 生年月日 と 年齢 の 枠を作成いたしました それで 生年月日を入力すると 年齢が出てくる ように するのと 毎年の誕生日には年齢をプラス1才できるようにしたいのですが 初めて作成のため、全くわかりません。どうか宜しくお願いします。

  • ACCESS2000 テキストボックスに入力できない

    お世話になります。 環境:Win2000SP4 ACCESS2000 「メインフォーム」から、条件入力用のテキストボックスがある「条件フォーム」を開いた時、そのテキストボックスに一切入力できなくなります。「条件フォーム」を単独で開いた時には入力できます。条件フォームはオートフォーム:単票形式で作り、フォームヘッダーにテキストボックスと実行ボタンを付加しました。以前のご質問(QNo.394049 Access2000 テキストボックスに文字を入力できない理由が判りません。)に、元が集計クエリであれば入力できないとありました。まさに元が集計クエリなのですが、条件フォームを単独で開いた時には入力できますし、結果も表示されます。 どのような情報が必要かわかりませんのでとりあえず次の内容を。。。 ■集計クエリのSQL  SELECT 使用TBL.年月日,sum(使用TBL.使用金額) AS 使用金額の合計  FROM 使用TBL  GROUP BY 使用TBL.年月日  HAVING (((使用TBL.年月日)=[Forms]![条件フォーム]![txt_年月日])); ■テキストボックス(txt_年月日)  使用可能:はい  編集ロック:いいえ  IME入力モード:コントロールなし  IME変換モード:無変換 メインフォームを経由すると、なぜ入力できなくなるかわかりません。なにか問題でもあるのでしょうか?どなたかご教授頂けないでしょうか?

  • ACCESS2000 あいまい検索の結果からデータをフォームに取得

    MSACCESS2000にてフォームを作り、テキストボックスに入力された文字で、データをあいまい検索し、複数表示するようになってます。like [テキストボックス]&"*" 複数表示されたデータから1つを選択し、フォームのテキストボックスに取得することは可能なのでしょうか? ACCESSを始めたばかりで、いろいろ調べたりしているのですが、可能かどうかが知りたいのです。どうか宜しくお願いします。

  • Access2007でAccess2000のモジュールを動かす

    いつもお世話になります。 Access2007でAccess2000のモジュールを動かすことができなくて困っています。 新しい職場のPCが全てAccess2007に変わってしまいました。 今までは、Access2000でした。そのとき作成したフォームモジュールがAccess2007で全く動作しなくなり困っています。 Access2007でAccess2000ファイルはそのまま読み込み、フォーム自体は表示されます。しかし、VBで作成したモジュールが全く動作しません。 自宅では、Access2000のままですので、Access2000をAccess2007のファイルに変換することなくAccess2000のフォームモジュールを動かす方法はあるのでしょうか。 よろしくお願いします。

  • Access2000の入力桁制限

    Access2000を使用しています。 フォームにテキストボックスを作成しています。 テキストボックスに入力桁数を 制限をかけたいと思っています。 テキストボックスは非連結をしています。 どのように設定すればよいのでしょうか?

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。