• ベストアンサー

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

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

  • ariga
  • お礼率44% (55/123)

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

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

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

ariga
質問者

お礼

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

その他の回答 (4)

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

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

ariga
質問者

お礼

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

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

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

ariga
質問者

補足

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

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

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

ariga
質問者

補足

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

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

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

ariga
質問者

お礼

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

ariga
質問者

補足

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

関連するQ&A

  • アクセスのフォーム上のテキストボックスについて

    アクセスのフォーム上のテキストボックスについて フォーム上のテキストボックスに直接数字を入力しようとしています。ただ、このテキストボックスのコントロールソースはフォームのレコードソースと違うものです。 この状況でテキストボックスに数値を直接入力しようとすると、『コントロールソースに連結しているので、編集できません。』と表示され、入力出来ません。 どうすれば、解決できるのかご存知の方、教えて下さい。宜しくお願いします。

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

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

  • アクセスにて、フォームのテキストボックスの値をテーブルにコピーしたい

    初めて質問させていただきます。宜しくお願いします。 アクセスで、 ===フォーム上にある非連結テキストボックスに、日付を入力し、コマンドボタンをクリックすると、テーブルにある日付のデータをクリアし、その後フォーム上のテキストボックスに入力した日付を挿入===の方法を教えていただきたいと思います。 CurrentDb.Execute "DELETE * FROM T_設定日;" CurrentDb.Execute "INSERT INTO T_設定日(設定日) VALUES ('Me![年月日]');" 上記でやってみたところ、データのクリアはされるのですが、その後、テキストボックスに入れた日付は入りません。エラーは出ません。 アクセス初心者で、分かりにくい説明と思いますが、宜しくお願いします。

  • Accessの関数について

    Accessのフォーム作成から氏名、生年月日、年齢といったかんじでデータを作成し、生年月日を入力したら年齢も自動的に表示されるようにしたいのですが、関数の定義がわからないので教えてもらえないでしょうか。 フォームのデザインビューからプロパティ→年齢のテキストボックスを指定し、テキストボックス年齢のプロパティが開かれます。コントロールソースの項目からビルドボタンをクリックすると、式ビルダが開かれます。生年月日の表示方式は 生年月日 1999/09/09 といった表示方法をとっています。Excelだと、datedif関数で、 datedif("生年月日","2002/10/1","y")で年齢を算出できたので、もしかしたらAccessでも定義できるんではないかと思いまして質問いたしました。

  • フォームのテキストボックスで抽出したい

    データベース一覧の抽出条件として、フォームのテキストボックスを使用することができるのでしょうか?もし、でしるのでしたら、抽出条件の入力方法を教えて下さい。具体的にいうと、「名前」「住所」「入社年月日」のフィールドを持つ「名簿」テーブルがあります。次に抽出クエリ「Q_抽出名簿」を作成し、入社年月日が未入力のもののみを抽出させました。この「抽出名簿」をベースにして、フォーム「F_抽出名簿」を作成しました。このフォームを開き、「入社年月日」テキストボックスに新しく日付が入力されたもののみクエリで抽出したいのです。わかりにくい箇所は補足説明しますので、是非、教えて下さい。

  • アクセスのフォーム上で計算させたいのですが

    Win2000、アクセス2000を使用しています。 「貸し出し状況集計」フォームで「5月に貸し出した」データを抽出させ、「貸し出し期間」ごと(1年間とか6ヶ月間とか)の合計をそれぞれ集計させるようにしたいのですが。 フォームフッターにテキストボックスを作成し、テキストボックスのプロパティのコントロールソースというところに直接関数を組むと集計できましたが、貸し出し期間が空白の場合Null値となるためだと思うんですが、集計してくれません。 「貸し出し期間」の項目が多いのでなるべく空白のままにしておきたいのですが、Null値を「0」に返すNz関数があるとヘルプに書いてありましたが、テキストボックスのプロパティのコントロールソースに使用できるんでしょうか? 私が試したらエラー出てうまくいきませんでした。 おわかりになる方がいましたら、お返事ください。 アクセス初心者のため、説明がわかりづらいと思いますが、よろしくお願いします。

  • 生年月日を元に年齢を計算するテキストボックスを作成したのですが‥

    ACCESS 2003を使用しています。 プロパティシートのコントロールソース欄に計算式を入れ、フォームで生年月日を入力すると、確かにテキストボックスには年齢が自動計算されて表示されました。 ところが、カーソルが入ると自動計算された年齢が表示されるのですが、カーソルが次のボックスへ移動すると0になって表示されてしまいました。 書式の欄には「0歳」と入力してあります。 どの設定が間違っているのでしょうか。 わかる方、教えて下さい、お願いします。 説明不足は補足します。

  • アクセスフォームで2つを結合テキストボックス

    アクセス2000を使っています。 フォームで2つのテキストボックスの内容を並べて表示するテキストボックスを作成するには、どのようにコントロールソースに入力したら良いでしょうか? =[フィールド名]&[フィールド名] ではErrorやName?、「-1」などが表示されてしまいました。 (&の前後に半角空白を入れたりしました。) よろしくお願いいたします。

  • フォームのテキストボックスで・・。

    数字を入力し次のテキストボックスに移るときに自動的に「:」をつけた形にしてaccess上に記憶させるというものを作ってます。たとえばフォームのテキストで「1300」といれたら次のテキストボックスに移るときに自動的に「13:00」とテキストボックスに収められそれをaccess上に残すという形です。うまくいかずに困ってまして大変説明が曖昧ですがどなたか回答くださいますようお願いします。

  • Accessフォームのテキストボックス規定値について教えてください。

    Accessフォームのテキストボックス規定値について教えてください。 初期値に先月を2桁(04)で表示させていです。 規定値に=Month(Date()-1)-1を入力すると、 先月の4月の4が表示されるため04と表示する方法を教えてください。

専門家に質問してみよう