SELECT SUMを 計算させると ゼロしか 出てきません。
どこが悪いのでしょうか?
日付 出金 氏名
2012/12/10 540 安田
2012/12/10 1020 斉藤
2012/12/10 970 TOM
2012/12/11 650 池田
2012/12/11 2010 南
2012/12/12 350 林田
2012/12/12 1200 加藤
のようなテーブルがあり
Private Sub コマンド_click()
Dim Db As Database
Dim SQL As String
Dim rs As Recordset
Dim gokei As Long
Set Db = CurrentDb
SQL = "SELECT Sum(出金) as gokei FROM テーブル WHERE 日付= #" & [Forms]![フォームアルファ]![テキスト] & "# "
Set rs = Db.OpenRecordset(SQL)
MsgBox gokei
End Sub
を フォームアルファに 新しく作ったコマンドボタンのクリック時に 書きました。
これを テキストの日付を変えておいて いろいろ試しても ゼロのメッセージしか出ません。
WHERE以下が 間違っていないか 試しに
Private Sub コマンド_click()
Dim Db As Database
Dim SQL As String
Dim rs As Recordset
Dim Count As Long
Set Db = CurrentDb
SQL = "SELECT (出金) FROM テーブル WHERE 日付= #" & [Forms]![フォームアルファ]![テキスト] & "# "
Set rs = Db.OpenRecordset(SQL)
If rs.EOF Then
Count = 0
Else
rs.MoveLast
Count = rs.RecordCount
End If
MsgBox Count
End Sub
を 実行すると ちゃんと 正しいレコード数が 表示されます。
「出金」のデータ型は 長整数になっています。
どこが 悪いのでしょうか? 目的は 指定した日付の 出金の合計を取り出したいのです。
.
.
.
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
No1です。
少し説明すると、SQL文中のgokeiと、
変数宣言してのgokeiは当然ながら
別物ですから、
MsgBox gokei
のgokeiは変数宣言されたgokeiです。
SQL文中のgokeiにアプローチするには
この場合ならば、
rs!gokei
としてSQL文中のgokeiにレコードセットから
アプローチする必要があります。
つまり、変数としてのgokeiにSQL文中の
gokeiのデータを伝える手順が抜けている
ということです。
ここまで書けば、おそらく気がつかれるとは
思いますが。
No.2
- 回答日時:
SQL文には問題は有りません。
VBAの変数 goukei とSQL文中の goukei とはまったく無関係です。
なので、DAOでの処理の様ですので・・、☆は変更・追加点
Private Sub コマンド_click()
Dim Db As Database
Dim SQL As String
Dim rs As DAO.Recordset ’☆Recordset オブジェクトはADOにも有るため
Dim gokei As Long
Set Db = CurrentDb
SQL = "SELECT Sum(出金) as gokei FROM テーブル WHERE 日付= #" & [Forms]![フォームアルファ]![テキスト] & "# "
Set rs = Db.OpenRecordset(SQL)
MsgBox Rs!gokei ’☆
Rs.close:set rs = nothing ’☆後始末
Db.close:set Db = nothing ’☆
End Sub
のようになります。
でも今回の場合は、レコードセットを開かずともDsum関数で
Dsum("出金","そのテーブル名","日付 = #" & [Forms]![フォームアルファ]![テキスト] & "# ")
でも良いかもですね。
No.1
- 回答日時:
>Dim gokei As Long
これを削除するかコメントアウトして、
MsgBox rs!gokei
とする、でどうでしょうか。
gokeiはrsのフィールド名です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「振り替えする」の使い方を教...
-
EXCEL 前回保存日時を変更する...
-
契約者固有IDと個体識別番号の違い
-
ニコニコ動画のメアド変更がど...
-
ETCマイレージサービスのパスワ...
-
ヤフーのメールアドレスの変更...
-
サブフォームのフィールドの幅...
-
TikTokについてです! メアドで...
-
ビュースイカカードでメールア...
-
Java1.3はJava1.4に移行
-
イーバンク銀行VISAゴール...
-
Yahoo!IDを変えたいのですが、...
-
GoogleアカウントのIDを変更す...
-
domのstyle
-
だいぶ前までは遡れなかったシ...
-
ITIL 変更管理と構成管理について
-
access2003 テーブル名・フォー...
-
外付けHDD 名前の付け方
-
教えて!gooに関して質問があり...
-
PCのユーザー名を変更する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マイクロソフトアカウントのメ...
-
EXCEL 前回保存日時を変更する...
-
「振り替えする」の使い方を教...
-
UTF-8ってBOMなしをBOM付きにし...
-
ETCマイレージサービスのパスワ...
-
ヤフーのメールアドレスの変更...
-
BD-REドライブの名前の変更が出...
-
IPアドレスを変更するプログラム
-
USJ入場日当日の日付変更は可能?
-
就職活動時のメールアドレス変...
-
外付けHDD 名前の付け方
-
教えて!gooに関して質問があり...
-
どうして、VBA動作後に固まるの...
-
サブフォームのフィールドの幅...
-
メールの回復がしたいと思います
-
ビュースイカカードでメールア...
-
カカオIDって変更できるんでし...
-
JR西日本 wester会員 ...
-
OCNでのメールアドレスの変更
-
ポケモンGO!は地域にもよるか...
おすすめ情報