- ベストアンサー
Accessデータ並べ替えをハイブリッドにしたい
- Access 2007 PROFFESSONALを使用している場合、1つのテーブルで複数のクエリと複数のフォームを作成していますが、1つのテーブルで1つのクエリによる複数のフィールドを切り替えて、1つのフォームで表示させたいと思っています。
- 具体的には、顧客名簿テーブルに取引先、県名、商品名、入庫日というフィールドがあり、顧客名簿クエリを使用してこれらのフィールドで並び替えたデータを顧客名簿一覧フォームに表示させたいと考えています。
- しかし、現状ではコンボボックスを使用してフィールドを切り替えてもデータが表示されず、問題が発生しています。解決方法をご教示いただけると幸いです。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (7)
- chayamati
- ベストアンサー率41% (260/624)
- chayamati
- ベストアンサー率41% (260/624)
回答の各所にナビゲーションと表現しましたが、正確にはナビゲーションウィンドウのことです。 画面の左端にあり、テーブル名、フォーム名、レポート名が一覧表示されます。 1.見積書登録サブ(見積明細)の作成 [ナビゲーション内の見積明細]→[作成リボン]→[その他のフォームリボンの右端▼]→[複数のアイテム] 添付はここまでの流れです。 次の行が行が記述漏れでした。すみません →[作成された見積明細を右クリック]→[デザインビュー] 続いて →[見積明細ラベル、IDラベル、ID、見積書IDラベル、見積書IDを一括削除(DEL)] -------------------------------------------------- ■申し訳ないですが、以降が分からなくてできていません。それと「フォームヘッダーの直下にアイコンができています」「(スペースの調整)アイコンがアクティブになりませんが」。 ------------------------------------------- →[フォームヘッダー、詳細のボックスをドラッグで捕まえる] →[配置リボン]→[スペースの調整の右端▼]→[なし]→[何もない場所をクリックしてフィールドを開放]
- chayamati
- ベストアンサー率41% (260/624)
フォームの作成 1.見積書登録サブ(見積明細)の作成 [ナビゲーション内の見積明細]→[作成リボン]→[その他のフォームリボンの右端▼] →[複数のアイテム]→[見積明細ラベル、IDラベル、ID、見積書IDラベル、見積書IDを一括削除(DEL)]→[フォームヘッダー、詳細のボックスをドラッグで捕まえる] →[配置リボン]→[スペースの調整の右端▼]→[なし]→[何もない場所をクリックしてフィールドを開放] →[行No.を左上端にドラッグ]→[フォームヘッダーの高さを低く]→[詳細欄の高さを低く] →[フォームフッターにテキストボックス明細合計を配置] →[明細合計のデータタグ欄に=sum(金額)と入力]→[閉じる]→[はい] →[明細合計]→[イベントタグ]→[クリック時の右端の…]→[コードビルダー]→[OK] →[Private Sub 見積金額_Click()とEnd Subの間の行の間に Parent!見積金額 = 明細合計 と入力 →[見積書登録サブと改名]→[OK] 2.見積書登録の作成 [ナビゲーション内の見積書]→[作成リボン]→[その他のフォームリボンの右端▼]→[複数のアイテム] →[IDラベル、IDを一括削除(DEL)]→[フォームヘッダー、詳細のボックスをドラッグで捕まえる] →[配置リボン]→[スペースの調整の右端▼]→[なし]→[何もない場所をクリックしてフィールドを開放] →[見積書を見積書登録と改名→[詳細欄の高さを低く] →[フォームのナビゲーション内の見積書登録サブをフォームフッターのへドラッグ] →[警告を無視してOK]→[フォームフッターの何もない所] →[デザインリボン]→[プロパティーシート]→[書式タグ]→[既定のビューを単票から帳表に変更] →[見積書登録と改名]→[OK] 以上で基本パターンが出来ました。 必要に応じて得意先マスタのフィールドを追加することもできます。 その他 チェックすべき項目 1.書式タグ内 ・境界線スタイル ・レコードセレクタ 2.データタグ内 ・追加の許可 ・削除の許可 ・更新の許可 3.イベントタグ内 ここではVBAの起動のタイミング取得 4.その他 ・名前:ボックス名 ・ヒントテキスト:ツールにマウスカーソルを近づけた時のような動作をするので、項目の説明を記述 ・タブ移動順:データ入力でエンターキ後移動先を定義 ・タブストップ:エンターキ後スキップ設定が出来る ・縦書き:文字列のみ レポートも似たような流れで作成します。 如何でしょうか
補足
chayamatiレベル11様 「取り急ぎのご報告です。」 複数のアイテムを選択してのフォームを作成したことがなく手がストップ知てしまいました。 ■フォームの作成では以下のポイントで止まっています。 フォームの作成 1.見積書登録サブ(見積明細)の作成 [ナビゲーション内の見積明細]→[作成リボン]→[その他のフォームリボンの右端▼] →[複数のアイテム]→[見積明細ラベル、IDラベル、ID、見積書IDラベル、見積書IDを一括削除(DEL)] ■申し訳ないですが、以降が分からなくてできていません。それと「フォームヘッダーの直下にアイコンができています」「(スペースの調整)アイコンがアクティブになりませんが」。 →[フォームヘッダー、詳細のボックスをドラッグで捕まえる] →[配置リボン]→[スペースの調整の右端▼]→[なし]→[何もない場所をクリックしてフィールドを開放] 追伸、本件とは関係ないですが、画像(種類)のOkwaveドキュメント内への貼り方を教えて頂けませんでしょうか。
- chayamati
- ベストアンサー率41% (260/624)
>貼り付けて頂きました画像の通りに作成できました。 見積書と見積明細、商品マスタと見積明細も参照整合性の定義が出来ましたね ルックアップの設定も出来たらテーブルの仕組みが理解出来た事になります。 次にフォームの作成ですが、より良いフォームにするためにテーブル仕上げを少し フィールドのプロパティー(設定枠の右端クリックから始める ・書式:データ型が日付/時刻のフィールドにExcelと同じge,yy,m,d,aaa,h:m:s ・定型入力:データ型が日付/時刻のフィールドに:/の入力省略できる設定可能 :郵便番号、電話番号入力形式をせてい可能 ・表題:フォーム上、レポート上で 各々のボックスの表題はフィールド名のラベルが表示されるが ここでの設定が優先される ルックアップ定義したフィールドに有効 ・規定値:計算対象となるフィールドには0に設定 ・入力規則:添付のように許容値設定 ・スマートタグ:使用した事がありません。 次回フォームの作成に入りますが全くの我流になります。
補足
chayamatiレベル11様 完全な後追いになってしまっています。テーブルの「フィールド値」設定の重要性を改めて知る機会になりました。アドバイスを頂きました文面を概ね理解できましたので、ご返答させていただきました。既に、次のアドバイスを頂いていますので、早速取り組ませて頂きます。 追伸、昨日でしたがリレーショナルの理解を深めたいと図書館へ行ってきました。該当の書籍が1冊しかありませんでしたが、少し理解が深まった感じです。テーブルの構成が大事になりそうですが、こちらは経験が必要だと感じております。
- chayamati
- ベストアンサー率41% (260/624)
>テーブルをクエリで以下の通りに細い線で結びました。 >結合プロパティーで「1」にチェックが入った状態にあります。ここで止まっています。 この「1」の意味がよくわかりませんでしたがリレーションシップが確立出来ないのですか 参照整合性のリレーションシップの要件は添付図で得意先マスタのIDが重複無し(主キーかIDのインデックスが重複無し)です。
補足
chayamatiレベル11様 「リボン」のデータベースツールタブでリレーションシップを選択して作成できました。最初、勘違いしてクエリで作成していましたので、結合プロパティーが起動しておりました。貼り付けて頂きました画像の通りに作成できました。尚、ID「主キー」は全てオートナンバー型で、フィールドに配置してあるコードは「数値型」になっています。 お手数をお掛けしております。宜しくご指導をお願いします。
- chayamati
- ベストアンサー率41% (260/624)
前向きな姿勢有難うございます。 >リレーションシップの理解不足もあり自信を持てていないこともあり Excelとの最大の相違点がこのリレーションシップです。 先ずリレーションシップから始めましょう ・得意先マスタ(ID,得意先名,得意先コード,郵便番号,都道府県,住所,フリガナ) ・見積書(ID,見積No.,得意先ID,見積日,受注日,納期,納入日) 上記の得意先.IDと見積書.得意先IDをリレーション定義をします。 以下の流れはクリックで進めます。 [データベースツール]→[リレーションシップ]→[空白部分を右クリック] →[テーブルの表示]→[得意先マスタをダブルクリック]→[見積書をダブルクリック] →[閉じる] →[得意先マスタ内のIDから見積書内の得意先IDへドラッグ]→[参照整合性]→[作成] 同じ流れで見積明細、商品マスタにも摘要します。 ここまでは完了されましたね 添付のように1:∞の図になっていますか 見積書に得意先名等の項目が無いですがこのリレーションにより参照します また各テーブルのID(オートナンバー型)の管理もご心配でしょうが これも、テーブルのデザインビューフィールドにルックアップ機能で解消します。 ではテーブルの設計です。 テーブルはExcelデータをインポートするだけで出来上がりますが、テーブルを 丁寧に設計することにより、フォーム、レポート作成が楽になります。 得意先マスタで ・ID:オートナンバー型 自動採番で、フォームmレポート上に表示しません ・得意先名:インデックスで重複なしと定義して重複登録を回避します ・得意先コード:フォームまたはレポートに表示順くらいの用途ですので無くてよい ・郵便番号,都道府県,住所:住所入力支援機能で宛名作成ソフトのように郵便番号と住所の自動変換が可能 ・フリガナ:得意先名入力でフリガナが生成される ・その他:IME入力モード、IME変換モード定義で全角半角の切り替えが不要になります ・※数値のフィールドに空白もしくは数値以外の文字が一つでもあれば集計でエラーになるため0を規定値にする 見積書の得意先IDにルックアップでコンポボックス定義することで実態は長整数型だが表示を得意先名にする [見積書のデザインビュー]→[得意先ID]→[ルックアップ]→[表示コントロールの右端のV] →[コンボボックス]→[値集合タイプ]→[テーブル/クエリ]→[値集合ソースの右端のV] →[得意先]→[列数を2]→[列幅を0] ※列幅をフィールド毎に順にコンマ区切りでCmで設定 列幅0は非表示 たいへん舌足らずで申し訳ありませんが、ご不明の点はご遠慮なくどうど
- chayamati
- ベストアンサー率41% (260/624)
>顧客名簿(取引先、県名、商品名、入庫日) AccessはExcelのような表計算言語と違うデータベース言語です。 Accessを有効に活用するために、テーブルを再構築しましょう 固定テーブル(マスタ)と履歴テーブル(トランザクション)意識します。 1.マスタテーブル ・得意先マスタ(ID,得意先名,得意先コード,,郵便番号,都道府県,住所,フリガナ) ・商品マスタ(ID,商品名,商品コード,標準単価,フリガナ) 2.トランザクションテーブル ・見積書(ID,得意先ID,見積日,受注日,納入日) ・見積明細(ID,見積書ID,商品ID,数量,単価,金額) ※各テーブルの最初のIDは各テーブル作成時に自動で作成される主キー ※得意先ID,見積書ID,商品IDは各々得意先,見積書,商品の主キーとリレーションで結ぶ 納得いただけたでしょうか まだ多くの説明不足があります。何回かのやり取り解決していきたいのでコメント下さい。
補足
chayamatiレベル11様 お世話になります。 テーブルをクエリで以下の通りに細い線で結びました。結合プロパティーで「1」にチェックが入った状態にあります。ここで止まっています。 顧客先マスタ「ID」― 見積書「得意先ID」 見積書「ID」― 見積明細「見積書ID」、商品マスタ「ID」― 見積明細「商品ID」 正直、リレーションシップの理解不足もあり自信を持てていないこともあり、単フォームでの利用が中心になっておりました。これを機会に自信を持ちたいと思っています。ご指導お願いします。
お礼
chayamatiレベル11様 大変ご面倒をお掛けしています。OKwaveの操作未熟もあります。このままでは、甘え過ぎが露骨でいけないと感じました。それと、少し勉強が必要なところも明確に分かりましたので、更にアドバイスをお願いする機会があれば、「同じタイトル=Accessデータ並べ替えをハイブリッドにしたい」で再質問させて頂きます。尚、今回のアドバイスは大変有益であり、Accessの使い方を考え直す良い機会になりました。勝手ながら、この時点で問題解決としたいと思います。私にとってのベストアンサーでした。
補足
chayamatiレベル11様 ご面倒をお掛けしますが、質問する「Accessデータ並べ替えをハイブリッドにしたい」で画像を送ります。 「回答する」画面で画像取り込みボタンが分かりませんでしたので。すいません。