thnx for all effort just amazed that advice refer to form1 without datasheet . think next is more usefull :
Code:
Public Sub ft(frm1 As String, sm As String, f_s As Integer, fn As String, sc As Integer)
Dim frms As Variant
Dim frm As Variant
Dim frm_frm As Form
frms = Array("used", "saving", "bal_crosstab")
For Each frm In frms
Forms!form1!(frm).Form.DatasheetFontName = fn
Forms!form1!(frm).Form.DatasheetFontHeight = f_s
Forms!form1!(frm).Form.DatasheetFontWeight = 700
Forms!form1!(frm).Form.RowHeight = f_s * 21 'not found what is best value
Forms!form1!(frm).Form.DatasheetBackColor = vbYellow
Forms!form1!(frm).Form.DatasheetForeColor = vbRed
Select Case frm
Case Is = "used"
x(3) = Forms!form1!(frm).Form.RowHeight * 2.5 + 250 ' top subform
Case Else 'both other subform
x(8) = x(3)
x(4) = x(3)
End Select
Next frm
Forms!form1!(frm).Form.Recordset.MoveLast
Forms!form1!(frm).Form.Recordset.MoveFirst
x(7) = (Forms!form1!(frm).Form.Recordset.RecordCount + 1) * Forms!form1!(frm).Form.RowHeight + 800 'subform size
x(11) = x(7)
FrmLd True
End Sub