Я создаю свой первый пользовательский интерфейс в VBA для Microsoft Access.
Я пытаюсь, чтобы переменная .Left отображалась в раскрывающемся списке (библиотека?).
Единственное, что появляется, - это LeftPadding, который, я уверен, это не то, что мне нужно. Почему я не могу объявить левую позицию прямоугольников?
![image](https://i.stack.imgur.com/Itpqx.png)
Есть ли другой тип переменной, который я должен использовать для объявления позиции прямоугольников?
Моя последующая проблема, если я делаю это правильно, касается вложенного оператора If. Я пытаюсь вычислить, превышает ли позиция вновь видимого прямоугольника + его размеры положение слева уже видимого прямоугольника, и если да, расположите его в другом месте.
Dim ctl As Control
For Each ctl In [Forms]![frmBuilder]
If Left(ctl.Name, 3) = "box" And Box1.Visible = True Then
If ctl.Visible = True Then
NextCaseNum = Int(Right(ctl.Name, (Len(ctl.Name)) - 3) + 1)
NextCasePosition = (ctl.lef + ctl.Width) + 1440 / 60
NextCaseName = "box" & NextCaseNum
Else
CurCaseLeft = ctl.Left
CurCaseWidth = ctl.Width
CurCaseHeight = ctl.Height
With ctl
.Top = UprightBottom - HInch
.Left = NextCasePosition
.Width = WInch
.Height = HInch
.Visible = True
End With
If CurCaseLeft + CurCaseWidth > Upright2.Left Then
With Beam1
.Top = (((5.5 + 6) * 60) + Box1.Top) / 1440
.Left = Upright1.Left
.Height = (5.5 * 60) / 1440
.Width = ((4 * 60) / 1440) + Upright2.Left - Upright1.Left
.Visible = True
End With
End If
Я думаю, что проблема заключается в CurCaseLeft и CurCaseWidth, потому что я не знаю, как определить их в функции из-за того, что ctl.Left текущего блока не отображается.
Нужно ли разделять вложенный оператор If в другой функции и вызывать его? функция из текущей функции?