Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


489 / 9994 ←次へ | 前へ→

【12816】Re:帳票で階段状に塗り潰し
回答  かるびの  - 15/4/16(木) 1:10 -

引用なし
パスワード
   >フォームにある、加工順とテキストボックス(数)に数字を入れチャートのようにしたいのですが
>(数)のボックスの更新後処理に
>
>Me!TEXT = Mid("ABCDEFG", Me!累計 = DSum("数", "チャート用", "加工順<=" & [加工順]), Me!数)
>
>としてみましたがプロシージャの呼び出し、または引数が不正です。(Error 5)
>と、なってしまいます
>スペースの入力のまえにこれができないとダメかと思いやっています
>どこがいけないのでしょうか

 確実にだめだと言えるのは、Mid関数の第2引数です。

 Mid関数の第2引数は、文字列の、取り出したい部分の開始位置を指定します。
つまり、先頭から何文字目以降を取り出したいのかということです。
 したがって、第2引数は、最小で1となり、それより小さい数をとることはありません。

 上記のコードでMid関数の第2引数に指定されているのは、
   Me!累計 = DSum("数", "チャート用", "加工順<=" & [加工順])
という式ですが、これは条件式です。
 この式が成り立つならば、この式はTureを返し、成り立たないならば、Falseを返します。
 アクセスやVBAでは、Trueを数値で表すと-1に、Falseは0となります。
 言い換えると、条件式が成り立つならば、
「Me!累計 = DSum("数", "チャート用", "加工順<=" & [加工順])」という式は
-1を意味します。

 第2引数は、最小でも1なのですから、第2引数を-1とか0にしたら、エラーになります。


>Private Sub 数_AfterUpdate()
>
>累計 = DSum("数", "Q_NC", "加工順<=" & Me!加工順)
>
>Me!TXET = Mid("ABCDEFGHIJKLMNOPQRSTUVWXYZ", 累計, Me!数)
>
>Me.Refresh
>Me.Requery
>End Sub
>という形でコードを書きました
>しかしエラーは出ないのですが累計やTXETの表示がおかしいです

 原因は、「累計 = DSum("数", "Q_NC", "加工順<=" & Me!加工順)」のコードでは
「累計」変数の値が、累計になっていないからだと思います。

 第1に、このコードだと、
「加工順」フィールドの値で昇順に並べ替えている場合の
「数」フィールドの累計を求めていることになりますが、
並べ替えは「加工順」フィールドの順でいいのでしょうか。

 第2に、
   ID 数 加工順
    8  2    1
    9  3    4
    5  6    8
となっている場合の「数」フィールドの累計値は、
   ID 数 加工順 累計値
    8  2    1    2
    9  3    4    5
    5  6    8   11
となりますが、こうなっているときに
   ID 数 加工順
   11  4    3
というレコードを追加すると、「累計」変数の値は、
   ID 数 加工順 「累計」変数
    8  2    1       2
    9  3    4       5
    5  6    8      11  
   11  4    3       9
となります。
 上記コードを実行しても、カレントレコードについての累計が求められる
だけであって、
他のレコードにおける累計の値は修正されません。
つまり、IDが11であるレコードを追加しても、
IDが5であるレコードの「累計」変数の値は、15になるのではなく、11のまま
変わりません。

 この2点あたりがうまくいかない原因ではなかろうかと思われます。


 対策ですが、
累計の算出、文字列の取り出し、取り出した文字列へのスペース付与を
すべてクエリで行うことになると思います。

 スペース付与については、Space関数やString関数が使えると思います。


 それから、
これまで回答はこれっきりというつもりで回答してきたので、
敢えて触れなかったのですが、
そちらの現状が今ひとつよくわかりません。
 なので、そちらの現状を示してもらった方がいいと思います。
 つまり、テーブル構成(テーブル名、主なフィールド名及びそのデータ型。主キーフィールド)
及びフォーム構成(レコードソース、主なコントロール名及びそのコントロールソース)
を提示してください。
 レコードソースがクエリの場合は、そのクエリのSQL文も提示してください。
クエリのSQL文は、当該クエリのSQLビューの内容をそのまま貼り付けてください。
625 hits

【12803】帳票で階段状に塗り潰し せいさん 15/4/11(土) 13:05 質問[未読]
【12804】Re:帳票で階段状に塗り潰し せいさん 15/4/11(土) 15:22 発言[未読]
【12810】Re:帳票で階段状に塗り潰し かるびの 15/4/14(火) 2:51 回答[未読]
【12812】Re:帳票で階段状に塗り潰し せいさん 15/4/14(火) 22:01 質問[未読]
【12813】Re:帳票で階段状に塗り潰し かるびの 15/4/15(水) 0:45 回答[未読]
【12814】Re:帳票で階段状に塗り潰し せいさん 15/4/15(水) 14:14 質問[未読]
【12815】Re:帳票で階段状に塗り潰し せいさん 15/4/15(水) 18:11 発言[未読]
【12816】Re:帳票で階段状に塗り潰し かるびの 15/4/16(木) 1:10 回答[未読]
【12817】Re:帳票で階段状に塗り潰し せいさん 15/4/16(木) 15:47 質問[未読]
【12818】Re:帳票で階段状に塗り潰し せいさん 15/4/16(木) 19:54 質問[未読]
【12820】Re:帳票で階段状に塗り潰し かるびの 15/4/17(金) 1:20 回答[未読]
【12821】Re:帳票で階段状に塗り潰し せいさん 15/4/17(金) 18:14 お礼[未読]
【12822】Re:帳票で階段状に塗り潰し せいさん 15/4/17(金) 23:19 質問[未読]
【12823】Re:帳票で階段状に塗り潰し かるびの 15/4/18(土) 1:07 回答[未読]
【12824】Re:帳票で階段状に塗り潰し せいさん 15/4/18(土) 11:33 お礼[未読]

489 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free