実現したいこと
パススルークエリを使ったクエリをサブフォームとして主フォームに入れてリンク親フィールドとリンク子フィールドを入力しようとしたいのですがエラーが発生してしまい連結できない状況です。
主フォームにある見積IDと連結することで該当する項目のみフォームに表示させたいのですがどのように変更すれば見積IDと連結させたパススルークエリのみの内容をレポートに表示させれるでしょうか?
初心者で申し訳ございませんが、ご教授の方よろしくお願いします。
発生している問題・分からないこと
主フォームは見積一覧を表示させたいです。
主フォームにある見積番号を表示させその見積番号に該当する各費用のレコードを表示、最後にその合計値を表示させたいです。
各費用の合計は表示でき、リンク親フィールドとリンク子フィールドを入力することで該当するレコードを表示させることはできましたが、各費用の合計を表示させたクエリだけは連結できません。
該当のソースコード
サブフォーム フィールド リンク ビルダーを押した際のエラーコード 「アプリケーション定義またはオブジェクト定義のエラーです」 直接レコードに入力した際のエラーコード 「パススルークエリまたは非固定列のクロス集計クエリを、サブフォームまたはサブレポートのレコードソースとして使うことはできません。サブフォームまたはサブレポートをクロス集計表クエリと連結する前に、クエリの"ColumnHeadings/クロス列見出し"プロパティを設定してください」
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
パススルークエリを使いたいのはラグが発生せずすぐにデータを表示できるからです。合計値そのものを入力したいわけではないのですが、計算は自動でしてほしいです。
・パススルークエリを使わずaccessで直接クエリを作りサブフォームとして実行
→実行自体はできるのですがラグが長く実用的ではないです。
・主のレポートを構成しているQ_見積をパススルークエリにする
→見積自体の新規作成ができなくなるためパススルークエリにすることができません。
・パススルークエリをクエリオブジェクトとしてACCESSに登録し、accessのクエリとして実行
→変化なし
・accessのテーブルを作り、その中に各費用の合計値を入力した内容を入れそれをサブフォームとして入れる
→テーブルに値を入れるだけなので、費用の数値が変わった際に更新されない
補足
Microsoft Access 2021(.accdb)
・Accessのデータ自体はSQLサーバーである SQL Server 2022 express にて保存。Accessとリンク済み
接続先(別のPC側)
・リモートデスクトップ接続にて操作している
・SQL Server Management Studio 19
・SQL Server 2022 express
SQL Server 認証にて接続
・Windows Server 2022 Standard
・名前付きインスタンス
レポート 見積(主 見積番号)
Q_見積加工,Q_見積材料,Q_見積初期費用,Q_見積運賃(主キー 見積加工(Q_の後ろ)ID 見積番号)
各費用の合計を求める式は以下の通り
IIf((((SELECT Sum(Q_見積加工.金額) FROM Q_見積加工 WHERE 見積番号=見積.見積番号)Is Null)),0,(SELECT Sum(Q_見積加工.金額) FROM Q_見積加工 WHERE 見積番号=見積.見積番号)) AS 加工費合計
加工費であれば、Q_見積加工にある見積番号と見積にある見積番号が一致する見積番号の金額をQ_見積加工から求める
回答1件
あなたの回答
tips
プレビュー