Para isso, você terá que criar uma rotina que faça o cálculo do tamanho dos controles, a partir do tamanho da tela, que pode ser obtida através das propriedades Width e Height do objeto Screen. Segue abaixo um exemplo:
Em resolução 1024 x 768
MsgBox Screen.Width
MsgBox Screen.Height
Os valores retornados são 15360 e 11520, respectivamente
Em resolução 800 x 600
MsgBox Screen.Width
MsgBox Screen.Height
Os valores retornados são 12000 e 9000, respectivamente.
tente algo assim
picx = Screen.TwipsPerPixelX
picy = Screen.TwipsPerPixelY
xRes = Screen.Width picx
yRes = Screen.Height picy
If xRes = 800 Or yRes = 600 Then
With frmLayout
.DBGrid1.Width = 12050
.DBGrid1.Height = 8300
.Show
End With
ElseIf xRes = 1280 Or yRes = 1024 Then
With frmLayout
. DBGrid1.Width = 19155
. DBGrid1.Height = 14475
.Show
End With
Else
With frmLayout
.Show
End With
End If