• ベストアンサー

Accessちゃん活用中

突然ですが、3つ質問させて戴きます。フォームのレコードソースは3つとも同じテーブルからです。 Q1:フォームを開いた時、五十音順に表示させる方法 (テーブルの画面で五十音順になっていてもフォームに表示されてくる順番はID番号順になってしまいます。) Q2:フォームビューの時、ひとつのテキストボックスに会社Noや社名・ふりがな等を入力した時、ヒットした社名が出てくるようにするには?(検索機能) Q3:フォームを開いた時、必要な会社名のレコードだけ使いたいという時の設定方法。 例えば、テーブルに200件分のデータがあるとしら、その150行目から200行目までとか、同じ会社名のデータだけしかこのフォームではいらないんだけどなぁという時。 以上、なんでもけっこうですので、是非ご教示くださいますようお願い申し上げます。参考にさせてください。

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

  • ベストアンサー
  • tutty2
  • ベストアンサー率53% (7/13)
回答No.2

Q1:現在フォームから参照しているテーブルを元にしたクエリーを作ります。そこには、フリガナフィールド(なければフィールドを増やす)を昇順で並べ替える設定をしておきます。 フォームのレコードソースを作成したクエリーに変更します。 Q2:以下の手順で行います 1.非連結のテキストボックスを1つ配置したフォームを作ります。 例としてフォーム名は「フォーム1」としておきます。 2.検索したいテーブルを基にしたクエリーを作り、検索対象のフィールドの抽出条件にフォーム1のテキストボックスを指定します。 [Forms]![フォーム1]![テキストボックス名] 3.フォーム1をデザインで開き、そこに2で作成したクエリーをドラッグし、大きさを整えます。 ドラッグしたときにウィザードが起動したら後で設定するとして終わらせます。 つまり、サブフォームのプロパティにある親リンク・子リンクは不要ということです。 4.再クエリーマクロを作成します。コントロール名は無くても構いません。 5.4で作成したマクロを1で作成したフォームのテキストボックスの更新後プロパティに設定します。 これで抽出できるはずです。なお、フォームをデザインで開き、サブフォームをダブルクリックすればサブフォームのレイアウト等がいじれます。 Q3:同じ会社名のデータで良いなら、Q2の応用でできます。

sasukee
質問者

お礼

tutty2さんの方法で解決しました。ありがとうございました。少しでも応用が出来ればとおもうんですが、Helpをみてもなかなか難しくて・・・。本を読んでみても思い通りの応用例がなかったりで。またokwebにたよってしまうと思いますが、その時はまた是非ご回答よろしくお願い致します。本当に有難う御座いました。

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

その他の回答 (2)

  • CHOROLYN
  • ベストアンサー率60% (14/23)
回答No.3

検索する語句を入力するテキストボックスの名前はどうなっていますか? Me.テキストボックスの名前 になるようにしてみて下さい。

sasukee
質問者

お礼

有難う御座いました。 そして、お世話になりました。またよろしくお願い致します。

sasukee
質問者

補足

最初、それが理由だと思い確認したところ、テキストボックスのな前にちゃんとなってました。なので、他に理由があるのでは?とおもったのですが・・・。その理由が探せず、困ってます。もしご存知でしたら、よろしくお願い致します。

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

Q1:フォームのレコードソースでフリガナを昇順にして下さい。 Q2:フィルタを使用します。非連結のテキストボックス(「検索」とします)を配置してその更新後イベントで、 dim strSQL as String strSQL="" strSQL=strSQL & "([会社No.]=" & Me.検索 &") " strSQL=strSQL & "OR ([会社名]='" & Me.検索 &"') " strSQL=strSQL & "OR ([ふりがな]='" & Me.検索 &"')" DoCmd.ApplyFilter ,strSQL とすれば検索に入力した内容でいずれかにヒットするものだけ絞り込まれます。 Q3:何件目~何件目っていうのは出来なかったと思いますが、開くときに条件指定できます。  Docmd.OpenForm "フォーム名",,,"都道府県='東京都'" という風にすれば、都道府県が東京都の会社のみが表示されます。

sasukee
質問者

補足

早速ご回答戴き、有難う御座います。実行させて戴きました。 ところが、すでに三行目で“コンパイルのエラー”というエラーが出てきてしまいました。何度も入力しなおしても、このエラーの意味がわからないので・・・。ご存知でしたら、どうかどうかご教示くださいますようお願い致します。

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

関連するQ&A

  • ACCESS2000について・・・

    よろしくお願いします。 ACCESS2000のテーブルにあるデータを、フォームで表示するたびに50音順に並び替える方法はありますでしょうか? テーブルにあるデータは、逐次増加するものと考えてください。 よろしく、お願いいたします。

  • アクセスのフォームで選択肢の表示順を変えるには?

    アクセスでフォームの設計をしています。 支払先には支払先マスターのテーブルのデータをルックアップできるようにしたのですが、新規の仕入れ先が増えた場合、マスターに順次登録していくと順番がバラバラになってしまい、探すのに苦労するのでフリガナを付けて50音順に表示したいのですが、うまくできません。 テーブルにはフリガナフィールドを追加し、並べ替えを行ってもフォームの入力画面でプルダウンリストは従来のID順に表示されてしまいます。 どなたかご存じの方教えて下さい。よろしくお願いします。

  • Access フォームの表示順をなおしたい

    いつもお世話になっています。 Access フォームを利用していたのですが、テーブルの既存データを更新してから、そのフォームでのデータ表示順が変わってしまいました。 レコードにはIDとして番号データがあるので、小さい順にフォームに表示させたいと思います。 ちなみに、元となるテーブルはID番号が小さい順に並んでいます。 よろしくお願いします。

  • Access コンボボックスの絞り込み後の表示

    Access2002を使用しております。 コンボボックスAに連動したデータを絞り込みさせるコンボボックスBがありますが、一旦入力後は、コンボボックスAの値にかかわらずコンボボックスBに入力したデータを表示させるにはどうしたらよいでしょうか? 例として、次の3つのテーブルを基にデータベースを作成しております: メインテーブル フィールド名: ID 社名 担当者 社名テーブル ID   社名   住所 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    A社 2    B社  担当者テーブル ID   社名ID   担当者名  電話番号 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    1      木村 2    2      佐藤 3    1      田中 4    2      斎藤 メインテーブルを基にしてフォームを作成し、 「メイン」というフォーム名にして 「社名」「担当者」をフィールドのコントロールをコンボボックスに変更しました。 「社名」フィールドの値集合ソースを「社名テーブル」から引き出し SELECT [社名テーブル].ID, [社名テーブル].社名 FROM 社名テーブル; 列数2  で設定し、社名をコンボボックスで選択できるようにしました。 そして 「担当者」フィールドの値集合ソースを「担当者テーブル」から引き出し SELECT 担当者テーブル.ID, 担当者テーブル.担当者名, 担当者テーブル.社名 FROM 担当者テーブル WHERE (((担当者テーブル.社名)=forms!メイン.社名)); で設定しました。 「社名」フィールドの「更新後処理」で Private Sub 社名_AfterUpdate()     Me!担当者.Requery End Sub を設定しました。 「メイン」フォームをフォームビューで開き、「社名」コンボボックスで「A社」を選択すると 「担当者」コンボボックスで「木村」と「田中」が表示されるので、「木村」を選択します。 次のレコードに移り、「社名」コンボボックスで「B社」を選択すると 「担当者」コンボボックスで「佐藤」「斎藤」が表示されるので、「佐藤」を選択します。 さて、「佐藤」を入力した時点で、前のレコード(「A社」「木村」を選択)に戻ると 「担当者」欄が空欄で表示されます。 メインテーブルには全てデータは入力されています。 データ入力時は「担当者」コンボボックスは「社名」コンボボックスで選択した値に連動させたいのですが、 このようにデータ入力済みの場合は 最初のコンボボックスの値にかかわらず(この場合は直近に選択した社名がA社・B社のいずれかであろうとも) 入力済みのデータ(「木村」「佐藤」)がフォームに表示されるようにしたいのですが 何か良い方法はないでしょうか? 出来れば入力専用と読み取り専用のフォームを2つ使用するのではなく、1つのフォームで事足りればありがたいのですが・・・

  • ウェブで入力される漢字の社名データを50音順に並べたい

    ウェブのフォームから入力された多くの社名のデータを、 DB上では自動的に50音順に並べて蓄積したいと思っています。 フリガナを入力させずに上記を実現させるような方法、 もしもご存じでしたら教えていただけませんでしょうか!?

  • Access 指定項目のみの削除

    Accessのレコード削除についてです。 例えば商品テーブルに数値型のID(主キー)、テキスト型の商品名、テキスト型の産地の3カラム構成のテーブルがあったとします。 レコード削除の場合、Excelでいうと行削除のように該当IDの行に含まれる情報をすべて削除すると思うのですが、 これを例えばID番号は残し、商品名と産地のみ削除する…のは可能なのでしょうか。 ちなみに削除を行うのはテーブル上ではなく、新規レコード追加・編集ができる入力用のフォームからボタン操作で行いたいです。 また、サブとしてテーブルとソースを連結させた一覧表示できるフォームにも反映させたいです。→現状は規定値の0が表示されるため、データがなくなった場合0ではなく新規作成時に振られるID番号と同じ1 を表示させたいのですが、なかなかうまくいかず… ぜひご教示ください。

  • Access アクセス VBA レコード追加

    Access フォームからのレコードの追加方法を教えてください。 テーブル1 ・ID(主キー) ・窓口 ・コストセンター ---------- テーブル2 ・コストセンター(主キー) ・目的 ---------- リレーションシップ テーブル1のコストセンターとテーブル2のコストセンターを一対多 ---------- メインのフォームに”ID”を入力したときにテーブル1に一致するレコードがない場合、新規登録用のフォームが表示されるようになっています。 新規登録用のフォームにレコードを入力してもテーブルに反映されません。 新規登録用のフォームは下記のように作成しています。 また、フォームに”コストセンター”を入力したときに入力したレコードがテーブル2にあっても自動で”目的”が表示されません。 メインフォームにはサブフォームで各テーブルが表示されています。 フォーム ・ID(初期値•••メインで入力したID) ・窓口 ・コストセンター ・目的 ・コストセンター(非表示) 上から順に ・テーブル1 ・テーブル1 ・テーブル2 ・テーブル2 ・テーブル1

  • access2003のエラーについて!!

    access2003のエラーについて!! ACCESSでデータを入力中に突然テーブルのレコードが「レコード削除された」のメッセージが表示され、レコードが消えてしまいました。 また、フォームでは、レコードが表示されていないにもかかわらず、データが表示されます。 新規にレコードを作製しようとしても「レコードは削除されています」のメッセージが表示され、 作成できません。 この状態を、元に戻す方法はないでしょうか?

  • ACCESS2000で新規レコードを自動表示

    お願いします。 ACCESS2000を使用しています。 フォームを使用してレコードにデータを登録したいのですが、 フォームからテーブルを開いた時に常に新規レコードが表示されるようにできませんか? 通常ですと、1レコードからの表示になると思います。 (レコードの移動ボタンを消して、新規レコードのみの表示にさせたいのです。)

  • アクセスのフォームで

    アクセスのフォームで、この様に、"品番"、"設備名"、"単価"、"担当者"のテーブル(1000レコードほどあります)のフォームがあります。 このフォームを開いた時には、1レコード目が表示されますが、下に一覧が全て表示(100以上は次のページ)され、検索フォームに品番、又は、設備名を入力すると、絞りこまれて表示される様にできますか? 又、下の一覧の担当者の右に"編集ボタン"を置きボタンを押すと、左のデータを編集できる様に(編集は上のフォームで行う)できますか? 説明がへたくそで申し訳ありませんが、誰か教えて頂けませんか? よろしくお願いします。