powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Управление объектами на диаграмме
3 сообщений из 28, страница 2 из 2
Управление объектами на диаграмме
    #39097277
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sopr,
не знаю про уничтожение каких переменных вы говорите, вот код из моего первого примера, как можно из него видеть никакие переменные там не уничтожаются, рад , что у вас всё получилось , чем мог - помог, и это, наверное, главное :)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Option Compare Database
Private Const conQuery = "Запрос1"
Private Sub Кнопка5_Click()
    Dim dg As Excel.Chart
    Set dg = Me.СвободныйOLE4.Object.Charts(1)
    dg.Shapes(1).Height = 10
    Dim xlapp As Excel.Application
    Set xlapp = dg.Application
    Dim xlBook As Excel.Workbook
    Set xlBook = xlapp.Workbooks.Add
    xlapp.DisplayAlerts = False
    For i = xlBook.Worksheets.Count To 2 Step -1
        xlBook.Worksheets(i).Delete
    Next i
    xlapp.DisplayAlerts = True
    Set xlSheet = xlBook.ActiveSheet
    Set rst = New ADODB.Recordset
    rst.Open _
     Source:=conQuery, _
     ActiveConnection:=CurrentProject.Connection
     xlSheet.Range("A1").CopyFromRecordset rst
     dg.SetSourceData xlSheet.Cells(1, 1).CurrentRegion
     dg.Refresh
End Sub
...
Рейтинг: 0 / 0
Управление объектами на диаграмме
    #39097322
Sopr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот, как обещал, выкладываю итоговый рабочий пример, надеюсь, что кому нибудь пригодится.

И опять столкнулся с неожиданностью, при добавлении фигуры на диаграмму, диаграмма не перерисовывается методом Refresh.
Для перерисовки приходится заново задавать источник данных диаграммы, примерно так:
Код: vbnet
1.
2.
3.
    ' Без этой строки не происходит перерисовка диаграммы
    odg.SetSourceData Me.DG.Object.Worksheets("Лист1").Cells(1, 1).CurrentRegion
    odg.Refresh



В принципе это не критично, но если кто предложит лучший способ - буду признателен.
...
Рейтинг: 0 / 0
Управление объектами на диаграмме
    #39097477
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sopr,
маленькое уточнение к вашему примеру -
у меня на строках связанных с операциями добавления и удаления фигур на диаграмму выскакивала ошибка 1004, подправил код и всё стало нормально работать , например , для кнопки добавления фигуры

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Add_shape_btn_Click()

    Dim odg As Excel.Chart
    Set odg = Me.DG.Object.Charts(1)
    'odg.Activate
    
     Me.DG.Action = acOLEActivate 
    
    odg.Shapes.AddShape msoShapeRectangle, Fix(Rnd * 400), Fix(Rnd * 400), 50, 50
    ' Без этой строки не происходит перерисовка диаграммы
    odg.SetSourceData Me.DG.Object.Worksheets("Лист1").Cells(1, 1).CurrentRegion
    odg.Refresh
    
    Debug.Print odg.Shapes.Count
    
    Me.DG.Action = acOLEClose 
 
End Sub
...
Рейтинг: 0 / 0
3 сообщений из 28, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Управление объектами на диаграмме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]