質問
私は連続的な形をしようとしています。これは、2つのレコードのみの形式を持つことを回避するためのものです。逆に、1ページあたり10レコードを持つフォームに多数のレコードが表示され、残りのレコードを表示するために矢印の下に表示されます。 これらは私が設定した手順です:
Public Function NumRecs() As Integer
NumRecs = DCount("*", "tblDisclosure", "Not IsNull(FormSentOff) and IsNull(DBSInvoice))
End Function
Public Function FrmHt() As Integer
Dim FrmDet As Integer
Dim FrmHdr As Integer
Dim FrmFtr As Integer
FrmDet = Form.Section(0).Height
FrmHdr = Form.Section(1).Height
FrmFtr = Form.Section(2).Height
If FrmHt > (11 * FrmDet + FrmHdr + FrmFtr) Then
FrmHt = 11 * FrmDet + FrmHdr + FrmFtr
Else
FrmHt = (NumRecs * FrmDet) + FrmHdr + FrmFtr + FrmDet
End If
End Function
Private Sub Form_Load()
Me.Move Left:=8000, Top:=1000, Width:=9240, Height:=FrmHt
End Sub
.
IF ...それから... else文を無視し、1つのウィンドウですべてのレコードを表示するフォームを作成します これは管理不能です。
それは11のレコードよりも順番に機能します(明らかに)、しかし私は私が身長を付けなければならないことがわかります 特別なレコードのうち、それは最後のレコードを2ページ目に置きます。Viz:
FrmHt = (NumRecs * FrmDet) + FrmHdr + FrmFtr + FrmDet
.
私はこれと共に暮らすことができますが、私は本当にif ...それから... elseステートメントは無視されている。
タイプのキャスティングを変法に変えて2倍にしましたが、これは差はありません。
解決
コードの問題があるようです.FrmHt
ステートメントでIf
を使用しますが、その時点では値がありません。常に0
になります。
あなたはおそらくあなたの声明が何かになるようなものだと思います:
If NumRecs > 11 Then
FrmHt = 11 * FrmDet + FrmHdr + FrmFtr
Else
FrmHt = (NumRecs * FrmDet) + FrmHdr + FrmFtr + FrmDet
End If
.
次のページにある最後のレコードの他の課題は、画面上の10レコードを表示する際にタイトしすぎ、Twipsからピクセルへの変換中に丸めエラーが小さくなる可能性があるためです。10レコードに必要なのでしょうか。
これが機能するかどうかを確認するには、FrmHT
の結果にいくつかのTwipを追加してみてください。
所属していません StackOverflow