• ベストアンサー

ACCESS2000。その年の何番目のレコードか

 ACCESS2000、ウィンドウズ98です。  データ-ベースで新しいレコードを入力する時、それがその年の何番目のレコードなのかを知りたいのですが・・・新規にフィールドを足す事は可能です。  よろしくお願いします。

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

  • ベストアンサー
  • sgh
  • ベストアンサー率61% (75/121)
回答No.1

オートナンバー型のフィールドと、登録日(登録年)、を記録すればできませんか? 例えば2001年最初のIDは1501番とすると、2001年のIDから1500を引けば 2001年何番目のレコードかを計算できます。

daichi_kyrie
質問者

補足

 新しいレコードを入力する際に、前回のレコードが何番目かを知りたいのです。  教えていただいた方法だと、毎年毎年その年度の最初のIDがいくつかを調べなくちゃいけないですよね・・・・・出来ればテーブルを開いて欲しくないのです。

その他の回答 (2)

  • sgh
  • ベストアンサー率61% (75/121)
回答No.3

k_ebaさんからの回答があって恐縮なのですが作ってしまったのでアップします。 参照設定にMicrosoft DAO 3.6 Object Library にチェックを入れ、 以下の関数を標準モジュールに貼り付けます。 Function Kotoshi_No(Nen As Integer) As Long Dim DB As DAO.Database Dim RS As DAO.Recordset Dim StSQL As String Set DB = CurrentDb StSQL = "select count(日付) as 件数 from テーブル1 where Year(日付)=" & Nen Set RS = DB.OpenRecordset(StSQL) If RS.EOF Then   Kotoshi_No = 0 Else   Kotoshi_No = RS!件数 End If RS.Close Set DB = Nothing End Function フォームのテキストボックスなど呼び出す側で以下のようにコントロールソースを書くと 2001年の件数が表示されます。 =kotoshi_no(2001) 尚、テーブル名、フィールド名は環境に合わせて修正してください。

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

フォーム上に表示されれば良いのですよね? 1.新しいクエリーを作成  1)日付は元、集計:WHERE条件、表示無し  2)年:YEAR(日付)、集計:グループ化、抽出条件はYEAR(DATE())  3)件数:[年]、集計:カウント 2.出来たクエリーを入力フォームに張付け 参考になれば幸いです

関連するQ&A

  • アクセス作成について

     アクセスについて質問します。  フォームで入力する場合で、例えばテーブルのレコードを100までとし、101を超えた場合またレコード1にデータを入力することは可能でしょうか。 テーブル フィールド1 フィールド2  1       6  2       8   .      .   .      . 100       55 フィールド1は固定し、フィールド2にデータを入力していき101番目にデータを入力する時はまた1行目の6を上書きしてデータを更新していくようなことは可能でしょうか。(もちろんフィールド1、フィールド2を別テーブルとしクエリーを活用することでもok) アクセス初心者です。よろしくおねがいします。

  • アクセスで「空き番」の確認

    Access2000を使用しています。 オートナンバー型でないフィールドで、入力の 際にdmaxを使用して連番を振っているのですが、 登録されているデータに関して、空き番がない かどうかを確認したいのですが何か方法はあるでしょうか? (登録されているレコード数は約三万件ですので目で確認  するだけではきついので・・・・) 何か良い方法があるようなら教えてください。 よろしくお願いします。

  • アクセス 前レコード内容を、新レコードにコピー

    アクセスで、テーブルに [日付] と [内容] のフィールドがあって、フォームでデータを入力する際、新しいレコードに[日付]を入力した後、[内容]の項目で、前回に最後のレコードで入力した [内容] のデータを、そのまま新しいレコードに入力したい。コピー貼り付けでもできるが、コマンドボタンを押して、1発で前回のデータをコピーしたい。どんなにしたらできるのですか?よろしくお願いします。

  • ACCESSのレコード操作で1つ前のレコードの再表示方法をご教授下さい。

    アクセスで1レコードの入力が終わり、次の入力フォームに移行した時、前のレコードのフィールド内容を参照したいのです。 VBAで関数DLastで呼び出す様にしているのですが、 毎回同じデータが表示されます。レコードは順次入力されていて、 スクロールで1つ遡ると最終データが表示されています。 解決方法をご教授お願い致します。

  • access 現在のレコードが先頭から何番目?

    お世話になります access97ですがそれ以降のバージョンとしても回答でも助かります テーブルAを基に作成したフォームがあり、テーブルAの各データに対応するフォームとなっています テーブルのレコードが例えば3番目のデータを表示するフォームであれば そのフォームのテキストボックスに 3 と 表示されるようにしたいのですが、 あらかじめ用意されている関数には なさそうです エクセルではmatch関数などあるようですがaccessではVBAで作成しないとならないでしょうか もしそうだとしましたら どのようなコードになりますか 例えば学生さんの履修科目の試験の成績を入力したテーブルがあるとして 各学生さんに対応するフォームが1枚ずつできるイメージです 各人のID番号を先に作成して それをフォームに表示するのではなくて テーブルのなかの第何番目かの数値をフォームに表示したいのですが どのようにしたら よいものでしょうか フォームの下のほうにレコードカウントが アクセスには デフォルトでありますが その数字を 自動的に フォーム上に表示したいというわけです 要は新規に入力するデータが 第何番目かを自動的に判別して 新しい帳票フォームの あるテキストに自動で表示したいというわけです わかりにくくて すみませんが お知恵をお貸しくださいませ 宜しくお願い致します

  • Access2003で、フォーム画面でデータを入力すると、他のレコード

    Access2003で、フォーム画面でデータを入力すると、他のレコードの同じフィールドが全て同じデータになってしまいます。 変更すると、同じ様に全てのレコードのデータが変更されてしまいます。 1件1件別のデータを入力出来る様にするにはどうしたら良いでしょうか? どなたか教えて下さい。 宜しくお願いしますm(_ _)m

  • ACCESS2000のオートナンバー型について

    OSはWIN98です。ACCESS2000です。 ACCESS2000にてテーブルの主キーのフィールド(追番)に オートナンバー型を設定しました。 テーブルにデータを仮に100書きこんだとします。 その後に、その100個のデータを削除します。 そして、削除された後の最初のレコードにデータを 書きこもうとすると追番のフィールドが "101" に なってしまいます。新たに書きこむ時に追番を "1" にすることはできないでしょうか? 皆様よろしくお願いします。

  • ACCESSでコピーしたレコードのフィールド置換作業の繰返しを簡素化したいです

    ACCESS2000を使っています。テーブルには必ず「Nenndo」というフィールド名(数値型十新型)で西暦4桁が入力されています。(このフィールドはキーにもインデックスにもなってません)たとえば、 T_M001テーブルのNendoフィールドに2007が入力されたレコードが340件 T_M002テーブルのNendoフィールドに2004が入力されたレコードが823件 こんな感じでNendoフィールドがあるテーブルが沢山あります。 これらのテーブルのNendoフィールドに格納されているレコードをコピー置換作業して2004から2008までのデータを作成したいです。 T_M001であれば2007が入力されてるレコードをコピーして、貼付たレコードNendoフィールドの2007を2004へ置換、また2007のレコードをコピーして2005へを繰り返の作業してます。レコード数は340件が1360件増えて1700件。 テーブルが沢山あって作業に苦慮してます。 ACCESSのモジュールでもマクロでも構いませんので対応策等ご教授願います。

  • Access 同じデータをたくさんのレコード(同一列)に一度に入力するには

    いつもお世話になっています。 Accessの基本的な入力に関して教えてください。 同じデータをたくさんのレコード(同一フィールド)に一度に入力するには、どうすればよいか教えてください。 Excelの列方向へのコピーと同じような感覚でできないのでしょうか? よろしくお願いします。

  • ACCESS2003:2番目に大きい値を1レコードのみ抽出

    氏名、ポイントと2つのフィールドをもつテーブル1をもとにクエリ1を作成し、クエリデザインでDMax("[ポイント]","クエリ1","[ポイント]<=" & DMax("[ポイント]","クエリ1"))といった2番目に大きい値(1番目の値が2つ以上ある場合はその値で可)を抽出する式をつくりました。抽出条件に任意の氏名を指定した結果、2番目に大きい値は抽出できましたが、ポイントのデータ数ぶんだけ複数のレコードを表示してしまいます。できれば別のクエリを作成したりせずに、1つのレコードのみ表示させたいのですがどのようにしたらよいか分からず困っております。よろしくお願いします。