Access VBA質問箱 IV

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

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


483 / 9994 ←次へ | 前へ→

【12823】Re:帳票で階段状に塗り潰し
回答  かるびの  - 15/4/18(土) 1:07 -

引用なし
パスワード
   >ちなみに別フィールドでスペースを入れるとするとどういう感じで考えるとよあでしょうか

 こんな感じです。

SELECT ……
  ,Space(累計*2) AS スペース
  ,Mid(String(60,"■")
    ,累計+1
    ,予定日数
    ) AS 四角
  ,スペース & 四角 AS 表
FROM ……

 なお、「加工順」フィールドが1である場合や、
「加工順」フィールドや「累計」フィールド、「予定日数」フィールドが
Nullである場合は考慮していません。


 それから、累計フィールドが

>IIf(IsNull([加工順]),"",DSum("予定日数","Q_工程MC","加工順<" & [加工順])) AS 累計

となっていますが、これはまずいです。
 累計フィールドは、表フィールドにおいて数値として使うことになるので、
累計フィールドは数値でなければなりません。
 問題なのは、IIF関数の第2引数(Trueパート)が「""」となっていることです。
 累計フィールドは数値でなければならない以上、
累計フィールドが長さ0の文字列、つまり「""」となってはいけません。
 ここは「0」とすべきです。


 以下、余談です。
 「表」フィールドの式ですが、
>, IIf(IsNull([予定日数]),"",IIf([加工順]=1,Mid(String(60,"■"),1,[予定日数]),IIf(IsNull([加工順]),"",IIf(IsNull([累計]),"",Space([累計]*2) & Mid(String(60,"■"),[累計]+1,[予定日数]))))) AS 表
 うんざりする式ですね。
 私ならユーザー定義関数を作ります。
 インデント(字下げ)が使えるので、見通しが良くなります。

 まず、標準モジュールに次のコードを書きます。なお、予定日数フィールド、
加工順フィールドが整数型(Integer型)であることが前提です。

Function Fn表(int予定日数 As Integer _
      , int加工順 As Integer _
      , int累計 As Integer) As String

  If IsNull(int予定日数) = True Then
    Fn表 = ""
  Else
    If int加工順 = 1 Then
      Fn表 = Mid(String(60, "■") _
          , 1 _
          , int予定日数 _
           )
    Else
      If IsNull(int加工順) = True Then
        Fn表 = ""
      Else
        If IsNull(int累計) = True Then
         Fn表 = ""
        Else
         Fn表 = Space(int累計 * 2) & Mid(String(60, "■") _
                        , int累計 + 1 _
                        , int予定日数 _
                         )
        End If
      End If
    End If
  End If
End Function

 コードの意味は、上記の式と同じです。


 クエリでは、

SELECT 受注リスト.加工順
    ………
   , Fn表(予定日数,加工順,累計) AS 表
FROM 受注リスト
WHERE ………

とします。

870 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 お礼[未読]

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