レポート上に商品A、商品B、商品Cというテキストボックスがあってそれぞれのプロパティのコントロールボックスには以下の設定がしてあります。
=DSum("[商品A]","[抽出クエリ]")
=DSum("[商品B]","[抽出クエリ]")
=DSum("[商品C]","[抽出クエリ]")
商品A~Cそれぞれの合計値は正常に表示されるのですが、商品A~Cの合計値を別に設けたテキストボックス(総計)に表示させたいのですが、何も表示されません。
総計のコントロールボックスには以下の記述をしました。
=Sum([商品A]+[商品B]+[商品C])
Web検索で関数の使い方等を調べましたが、原因が分かりません。
どなたか、サポートをお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

原因はNullでしたか~



値がNullの時値を変換する関数として
Nz()というのがありますので
DSumの関数自体をNz(DSum("[商品A]","抽出クエリ"),0)とすれば
Nullの場合でも ゼロ が返されるので 今度はうまく行くと思いますよ。
    • good
    • 1
この回答へのお礼

nackfiveさん。
miffyです。
Nz関数を使ったら、今度は正常に表示されました。
ネットでSum NZでネット検索したら、使用方法が出てきました。
また、一つ関数を覚えることができました。
スペシャル感謝!!....._〆(・∀・*)ノ

お礼日時:2008/02/03 09:06

そうするとですね~


まず 最初に戻りますがSUM()関数は レポートフッタかヘッダでしか
使えなかったはずです。
そもそもSUMはレポートの元になっているソースに対しての
SUMなので今回の[抽出クエリ]とレポートのレコードソースは同じなのでしょうか?

それとDSUMで表示される3項目の中にNullが無いですか?
もしあると商品A+商品B+商品Cとしても Nullになってしまいます
ご確認下さい。
    • good
    • 0
この回答へのお礼

nackfiveさん。
miffyです。
ご丁寧に有難うございます。

DSUMで表示されてる3項目の中にNullがありました。
試しにその項目のフィールドに"1"を入れてレポートを実行させたら、正常の値が表示されました。
Nullの場合は、何かプロパティで設定をするのでしょうか?

お礼日時:2008/02/02 20:21

#3です



不思議ですね~ 私のやり方でも#1の方のやり方でも
本来正常に表示されるはずですので 他に原因があるとしか
思えません。

試しに、コントロールソースに=1としてプレビューしてみて
1が表示されますか?
あと 総計のテキストボックスはどこのセクションに配置していますか?
    • good
    • 0
この回答へのお礼

nackfiveさん。
お返事遅れて申し訳ありません。
総計のコントロールソースに=1としたら、正常に表示されました。
総計のテキストボックスは、詳細のセクションに置いてます。
=[商品A]+[商品B]+[商品C]に戻したら、何も表示されません。
どつぼにはまってます。

お礼日時:2008/01/31 20:57

確実な方法は 総計のテキストボックスに


DSumの式が記述されているコントロール名が
[商品A],[商品B],[商品C]だと想定した場合
=[商品A]+[商品B]+[商品C]
とすれば 表示されるはずです。

もし 表示されないとすれば 総計の
表示されるセクションが表示されない状態に
なっている可能性があります。
若しくは 総計の可視がいいえになっているとか。
    • good
    • 0
この回答へのお礼

nackfiveさん。
御回答有難うございます。
=[商品A]+[商品B]+[商品C]で記述しても、結果は同じでした。

総計のテキストボックスの可視は”はい”になっていますし、
プロパティをいろいろ見てみても、セクションが表示されない原因はないようです。

お礼日時:2008/01/29 23:07

#1です。

投稿前に試験はしていました。改めて試すと
=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]")
=Sum([商品A]+[商品B]+[商品C])
のどちらも上手く行きます。こちらのAccessのバージョンは2000です。
あと若干気になったのは「商品A」. . . .がフィールド名とコントロール名の両方に使われていることです。こちらでは問題ありませんがバージョンによってはバッティングするかもしれません。
別の策としては抽出クエリに新しいフィールド

[商品A]+[商品B]+[商品C] AS T

を作成し
=DSum("[T]","[抽出クエリ]")
としてどうでしょうか?「T」に別段意味はなくTotalでも合計でも何でも良いでしょう。
    • good
    • 0

=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]")



では拙いんでしょうか?
    • good
    • 0
この回答へのお礼

fuuten_no_nekoさん。
お返事遅れて申し訳ありません。
=DSum("[商品A]","[抽出クエリ]")+DSum("[商品B]","[抽出クエリ]")+DSum("[商品C]","[抽出クエリ]")
以上のようにプロパティ→コントロールソースを記述し直しましたが、結果は同じでした。

どうしてでしょう?

お礼日時:2008/01/28 20:01

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS2003のデータアクセスページの使い方について

イントラ内でACCESS2003のデータアクセスページを使いたい。

1.ACCESS2003のデータアクセスページを作成しました。
2.そのMDBファイルと、データアクセスページ(htmファイル)を、WINDOWS2000ServerのInetpub内のwwwrootフォルダの中へ入れました。
3.ここにはイントラ内のHPなどを置いています。(普通に見れています。)
4.クライアントから、データアクセスページのhtmファイルを見に行くと「データソースログオン」が立ち上がります。(パスワードを設定しています。)
5.パスワードを入れるとデータアクセスページ(htm)から、通常のアクセスのフォームのごとくデータ入力が出来る予定なのですが(泣)できません。(泣)

で、悩んでおります。

ACCESS2003のMDBファイルとデータアクセスページ(HTMファイル)をサーバーのwwwrootへ置いただけでは、データアクセスページを通してmdbファイルへの入出力は不可能なのでしょうか?

Aベストアンサー

MDBに接続されたAccessプロジェクトを開いている場合データアクセスページは自動的にそのデータベースに接続されてそのパスがデータアクセスページのConnectionString プロパティに設定されます。
ページを作成した後でデータベースを移動またはコピーした場合はConnectionString プロパティに設定されているパスを更新して新しい保管場所を設定する必要がありますがどうなっていますか?
そこを確認してみてください。

Qaccessのレポートのテキストボックス

accessのレポートのテキストボックスで文字数が多いと文字が入らず印刷時拡張を使ってもそのテキストボックスしか大きくならずアンバランスです,他のテキストボックスも一緒に大きくするか,文字を小さくしてテキストボックス内に入るようにするにはどうすればよいでしょうか?VBAを使ってもかまいませんので教えてください。

Aベストアンサー

こんにちは。

どういう感じのレポートか分かりませんが、
テキストボックスの高さを少し高くして改行ができるようにしては、どうでしょうか?
また、レポートの詳細のフォーマット時にテキストのフォント名、サイズは、変更できますよ。
例えば、そのテキストボックスの桁数を調べて、桁数が多ければ、フォントまたは、サイズを変更する。
ただ、これは、全テキストボックスをそうしたい場合は、記述が大変だし、
印刷するデータ件数が多い場合は、若干遅くなりますが...(^_^;)

こんな感じです。
レポートの詳細のフォーマット時で、

If Len(Me![テキストボックス名])> xx then ←何桁以上だった時
Me![テキストボックス名].FontName = "フォント名1" ←小さいフォント
Me![テキストボックス名].FontSize = xx ←小さく印刷する時のサイズ
Else
Me![テキストボックス名].FontName = "フォント名2" ←通常印刷するフォント
Me![テキストボックス名].FontSize = xx ←通常の指定のサイズ
End

これで出来ます。
よい回答じゃないかもしれないですけど、本職じゃないのでご勘弁下さい。
では。



では。

こんにちは。

どういう感じのレポートか分かりませんが、
テキストボックスの高さを少し高くして改行ができるようにしては、どうでしょうか?
また、レポートの詳細のフォーマット時にテキストのフォント名、サイズは、変更できますよ。
例えば、そのテキストボックスの桁数を調べて、桁数が多ければ、フォントまたは、サイズを変更する。
ただ、これは、全テキストボックスをそうしたい場合は、記述が大変だし、
印刷するデータ件数が多い場合は、若干遅くなりますが...(^_^;)

こんな感じです。...続きを読む

Qホームページ移転に伴う.htaccessの使い方ですがアップロードして

ホームページ移転に伴う.htaccessの使い方ですがアップロードして削除できなくなる事ないですか??また、さくらサーバーは.htaccess使えますか??

Aベストアンサー

.htaccessだけではなく、
ファイルはパーミッションによっては一旦削除できなくなると思いますよ・・・
使えないのにアップすると削除出来ないとか。

>さくらサーバーは.htaccess使えますか??
使えます。
.htaccessを使えない有料サーバってあるのでしょうか?・・・

QAccessのレポート上のテキストボックス値を設定したい

AccessのVBAを使っているのですが、作成したレポートに貼り付けたテキストボックスに値を入れることができません。

Report名.textbox名 = "設定したいデータ"

↑とすると「このオブジェクトに値を代入することはできません。」とエラーメッセージが出ます。
どのようにすれば、値を代入することができるのか教えてください。

Aベストアンサー

質問の意図が不明ですので、複数の回答を・・・。

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
  Me.テキスト0 = "AAA"
End Sub

Private Sub コマンド0_Click()
  DoCmd.OpenReport "レポート1", acViewDesign
  Reports("レポート1").Controls("ラベル0").Caption = "AAA"
  DoCmd.Close acReport, "レポート1", acSaveYes
End Sub

前者は、テキストボックスにレポートを表示、印刷する際に"AAA"を代入しています。
後者は、テキストボックスではなくラベルコントロールを利用して"AAA"をフォームのコマンドボタンで代入しています。

QAccessで作成したテーブルのOLEオブジェクトの使い方

Accessで作成したテーブルにデータ型(OLEオブジェクト型)で画像を取り込みできるようにしました。
取り込みした画像を開くためのフォームを作成して画像を開けるようにしました。
下記の内容です。

Private Sub Form_Open(Cancel As Integer)
Form.Caption = ProgName
End Sub

しかし「ビットマップ形式」ですと問題なく開くのですが、「JPG形式」ですと開けないのです。取り込みしたAccessテーブルのフィールドから直接だとひらけます。
Accessで作成したフォームから、「JPG形式」の画像を開くにはどうすればよろしいですか?
また、画像を1000件ほど取り込みすると大きいデータベースになってしまいます。Accessのデータベースのサイズは制限があるのかしら?
アドバイスいただけれは幸いです。

Aベストアンサー

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正しく表示されません
http://support.microsoft.com/kb/832508/ja

解決策としては JPEG を開ける OLE コンテナになるアプリケーションをインストールしておく。

Google「Access データベース サイズ 制限」で検索
http://www.google.com/search?hl=ja&num=50&q=Access+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E3%82%B5%E3%82%A4%E3%82%BA+%E5%88%B6%E9%99%90&lr=lang_ja

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正...続きを読む

QACCESS コンボボックス 抽出 テキストボックスに表示

初めての質問を投稿させていただきます。l
ACCESSのVBAにて分からないことがあるので、
質問を投稿させていただきました。

以下のようなテーブルがあります。
名称:番号:管理番号:価格
cake|NO.1|C1|200
cake|NO.2|C2|200
chocolate|NO.1|C3|300
chocolate|NO.2|C4|300
chocolate|NO.3|C5|300
cookie|(空白)|C6|100
フォーム上に、コンボボックスが二つ設置されており
最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。
また、二つ目のコンボボックスでは最初のコンボボックスで選択した名称に対する番号を選ぶことが出来ます。
------------------以下が疑問点です-------------------------
このフォームにはそれ以外にテキストボックスが設定されています。
名称と番号を設定した後に管理番号(重複なし)をテキストボックスに表示。
その後、管理番号を元に価格もテキストボックスに表示したいと考えておりますが、どのようなプログラムを組めばよろしいでしょうか?

初めての質問を投稿させていただきます。l
ACCESSのVBAにて分からないことがあるので、
質問を投稿させていただきました。

以下のようなテーブルがあります。
名称:番号:管理番号:価格
cake|NO.1|C1|200
cake|NO.2|C2|200
chocolate|NO.1|C3|300
chocolate|NO.2|C4|300
chocolate|NO.3|C5|300
cookie|(空白)|C6|100
フォーム上に、コンボボックスが二つ設置されており
最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。
また、二つ目のコンボボックスでは最初のコン...続きを読む

Aベストアンサー

> なぜ、連結列列を2としたか、考えてみてください。

大事なところは2度言いましたよ。。。 は冗談ですが


> (ご質問から想定される私の中での考える動きは確認したつもりでおりますが、意図と違っていましたらごめんなさい)

何か日本語になっていないですね


(ご質問から、・・・私の中で想定した動きは確認したつもりでおりますが、意図と違っていましたらごめんなさい)

まだ日本語化になってないですかね。

QAccess2000でFTPの使い方について。

Access2000のフォームから、実行のボタンをクリックするとFTPサーバに接続→ファイル取得→Accessテーブルに取込→FTPサーバのファイル削除→FTPサーバの接続切断という処理をしたいのですがどのようにしたらよいかわかりません。説明不足だとは思いますが、アドバイスを宜しくお願い致します。

Aベストアンサー

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一覧(詳細)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
v = ftp.GetDir("bussys/winnt/winnt-public") ' ディレクトリ一覧(ファイル名のみ)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") 'ファイル受信

end sub

実行には20秒ほどかかります。
実行前にはCドライブにtempというフォルダを作っておいてください。

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一...続きを読む

Qレポートのテキストボックスでこんなのを表示したいんですが

Access97にてレポートを作成しています。
レポート内のテキストボックスに単純に数値を表示したいのですが、
以下の要件を満たしたいんです。

・1000以上の数値ならカンマで区切る
・小数点以下の数値がない場合は整数部分だけ表示
・小数点以下の数値がある場合は小数点以下の数字を桁に応じて表示

「945」→「945」
「1283」→「1,283」
「10.42」→「10.42」
「8.2」→「8.2」

テキストボックスのプロパティ「書式」を「数値」、
かつ「小数点以下桁数」を「自動」にしても、なぜか全ての数値が
小数点以下2桁まで表示されてしまいます。

お知恵をおかしください。
よろしくお願いします。

Aベストアンサー

詳細部のフォーマットイベントを使います。
abs(数値-fix(数値))>0の場合は
 #,##0.00の書式
そうでない場合は
 #,##0書式
にしてみてください。

QRuby on Rails 「attr_accessor」 の使い方に

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状態になってしまうことです。
「:if => 項目?」を書いてみると、「undefined method」のエラーがでてしまいます。

どなたか対応策の分かる方がおられましたらご教授いただけないでしょうか?

下記に実際の問題箇所のモデルクラスのソースを書いておきます。

 class User < ActiveRecord::Base

   attr_accessor :NEW_USER_PW ← 追加したアクセサ

   # 追加したアクセサに対するチェック
   validates_length_of :NEW_USER_PW, :minimum=>4, :message=>"は%d桁以上を設定してくださ            
    い。", :on => :update, :if => :NEW_USER_PW?

 end

上記のチェック内の「:if => :NEW_USER_PW?」で落ちてしまいます。
入力がないのにチェックに引っかかるとまずいので、入力がないときだけ上記チェックを行えれば良いのですが・・・。

どうぞ宜しくお願い致します。

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状...続きを読む

Aベストアンサー

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.size > 0
end

また、ifにはprocオブジェクトを渡すこともできますので、
:if => Proc.new{|u| u.NEW_USER_PW.size > 0}
と書いてもいいでしょう。


NEW_USER_PWというインスタンス変数はすべて大文字を使用されていますが、
見る人によっては定数と勘違いします。
変数であれば小文字表記を利用するほうが良いかもしれません。

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.s...続きを読む

QACCESS レポート・テキストの高さ

レポートを作成しています。
元になるレコードソースは、
コード・品名・備考です。
備考は、複数行の入力があります。
このようなテーブルをもとにレポートを作成していますが、
コード・品名はテキストの高さは0.5で収まります。
備考は、レコードにより収まりきらないので、
”印刷時拡張”の機能を使い、表示させています。

これで十分なのですが、
例えば、コード・品名は高さ0.5 備考は高さ2 という表示になります
備考に併せて、コード・品名の高さを大きくする方法はありませんか?

どうかよろしくお願い致します。

Aベストアンサー

コード・品名の後ろに空白を足し、切りそろえて備考と同じ長さにする。コード・品名・備考の書式設定ですべて印刷時拡張にする。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報