まりふのひと

アクセス/レポートでバグらしき現象で時間を費やす

郵便番号が3桁超で、“-”が無ければ“-”を挿入するレポート上のコード。
前のレコードの郵便番号が Null であれば、当該レコードに郵便番号があっても表示されない!
Debug は郵便番号が入っているのが確認できるが、実際には(プレビューでは)表示されていない。

Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer)
Dim strYubin as String
    strYubin = StrConv(Nz(Me.txt郵便番号), vbNarrow)
    If (strYubin = "") _
            Or (Len(strYubin) <= 3) _
            Or (InStr(strYubin, "-") > 0) Then
        Me.prt郵便番号 = get_Null(strYubin)
    Else
        Me.prt郵便番号 = Left(strYubin, 3) & "-" & Mid(strYubin, 4)
    End If
    Debug.Print Me.txt出力順, Me.txt郵便番号, strYubin, Me.prt郵便番号
End Sub
  • get_Null 関数
    • "" であれば Null を返す関数。
  • Me.txt郵便番号
    • 非表示のレポート上のテキストボックス
  • Me.prt郵便番号
    • レポート上のテキストボックス
  1. このコードをコメントアウトし、
  2. ソーステーブルに同じコードで更新をかける。
  3. レポートではソーステーブルをそのまま表示する

ように変更したら、まともに表示された。
レポート上では、ゴチャゴチャ「修正をかけない方がよい」と言うことか‥‥