Vba в Access

  • Автор темы lordblack
  • Дата начала
L

lordblack

Такая проблема, нужно Access выставить в ряд друг за другом шейпы в visio, так сказать выставить в ряд! То есть задаем координату первого шейпа а последующие встают за ним! на данный момент для этого я использую подобный программный код:

Private Sub кн_Планировка_цеха_Click()
Dim appVisio As Visio.Application 'Это экземпляр Visio
Dim docsObj As Visio.Documents 'Коллекция документов Visio
Dim pagsObj As Visio.Pages 'Коллекция страниц
Dim pagObj As Visio.Page 'Страница
Dim stnObj As Visio.Document 'Трафарет
Dim docObj As Visio.Document 'Документ Visio
Dim mastObj As Visio.Master
Dim aShape As Visio.Shape
Dim z As Double
Dim X As Double
Dim Y As Double
Dim i As Single
Dim m(1 To 50) As Double



''''''''''''''''''''
Set appVisio = CreateObject("visio.application")
Set docsObj = appVisio.Documents
If Me.Поле80.Value >= 0 And Me.Поле80.Value <= 100000 Then Set docObj = docsObj.Add("C:\Мои документы\План_цеха.vsd") 'если есть набор шаблонов, то указать путь


Set pagsObj = appVisio.ActiveDocument.Pages
Set pagObj = pagsObj.Item(1)
Dim RecSet As DAO.Recordset
Set RecSet = Me.Recordset

RecSet.MoveFirst

Do While Not RecSet.EOF
Set stnObj = docsObj(Рабочий_каталог.Value) 'подключаем ВСС файл
Set mastObj = stnObj.Masters(Название_шейпа.Value)

Y = Me!Y.Value * 200 / 25.4
For i = 1 To Me.Количество.Value
z = z + 10
m(z) = Me!Длина.Value / 25.4
If z = 1 Then X = Me!X.Value * 200 / 25.4 + m(z) / 2
If i = 1 Then X = m(z) / 2 + X + Me!Разрыв.Value * 200 / 25.4
If z > 1 And Me!Смещение < 0 Then X = m(z) / 2 + X + Me!Разрыв.Value * 200 / 25.4
If i > 1 And Me!Смещение = 0 Then Y = Y + Me!Разрыв.Value * 200 / 25.4
Set aShape = pagObj.Drop(mastObj, X, Y)

If i = Me!Количество.Value Then X = m(z) / 2 + X
aShape.Text = Me.Обозначение.Value
Next i
RecSet.MoveNext
Loop


End Sub

но минус Заключается в том что шейпы встают друг за другом на очень большом расстояние! Возможно ли это исправить? Возможно ли сделать так чтобы они вставали друг за другом! И как это можно осуществить!?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!