2017-04-26 15 views
0

私はVB6でMS Access SQLが比較的新しく、私はちょうど私が必要とするものに合った質問を見ました。 )。しかし、私はまだ私のコードでそれを実装する方法を見つけることができません、私はかなり私はいくつかのコマンドや注文が不足していると確信しています。MSSQLの複数のテーブルからの総計と総計の合計

これは私が得たものである:

Qry = "SELECT pv_S.Id, Agenda.Company, pv_S.Fecha, Products.Descripción, " _ 
     & "pv_S.Cant, pv_S.PV, pv_S.Pagado, pv_S.User " _ 
     & "FROM Products " _ 
     & "INNER JOIN (Agenda INNER JOIN pv_S " _ 
     & "ON Agenda.CustomerID = pv_S.CustomerID) " _ 
     & "ON Products.ProdId = pv_S.ProdId " _ 
     & "WHERE pv_S.Fecha BETWEEN #" & Format(FromDate, "MM/DD/YYYY") & "# " _ 
     & "AND #" & Format(ToDate, "MM/DD/YYYY") & "# " _ 
     & "AND pv_S.User = '" & cboCombos(2).Text & "' " _ 
     & "ORDER BY Fecha" 

これは私が必要なものです:私は何をやっていることは恐ろしいです

Report From: 1/1/17 To: 3/1/17 


    FECHA USER Cant 
    1/1/17 Sam 50 
    1/1/17 Sam 60 
    1/1/17 Sam 20 
      Tot 130 

    2/1/17 Sam 80 
    2/1/17 Sam 80 
      Tot 160 

    3/1/17 Sam 50 
    3/1/17 Sam 10 
    3/1/17 Sam 20 
    3/1/17 Sam 70 
      Tot 150 

      GTot 440 

、データベースをループすることは非常識です。私は簡単な方法でなければならないことを知っている。

答えて

0

あなたは「一日の合計をカテゴリ別に合計する」と言っています。どのカテゴリ?あなたの出力例は、pv_Sからの3つのフィールドを示していますが、議題と製品からのフィールドはありません。

すべての3つのテーブルの詳細を要約計算と共に表示したい場合は、アクセスレポートを作成します。 RecordSourceは、未処理のデータレコードのクエリです。レポートのグループ化と並べ替えの機能を使用する。あなたの「カテゴリ」であるフィールドにグループセクションを追加してください。グループフッタにテキストボックスを置き、フッタには式=Sum([Cant])を付けます。

レポートに日付とユーザーのフィルタ条件を適用します。動的なパラメータ化クエリは決して使用しません。私は、VBAを使用してフィルタ条件を作成し、開くときにレポートに適用することを好みます。レビューAllen Browne Filter

アクセスレポートを使用できない場合は、どのようなレポートを使用しますか?なぜあなたはAccessの背後にあるVBAの代わりにVB6を使用していますか?

表示される出力配列を達成するためのクエリのみのアプローチでは、おそらく2つの集計クエリを作成し、それらのUNIONを生データレコードセットに組み込む必要があります。

+0

こんにちは、ありがとうございました。 「1日の合計金額」は別の回答の参考値ですが、スペースのためにアジェンダと商品のデータサンプルは含まれませんでした。私はアクセスデータベースを使用していますが、私の顧客はアプリケーションGUIだけを使用するので、私のアプリはvb6で完全に作られています。私はVB6内でそのVBAのことを使うことができるかどうかわかりません...あなたが言及しているUNIONの事はおそらく私が必要とするものです。あなたが言及したAllen Browneフィルターをチェックします。どうもありがとうございました。 –

+0

VBAはMS Officeアプリにパッケージされたプログラミング言語です。それは構文と語彙でVB6に似ているので、VB6の中では使われていません。 VB6でCrystalReportsやその他のレポートツールを使用していますか? Accessでレポートオブジェクトを作成し、VB6でそれらを操作できると思います。しかし、複数のユーザのデータベースの場合、レポートはデータテーブルファイルではなく分割フロントエンドになる必要があります。 – June7

+0

私はちょうどいくつかの研究を終え、VBAはオプションではありません.Allen Browne FilterはAccess用です。 CRについて...私はいつもすべての私のレポートをコードで行い、またすべてのアクセスSQLクエリはADO/ADOXを使ってVB6内で完全にコード化されています。しかし、これは私を得た... –