Access2013以降で印刷したときバーコードの高さが勝手に変わってしまう場合がある
Access2007で印刷していた帳票をAccess2013で印刷したところ、バーコードの高さが設計時と違う高さになり、下の欄に表示されている文字にかぶってしまった。
調べたところMicrosoft Barcode Control Version 14.0の不具合でVisibleプロパティにTrueをセットしたときにHeightプロパティが勝手に変わってしまうそうだ。
(Visibleプロパティが元々TrueのところにTrueをセットしても同じ)
確かに常時表示しているバーコードの高さは変わらないが、印刷内容によって表示/非表示を切り替えているバーコードの高さが変わってしまう。
レポートの読込時イベントで設計時の高さを変数に保存しておき、詳細セクションのフォーマット時イベントでVisibleプロパティにTrueをセットした直後に、保存しておいたバーコードの高さをセットするようにすることで回避した。
この不具合はAccess 2016のMicrosoft Barcode Control 16でも発生する。
中身はVersion 14とほぼ同じらしい。
Access 2007に入っているMicrosoft Barcode Control Version 9.02以前では発生しない。
調べたところMicrosoft Barcode Control Version 14.0の不具合でVisibleプロパティにTrueをセットしたときにHeightプロパティが勝手に変わってしまうそうだ。
(Visibleプロパティが元々TrueのところにTrueをセットしても同じ)
確かに常時表示しているバーコードの高さは変わらないが、印刷内容によって表示/非表示を切り替えているバーコードの高さが変わってしまう。
レポートの読込時イベントで設計時の高さを変数に保存しておき、詳細セクションのフォーマット時イベントでVisibleプロパティにTrueをセットした直後に、保存しておいたバーコードの高さをセットするようにすることで回避した。
Option Compare Database
Option Explicit
Dim iBcdHeight As Integer
'*********************************************************************************
'Report_Load()
' レポート読み込み時処理
'*********************************************************************************
Private Sub Report_Load()
'バーコードコントロールの設計時の高さを保存しておく。
iBcdHeight = bcdHTSSHC.Height
End Sub
'*********************************************************************************
'詳細_Format()
' 詳細セクション Format時イベント処理
'*********************************************************************************
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
If (バーコードを表示しない条件) = True Then
bcdHTSSHC.Visible = False
Else
bcdHTSSHC.Visible = True
'バーコードコントロールの設計時の高さをセットし直す。
bcdHTSSHC.Height = iBcdHeight
End If
End Sub
この不具合はAccess 2016のMicrosoft Barcode Control 16でも発生する。
中身はVersion 14とほぼ同じらしい。
Access 2007に入っているMicrosoft Barcode Control Version 9.02以前では発生しない。
この記事へのコメント
おかげさまで解決致しました。
情報、ありがとうございました。