質問

私は連続的な形をしようとしています。これは、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を追加してみてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top