Vba в Access

Тема в разделе "Visual Basic", создана пользователем lordblack, 24 ноя 2010.

  1. lordblack

    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

    но минус Заключается в том что шейпы встают друг за другом на очень большом расстояние! Возможно ли это исправить? Возможно ли сделать так чтобы они вставали друг за другом! И как это можно осуществить!?
     
Загрузка...
Похожие Темы - Vba Access
  1. NickProstoNick
    Ответов:
    0
    Просмотров:
    2.531
  2. dEND
    Ответов:
    0
    Просмотров:
    68
  3. serji
    Ответов:
    2
    Просмотров:
    1.241
  4. Iqr
    Ответов:
    0
    Просмотров:
    793
  5. mFrance
    Ответов:
    0
    Просмотров:
    1.199

Поделиться этой страницей