- ベストアンサー
アクセスのフォームについて
アクセスのフォームについて教えてください DATAテーブルがあるとします。そのDATAテーブルの、すべてではなく ある項目5種類だけ表示したいと考えています。 ちなみにテーブルのレコードがいくつあるかはわからない状態で すべてのレコードを列挙する予定です。 クエリは訳あって使用できないのが前提なので、VBAでそれを可能としたいのですが ... フォームのレイアウトは下のような感じです =================================================================== DATA画面 AAA BBB CCC DDD EEE FFF GGG HHH III --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- 以上がDATAです =================================================================== AAA BBB... が項目名です --- がレコードのそれぞれの明細です。 明細をすべて表示したら"以上がDATAです"と表示して終了です。 前にも書きましたがクエリは使用できません。VBAで実現したいとおもいます。 皆さんすみませんが宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 レポートではなくフォームですか? データ数が不定ということであれば、リストボックスを使って表示するということでしょうか。 その場合は、リストボックスの各プロパティを次のようにします。 値集合タイプ:"テーブル/クエリ"を選択 値集合ソース:[…]ボタンからクエリビルダで設定。具体的には、 "SELECT 項目1, 項目2, ・・・ FROM テーブル名" になるでしょうか。 列数:表示する項目数 列見出し:"はい"を選択 列幅:見栄えよく、適当に あとはリストボックスのすぐ下に、"以上がDATAです"というラベルを置けばいいでしょう。 ちなみに余談ですが、VBAではクエリとまったく同じことが出来ます。 クエリを作ると、SQLビューでSQLステートメントが見られます。 で、このSQLステートメントをVBAで、 DoCmd.RunSQL "SQLステートメント" と自分で書けば、クエリを実行したのと同じになります。 ただし、SQLビューと少し違うのは、 ・改行しているところは半角スペースを入れてそのまま繋げる ・最後の";"は不要 ・全体を""(ダブルクォーテーション)で括る というところです。
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
フォームのRecordSourceに、「select AAA,BBB,CCC,DDD,EEE from DATA」と設定するだけで、済む話のような気がします。 「クエリが使用できない」といっている「クエリ」が、「クエリ・オブジェクト」の事で、「SQLクエリ」はOKならですが。 SQLクエリも許されないとすると、DAOで、テーブルのRecordsetをオープンして、指定のFieldを取得するループを書いて、ListboxかTextboxに突っ込むとか。 Recordsetの開き方とか、Textboxへの設定法の詳細は、Accessのヘルプをどうぞ。 ところで、<クエリが使えない訳>って、どんな理由なんですか? とっても興味あるんですが。