• ベストアンサー

access2003で学籍番号から生徒の名前を表示させたい。

access初心者です。 先生が生徒の成績を入力するツールを作っています。 フォーム上で、生徒の学籍番号を入力すると、 自動的に学科と生徒の名前が表示されるようにしたいです。 (入力時、生徒の名前が表示されれば、解答の名前との チェックが出来る) 構成としては ☆T学生名簿(学籍番号・学科・氏名) ☆T成績入力(学籍番号・1-1解答・1-2解答・・・) です。 フォーム上で入力したデータは、[T成績入力]に 表示されます。 とても困っています。 教えて下さい(>_<)

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> フォーム上で、生徒の学籍番号を入力すると、 > 自動的に学科と生徒の名前が表示されるようにしたいです。 幾つか方法が考えられますが、2つほど紹介します。 ※下記の「タブ」は、各コントロールのプロパティシートのタブのことです。 【1・DLookup関数を使用する方法】 フォームに『学科』『氏名』テキストボックスを新規作成し、コントロールソースに 上記関数を使用した式を指定します。 コントロールソースのみの設定なので簡単ですが、レコード毎に演算が実行される 分、動作が遅くなるのと、このコントロールでの並べ替えや検索は行えないという デメリットがあります。 (並べ替えや検索については、コントロールソースの代わりに、クエリ上で同関数を  使用した演算フィールドを作成し、そのフィールドをコントロールソースにすれば  対応可能になりますが) 『学科』テキストボックス:  <データ>タブ  ・コントロールソース=(下記の式を、等号も含めて入力)    『学籍番号』フィールドが数値型の場合:     =DLookup("[学科]", "T学生名簿", "[学籍番号]=" & [学籍番号])    『学籍番号』フィールドがテキスト型の場合:     =DLookup("[学科]", "T学生名簿", "[学籍番号]='" & [学籍番号] & "'") 『氏名』テキストボックス:  <データ>タブ  ・コントロールソース=(同上)    『学籍番号』フィールドが数値型の場合:     =DLookup("[氏名]", "T学生名簿", "[学籍番号]=" & [学籍番号])    『学籍番号』フィールドがテキスト型の場合:     =DLookup("[氏名]", "T学生名簿", "[学籍番号]='" & [学籍番号] & "'") 【2・コンボボックスを使用する方法】 T学生名簿のデータをリストに持ち、『学籍番号』を連結列とするコンボボックスを 使用することで、対応する『学科』や『氏名』を表示します。 設定項目は多くなりますが、上記の方法よりも動作は軽くなります。 『学科』コンボボックス:  <書式>タブ  ・列数=「2」  ・列幅=「3cm;0cm」   ※「3cm」は適宜調整してください。また、リストをドロップダウンさせたときに学籍番号  <データ>タブ  ・コントロールソース=「学籍番号」  ・値集合タイプ=「テーブル/クエリ」  ・値集合ソース=「Select [学科], [学籍番号] From T学生名簿;」   ※上記の式を入力後、右端の「...」ビルダ)ボタンをクリックすると、上記の式に     対応したクエリのデザインビューを確認できます。  ・連結列=「1」  ・入力チェック=「はい」   (今回の例では自動で設定され、「いいえ」にはできません)  ・使用可能=「はい」 ┬→「編集不可」&「カーソル移動・コピーは可」になります。  ・編集ロック=「はい」 ┘     ※「編集不可」&「カーソル移動やコピーも不可」にする場合は、     「使用可能=いいえ」&「編集ロック=はい」にします。     (グレー表示でよい場合は「使用可能=いいえ」&「編集ロック=いいえ」)   ※「使用可能=はい」&「編集ロック=いいえ」にしてしまうと、コンボボックスのリストを     表示させると同じ学科内で学籍番号が最小の人にデータが勝手に変わってしまう     ので注意して下さい。     (コントロールソースを「学籍番号」ではなく「=[学籍番号]」にすれば、この問題は     回避可能ですが、演算コントロールなので並べ替えや検索はできなくなります) 『氏名』コンボボックス: ※デザインビュー上で『学科』コンボボックスをCopy&Pasteした後、必要箇所のみ   修正してやるのが楽かと思います(→以下、その前提で修正箇所のみ提示)。  <データ>  ・値集合ソース=「Select [氏名], [学籍番号] From T学生名簿;」 ・・・以上です。

ping913
質問者

お礼

お礼が遅くなってしまい、申し訳ありませんでした。 とても助かり、無事表示出来ました。 有難うございました。

関連するQ&A

  • Accessでデータベースの設計

    大学内での成績管理をアクセスでデータベース管理するという想定です。 (アクセスの使い方を身に付けるための演習課題ですので、本格的なものでないです) 私の考えていること次の4つのテーブルを作る。(1)学生名簿(2)学生成績(3)教員(4)講義 (1)には、学籍番号、学生氏名、フリガナ、学部、学科、入学年度、学年、備考を  (2)には、学籍番号、講義ナンバー、教員ナンバー、試験得点、試験評価 (3)には、教員ナンバー、教員氏名、フリガナ、学部、学科 (4)には、講義ナンバー、講義名、担当教員、学部、学科、開講学期、単位数、必修・選択 と作ります。 *ただし、大学を想定しているので、成績テーブルを、単に学籍番号、文学、科学、歴史・・・・と作りたくないのです。(高校までなら教科数は限られてますが、大学となると科目数が多すぎるのでフォームがとんでもないことになる) で、ここからが質問です。 最終的に、作りたいものは、(1)各学生への成績通知表(学籍番号・氏名・講義科目・評価・合計の取得単位数)が印刷されたもの(2)各科目の担当教員への成績表(学籍番号・学生氏名・評価)が学籍番号順に印刷されたもの の2つです。 Q1:(1)から(4)のテーブル設計で、最終的にやりたいことができますか? Q2:Q1が可能ならリレーションシップを結ぶために、各テーブルの主キーは何になりますか? Q3:クエリーは、どんなのが必要と考えられますか? Q4:Q1では不可能なら、どんなテーブルが必要となりますか?

  • エクセルでLOOK UP?

    エクセルでできた二つの名簿ファイルがあり、片方のファイル(1)にはクラス全員の学籍番号と名前が、それぞれ1列目、2列目に入力されています。もう片方のファイル(2)にはクラスの一部の生徒の学籍番号だけが1列目に入力されています。エクセルを使って、ファイル(1)のデータを参照し、ファイル(2)の生徒の学籍番号の横(2列目)に一括で名前を表示するにはどのような式でどのような操作を行えばよいのでしょうか?よろしくお願いします。

  • Accessのテーブルから成績一覧表を作成したい。

    こんにちは。 ExcelはVBAまで使えるレベルですが、Accessはまったくの初心者です。 基本的なことだと思うのですが、Access2003の使い方で質問です。何をどう調べていいのかわからないので、お願いします。 Accessのテーブルで「名簿」、「成績」、「科目名」の3つのテーブルがあります。 それぞれのテーブルのレコードの内容は以下の通りです。 「名簿」--- 番号(5桁で1年1組1番は10101となっています)、氏名 「成績」--- 番号、氏名、成績(5段階です)、科目番号(1~100まで) 「科目名」 --- 科目番号、科目名 以上のテーブルを使って、エクセルの表で成績一覧表を作るようなことは可能なのでしょうか?エクセルだとA列に番号、B列に氏名、C列以下が科目名が入り、それぞれの生徒の成績が横並びになりますが、そのように表示させることは可能かどうかということです。 Accessのことはよくわからないので、補足が必要であれば指摘して下さい。 よろしくお願いします。

  • エクセルでまとまったデータを取り出すには?

    エクセルでできた二つの名簿ファイルがあり、片方のファイル(1)にはクラス全員の<学籍番号、名前、住所、電話番号、メールアドレス・・・>が、それぞれ1列目、2列目・・・・に入力されているとします。もう片方のファイル(2)にはクラスの一部の生徒の学籍番号だけが1列目に入力されているとします。エクセルを使って、ファイル(2)に学籍番号がのっている生徒の分だけ<名前、住所、電話番号、メールアドレス・・・>のデータを全て取り出して表示する(学籍番号で絞り込みをする)にはどのような式でどのような操作を行えばよいのでしょうか?よろしくお願いします。

  • このSQLの意味について

    次のSQLの意味をわかりやすく説明していただけないでしょうか? SELECT 名簿 氏名、哲学概論得点+哲学論文得点 FROM 名簿 成績表 WHERE 名簿 学籍番号=成績表 学籍番号 AND 科目 LIKE ‘哲学%’ 特にWHERE句は、「名簿と成績表に存在する学籍番号を結びつけ、かつ哲学で始まる科目を抽出しなさい」という感じなのでしょうか? これは一体何をすればいいのか全くわからないので、丁寧にご教授ください。よろしくお願いします。

  • アクセス DLookUpについて

    職員番号入力後、自動で部署コードを入力できるようにしたいのですが、このアクセスのフォームで、正常に動くフォームと動かないフォームがあり困っております。どこが悪いか御教示お願いできませんでしょうか。 -------------------------------------------------------- 使用テーブル T_職員名簿 : ID、氏名漢字、氏名カナ、部署コード、部署名 イベントプロシ―ジャ内容 Private Sub 職員番号_AfterUpdate() Me.[部署コード] = DLookup("部署コード", "T_職員名簿", "職員番号= " & Me![職員番号] & "") End Sub エラー内容 イベントプロパティに指定した式更新後処理でエラーが発生しました。 --------------------------------------------------------

  • FileMakerで表検索の方法を教えて下さい

    名簿データベースと成績セータベースの2つのデータベースがあるとします。 名簿データベースは番号と氏名の2フィールドからなり、成績データベースは番号1、氏名1、番号2、成績2の4フィールドがあるとします。 成績データベースの番号1、および番号2に数値を入力すると、氏名1、および氏名2に名簿データベースの番号に対応する氏名が 表示されるようにしたいのですが、氏名1、氏名2に設定する関数が解りません。 どなたかご指導下さい。 使用ソフト:FileMaker Pro 10.0 v3

  • Access2000のフォームで番号を入力するとその他の情報が表示されるようにするには?

    入力フォームで番号を入力すると、名前などが同じフォームに表示される。 というのを作っているのですが。 テーブル1:ID・番号 テーブル2:番号・名前など(エクセルとリンク) クエリーで番号を1→2と繋ぎ、番号はテーブル2を使用。 (1)テーブル1が空欄だと何も表示されない。 (2)テーブル1に入力すると表示されるが、フォームで番号の入力はできない。 (3)新しいレコードも作製できない。 数年前に似たようなものを作った筈なのですが、そもそも出来ないのでしょうか。 宜しくお願いします。

  • ACCESSのVBAでテキストボックスの前景色を変えたい

    ACCESS初心者の者です。 質問なんですが、テーブルと連結しているテキストボックスの前景色を 変えるのにVBAを使ってやりたいのですが、どうしたらいいのでしょうか? 具体的には、  (1)以下のような生徒フォームがあり、学籍番号、名前、自宅通学は   テーブルと連結してます。   学籍番号  名前     自宅通学    001   山田太郎   FALSE   002   木下花子   TRUE   003   鈴木次郎    FALSE     (2)生徒を上から順に舐めていって自宅通学がTRUEの者の学籍番号を赤で   表示させたいと思います。   上の例でいくと木下花子の学籍番号002が赤くなればいいです。  (3)ちなみに私が作ったVBAのクラスモジュールは以下の様ですが、   これだと木下花子だけではなくて全員の学籍番号が赤くなってしまいます。   Me.RecordsetClone.MoveFirst   Do Until Me.RecordsetClone.EOF      If Me.RecordsetClone!自宅通学 = True Then        Me!自宅通学.ForeColor = vbRed      End If      Me.RecordsetClone.MoveNext   Loop どうすればよろしいでしょうか? よろしくお願いいたします。

  • アクセス 抽出後も全体の最大値を表示させる

    アクセス超初心者です。 OS:XP Access:2003 仕入情報を入力するフォームを作成しています。 「T_仕入入力詳細」というテーブルを元に、帳票フォームを作成し、そのヘッダーに非連結のテキストボックス「受付番号」で最大値を表示させています。コントロールソースに「=Max([T_仕入入力詳細]![受付番号])」と入れて表示させるようにしていますが、全データを表示していると全体の最大値が表示されるのですが、特定の受付番号のデータを抽出すると、抽出データだけの最大値が表示されてしまいます。 抽出した状態でも全データの最大値を表示させるには、どうやったらいいでしょうか。 どなたかご教授願います。