• 締切済み

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

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

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.5

回答№4で定義したテーブルのプロパティーは 全てフォームのプロパティーに反映されます。 従って 【T履歴】をレコードソースとして帳票形式のフォームを作成します この時【ID】がオートナンバ型であればフォーム上から削除しても 運用上差しさわりがありません。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

コメントありがとうございます。 次にテーブルとリレーションシップです 【M学生】のデザインビュー ・氏名:インデックスプロパティーシートで重複無しに  同姓同名の時は氏名と名前の間に空白を入れる ・誕生日:datedif()関数で年齢計算 ・フリガナ:コンボボックスの並び順に利用  フリガナのプロパティーで設定しておくと入力は不要 【T履修履歴】のデザインビュー ・学生ID:データ型を数値→長整数型  【M学生】をルックアップ定義 添付図参照  【③ルックアップのタグ】→【コンボボックス】   →【右端の…印】でクエリビルダが起動 ★リレーションシップ 【データベースツール】→【リレーションシップ】  これでリレーションシップ画面になり、画面クリックから  テーブルを表示して、リレーションを組みますが  リレーションシップ全て1:∞の参照整合にします。  ※参照整合が成立しないときは重複したレコードの   相手のレコードも重複することになり、   大変なレコードに肥大化します

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.3

回答№は早とちりでした。ゴメン >各人のID番号を先に作成してテーブルのなかの第何番目かの  数値をフォームに表示したいのですが  アクセスにはデフォルトでありますが  その数字を自動的にフォーム上に表示したいというわけです  要は新規に入力するデータが 第何番目かを自動的に判別して  新しい帳票フォームの  あるテキストに自動で表示したいというわけです ★ID番号はシステムの規定値のオートナンバー型のコードと思いますが、  これはリストの順を表すものではありません  レコードの追加の都度ユニークな自然数が割り当てられ、  レコードの削除のとき飛び番が発生します。  ※リストの順は読順、コード順、ID順等別に定義します。  Excelの入力規則のリストのツールは【コンボボックス】です。  テーブル設計時にルックアップで 【コンボボックス】を定義します。  Excelでは枚のSheatで作成しますが、  Access複数のテーブルで設計します ★今回は【M学生】、【M履修科目】のマスターテーブルと  【T履修履歴】のトランザクションテーブルで作成します。  添付図左がテーブル間の関係のリレーションシップ、と  【T履修履歴】のルックアップ定義です  リスト行数が16行(規定値)ですが自分は32行にしています。  【T履修履歴】をレコードソースとしてフォームを作成すると  【学生ID】【履修科目ID】【優良可不可】がコンボボックスに   なります 専門用語を使い過ぎましたが、ご遠慮なく補足質問を下さい

sushidokei
質問者

お礼

有り難うございました。とても わかりやすかったです

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

>accessではVBAで作成しないとならないでしょうか ★VBAは必要ありません、添付図のようにクエリに検索行があります  ・クエリは単独でも作成できますが、   私はもっぱらフォームからクエリビルダを起動しています  ・ID(長整数型)の求め方はコンボボックッスを使います ★今のホームと履歴書のフォームの項目名をご提示頂ければ  より具体的にお答えできます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

イベントプロシージャ(VBA)でフォームのレコード移動時にするとしたら テキスト1が表示したいテキストボックスとして Private Sub Form_Current() Me.テキスト1.Value = Me.CurrentRecord End Sub で試してみてください。

sushidokei
質問者

お礼

誠に、有り難うございました 試みたく存じ上げます

関連するQ&A