• ベストアンサー

Accessについてです。

アクセスのフォームで、番号を入力したらその番号の項目まで自動で入るように作りたいのですが、どうすればいいのでしょうか・・。(番号、項目はテーブルに入っている情報です) 1 保育園 2 幼稚園 3 小学校 とあって、1を入力すれば 別の枠に保育園と自動的に表示されるようにしたいのです。どなたか分かる方いましたらお願いします。初心者の質問ですいません。よろしくお願いします。

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

  • ベストアンサー
  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.3

はっきり言って初心者にはちょっと難しいと思います。本気でやるにはVBAの知識がいると思います。 一番簡単なのは番号を入れるところをコンボボックスにして、そこで番号を入力するなり、プルダウンで選ぶなりしたらもう一つのテキストフィールドに名称が表示するようにするのなら簡単かもしれません。 コンボボックス 名前:comb1(何でもいいです) 列数:2 値集合タイプ:テーブル/クエリ 値集合ソース:(データが入っているテーブル名) 列幅:0.5cm;2.0cm(見えれば適当でいいです) 連結列:1 テキストフィールド 名前:何でもいいです。 コントロールソース:=[comb1].column(1)・・・ここはコンボボックスで設定した名称と一致させてください。 これは元となるデータの1列目に数字が入っていて、2列目に名称が入っている場合です。テキストフィールドで指定しているのはcomb1の2列目を表示しろということです。コンボボックスに数字を入れるなり、選択するなりすればテキストフィールドに「保育園」、「幼稚園」など選んだものの名称が表示されるはずです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#22222
noname#22222
回答No.2

<学校> ID  種別 1   保育園 2   幼稚園 3   小学校 というテーブルを仮定します。 フォームに、 [学校_ID] [学校_種別] という非連結のテキストボックスを配置します。 次に、 [学校_種別].コントロールソース=ADOLookup("種別","学校","ID=" & [学校_ID]) を設定します。 さて、ここまで仕掛けると、[学校_ID] が更新された時に [学校_種別] をリクエリーするだけ。 Private Sub 学校_ID_AfterUpdate()   If Len(Me.学校_ID & "") > 0 Then     Me.学校_種別.Requery   End If End Sub これで、「[学校_ID]に1を入力すれば [学校_種別]に保育園と自動的に表示される」ようになります。 なお、ADOLookup 関数は自作する必要があります。 DLookup 関数でも構いませんが、こちらが3倍速で動作します。 Public Function ADOLookup(ByVal strField As String, _              ByVal strTable As String, _              Optional ByVal strWhere As String = "", _              Optional ByVal ReturnValue = Null) As Variant On Error GoTo Err_ADOLookup    Dim DataValue    Dim strQuerySQL As String    Dim rst     As ADODB.Recordset    Set rst = New ADODB.Recordset    strQuerySQL = "SELECT " & strField & " FROM " & strTable    If Len(strWhere) > 0 Then      strQuerySQL = strQuerySQL & " WHERE " & strWhere    End If    With rst      .Open strQuerySQL, _         CurrentProject.Connection, _         adOpenStatic, _         adLockReadOnly      If Not .BOF Then        .MoveFirst        DataValue = .Fields(0)      End If    End With Exit_ADOLookup: On Error Resume Next    rst.Close    Set rst = Nothing    ADOLookup = Nz(DataValue, ReturnValue)    Exit Function Err_ADOLookup:    MsgBox "SELECT 文の実行時にエラーが発生しました。(ADOLookup)" & Chr$(13) & Chr$(13) & _       "・Err.Description=" & Err.Description & Chr$(13) & _       "・SQL Text=" & strQuerySQL, _       vbExclamation, " 関数エラーメッセージ"    Resume Exit_ADOLookup End Function

全文を見る
すると、全ての回答が全文表示されます。
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

番号 項目 ----------- 1 保育園 2 幼稚園 3 小学校 こういうテーブルがあるとき 他のテーブルからこのテーブルを参照させるときには 番号だけを参照キーとして取り込むことになります 「項目」フィールドを取り込んではいけません 従って、他のテーブルから作ったフォームで >番号を入力したらその番号の項目まで自動で入るように作りたい この様なことをする必要がありません(してはいけません) この辺データベースの大事な基本です >別の枠に保育園と自動的に表示されるようにしたい 表示だけと言うことなら話は別です 方法はいろいろありますが、 2つのテーブルを番号で結合したクエリをフォームのソースにしてもいいですね この様なクエリをルックアップクエリといいます Accessで用意している方法は 他のテーブルをテーブルデザインビューで開き 番号フィールドのデータ型でルックアップウィザードを選び 表示させるテーブルに番号、項目のテーブルを選び 格納するフィールドに番号、表示させるフィールドに項目を選ぶというものです この場愛他のテーブルに格納される値は番号ですが表示と操作は項目で行えるようになります

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • Accessのフォームについて

    Accessで、テーブルへのデータ入力を簡易化するための、フォームを作成しています その中で、コンボボックスのなかから項目を入力したら 別に用意されているテーブルから 一致する項目をテキストボックスに 自動的に値を入力できるようにしたいのですが、 どのようにしたらいいのか、わかりません。 ~フォームに入力する項目~ 氏名、年齢、地区(コンボボックス)、地区コード、地区番号、住所、電話番号  等 ~地区テーブル~ 地区コード、地区、地区番号 調べてみたところ、プロパティのコントロールソースというところで、 値を持ってくるための式を作成するということでしたが・・・ 実践してみたのですが、初心者ゆえ、あまりよく理解できませんでした どうかよろしく御願いします。

  • アクセス:フォーム入力:【大項目→中項目への絞りこみ入力】方法を教えてください。

    アクセス初心者です。よろしくお願いします。 【やりたいこと:次のような大項目→中項目への絞りこみ入力】 フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。 ◆まず、テーブルで「大項目コード」表があります。   1  A   2  B   3  … ◆別のテーブルで、 「Aの小項目」表  11  ○   12  ×   13  △     「Bの小項目」表  21  ●  23  ■  24  ▲ というようなものがあります。 そこで、フォームで「大項目」フィールドに「1」(=A)を入力すると「小項目」フィールドに自動でコンボボックスのようなもので「○、×、△」がリストが出てコード番号(11,12,13)が入力できる、同様に「大項目」に「2」(=B)と入力するとリスト「●、■、▲」で選んで入力したいのです。 私が初心者であることから、上記のようなアクセス構築の考え方そのものも邪道なものかどうか、不安があります。 要は、【大項目→中項目への絞りこみ入力】ができればいいのです。できますなら、できるだけシンプルな方法を教えてくだされば幸いです。 よろしくお願いいたします。

  • アクセス初心者です。

    アクセスのフォームに商品番号と商品名を入力する項目があります。今はどちらも入力しないといけません。商品番号を入力すれば自動的に商品名が入力される、又は商品名を入力すれば自動的に商品番号が入力されるといった風にするにはどうすればいいのでしょうか。 初心者の質問ですがよろしくお願いします。

  • ACCESS2003のテーブル入力について

    いつもこちらでお世話になっております。よろしくお願いいたします。 マイクロソフトアクセス2003にて、No.と項目名という2つのフィールドから成り立つテーブルがあります。 そのテーブルにはあらかじめデータがはいっています。 新規にそのテーブルに追加する項目が出来たとき、新規入力用のフォームを作成しました。 その時のNo.のフィールドなのですが、自動的にもともとあるテーブルの番号に無いものを規定値として表示させておくようにするには、どのようにしたらよいでしょうか? 例) 1、2、3、5があれば、4を 1、2、3、4があれば5を よろしくおねがいします。 もうひとつ質問なのですが、納品書を入力していくデーターを作成しているのですが、納品書のテーブルがあり、リレーションで項目や会社名などを関連テーブルとしています。 あらかじめ会社名や項目名のテーブルに入力されていない新規の会社の納品書を打ち込む場合、納品書テーブル入力フォームに、入力しただけで、項目名のテーブルや会社名のテーブルに追加されていく方法はありますでしょうか?

  • アクセスでの、フォームとテーブルの連動の方法を教えてください

    初歩の初歩だと思うのですが、教えてください。 アクセスで、テーブルのフィールドと全く同じ内容でフォームを作りました。(受講生情報の管理) その中で「性別番号」と「性別」があり、(「性別番号」と「性別」は、別にテーブルを作っています)フォーム上では「性別番号」に番号(男なら1、女なら2)を入力すると「性別」に自動で値が入るように設定できたのですが、テーブルに反映されません。(フォームの「性別」のプロパティのコントロールソースに”DLOOKUP~”を入力しました) テーブル上にも同じように反映させるには、どうすればよいのでしょうか。 同様の質問と思われるものを参考にいろいろとやってみたのですが、どうもうまくいかなくって・・・ よろしくお願いします。

  • MS Access2000のフォームの表示方法について教えてください。

    図1、データが5000件位の製品テーブルがあります。 図1項目名の番号に対する名称等は別のテーブルにあります。 図1(テーブル) ----------------------------------------------------------  製品番号 | 予算番号 | 新製品番号 | ・・・ | ・・・ ----------------------------------------------------------  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310001 | 3230002  |  ・・・   | ・・・ | ・・・  3310010 | 3230015 |  ・・・   | ・・・ | ・・・ ・      ・          ・      ・ テーブル図1を使ってクエリ又はフォームで、「材質番号」という項目を追加して図2のような感じでフォームを作成したいのです。 材質番号という項目はベースとなる図1テープル、図1クエリには無く、別テーブルになっています。 図2(フォーム) --------------------------------------- |製品番号|(製品名称テーブルより製品名) | --------------------------------------- --------------------------------------- |予算番号|(予算名称テーブルより予算名称)| --------------------------------------- ---------------------------------------- |材質番号|(材質名称テーブルより材質名称)| ---------------------------------------- なお、作成するフォームは各番号と名称を使用してのデータ検索のみで、入力はしません。 ちょっと質問がややこしくなってしまいましたので、簡単にやりたいことを言いますと、製品フォームにまったく関係の無い材質テーブルの材質番号を、製品フォームに表示させて、検索、閲覧したいということなのです。 Accessもですが、VB&VBA等初心者ですので、できれば使用しない方法がありましたらよろしくお願いいたします。

  • ACCESS 他のフォームを参照した値をレコード内にも書き込む(?)

    はじめまして。 ACCESS2000を使い始めて2日、ウェブ上のマニュアルやこちらのQ&Aなどを参考に、 簡単なデータベースを作っているのですが、悪戦苦闘の末、遂に行き詰まってしまいました。 初歩的な上に重複した質問かもしれませんが、お力添えよろしくお願いいたします。 質問は2つです。 現在の状態は、フォームの中にサブフォームを埋め込んで、 親フォームが顧客情報のテーブル(親テーブルとします)、 子フォームが各顧客の購買状況のテーブル(子テーブルとします)に対応しています。 (1) 子フォームにデータを入力する際に、親フォームの顧客番号が、 自動的に入力されるようにテキストボックスに設定しています。   =Form!顧客情報フォーム!顧客番号 これで表示される顧客番号を、更に子テーブルの顧客番号の項目に入力させたいのですが、 このままでは表示されるのみで、データとしては残ってくれません。 どのような式を足せばよいでしょうか。 (2) この親フォームの中に子フォームをもう1つ作り、 その2つめの子フォームから、1つめの子フォームを操作することは可能でしょうか。 「OpenForm」を使って、別のフォームから親フォームの表示内容を変えることはできたのですが、 埋め込んだ子フォームから子フォームへ同じ操作をする場合、どのような方法があるのでしょう。 まだまだ勉強不足で、言葉が足りない点が多くあると思われますので、補足要求お願いいたします。 本来は自己解決すべきところなのですが、お知恵を拝借したいと思います。 よろしくお願いいたします。

  • Accessについて

    Access2003を使っています。 商品情報フォームに入力されたデータをAのテーブルには情報を新規フィールドで追加、 Bのテーブルへは、テーブルに商品番号をもとに入力した日の日付だけ追加したいのですが、 Aには問題なく入り、Bには反映されません。 初心者ですみませんがどうしたら動くのか教えて頂きたいです。 よろしくお願いいたします。

  • accessのフォームの自動表示

    accessのフォームを作っています。 「会社名」と「発注情報」、それに「電話番号」の入るフォームです。 別に「会社名」と「電話番号」の入ったテーブルを作っておいて、 フォームに「会社名」を入れると、「電話番号」が自動的に表示させるようにしたいのです。 うちの職場に昔いた人が作った別のaccessDBで、それができるようになっているものがあるのですが、どう作ったのか解読できません。 accessは全くの素人です。フォームだけやっと作れるが専門用語などは全くわからない人間だと思ってお教えいただけないでしょうか。

このQ&Aのポイント
  • MFC-L5755DWにつなげた電話機が使えず、着信も発信もできません。どのように解決すればよいでしょうか?
  • MFC-L5755DWで接続した電話機が機能しない問題が発生しています。解決策を教えてください。
  • MFC-L5755DWに接続した電話機が動作しないため、トラブルシューティング方法を教えてください。
回答を見る