powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / owc Chart ошибка Type Mismatch
22 сообщений из 22, страница 1 из 1
owc Chart ошибка Type Mismatch
    #36336108
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim objChart
    Dim objSpreadsheet
    Dim chConstants
    Dim chtChart1

    Set objChart = Forms!frmCharts!owcChart
    Set objSpreadsheet = Forms!frmReportCross!owcReportCross
    Set chConstants = objChart.Constants

    ' Set the data source of ChartSpace1 to Spreadsheet1.
    Set objChart.DataSource = objSpreadsheet.Worksheets("Данные")
выскакивает ошибка Type Mismatch на последней строчке, в чем может быть проблема
среда разработки Access, в той ветке мне никто помочь не может... может здесь кто поможет решить проблему
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336115
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
objSpreadsheet.Worksheets("Данные") - это разве рекордсет?
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336127
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

а что должен быть обязательно рекордсет?
в справке указано:
Код: plaintext
Set ChartSpace1.DataSource = Spreadsheet1.Object

Код: plaintext
objSpreadsheet.Worksheets("Данные")
это лист с данными
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336130
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336134
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
внутри Excel так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Private Sub UserForm_Initialize() 
     
    Dim ChtSpc As OWC11.ChartSpace 
    Dim cht As OWC11.ChChart 
    Dim Sps As OWC11.Spreadsheet 
    Dim ws As Worksheet 
     
    Set ChtSpc = Me.ChartSpace1 
    Set Sps = Me.Spreadsheet1 
    Set ws = ThisWorkbook.Worksheets("ChartData") ' change to you worksheet name
     
    Sps.Range("A1:Z1000") = ws.Range("A1:Z1000").Value ' Set worksheet range to sheet control range
    Set ChtSpc.DataSource = Sps ' set sheet control as chart control source
    Set cht = ChtSpc.Charts.Add ' Add blank chart
     
     ' Set data for chart
    With cht 
        .SetData chDimCategories,  0 , "A4:A15" ' change to your category range
        .SeriesCollection( 0 ).SetData chDimValues,  0 , "B4:B15" ' change to your series 1 range
        .HasLegend = True 
        .SeriesCollection.Add 
        .SeriesCollection( 1 ).SetData chDimValues,  0 , "C4:C15" ' change to your series 2 range
        .HasTitle = True 
        .Title.Caption = Sps.Range("A1") ' change to your title cell
        .Title.Interior.Color =  1677215  
        .Type = chChartTypeColumn3D 
    End With 
     
     ' add some fancy shading
    ChtSpc.Interior.SetTwoColorGradient chGradientFromCenter, chGradientVariantEnd,  9125192 ,  16777215  
     
     ' hide the sheet control
    Me.Spreadsheet1.Visible = False 
     ' set the height of the chart control
    Me.ChartSpace1.Height =  480  
     
End Sub 
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336151
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

из этого примера
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Command3_Click()
...
Dim oChart As WCChart
   With ChartSpace1
...
        .DataSource = oSheet.object
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336157
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из какого пример?
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336168
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneиз какого пример?
How To Use the Chart Web Component with Visual Basic
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336171
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну почитайте наконец уже что-нибудь: http://msdn.microsoft.com/en-us/library/aa141474(office.10).aspx
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336176
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
Private Sub Command1_Click()

    'Create arrays for the x-values and the y-values
    Dim xValues As Variant, yValues1 As Variant, yValues2 As Variant
    xValues = Array("Beverages", "Condiments", "Confections", _
                    "Dairy Products", "Grains & Cereals", _
                    "Meat & Poultry", "Produce", "Seafood")
    yValues1 = Array( 104737 ,  50952 ,  78128 ,  117797 ,  52902 ,  80160 ,  47491 , _
                      62435 )
    yValues2 = Array( 20000 ,  15000 ,  36000 ,  56000 ,  40000 ,  18000 ,  20000 , _
                      33000 )
    
    'Create a new chart
    Dim oChart As WCChart
    ChartSpace1.Clear
    ChartSpace1.Refresh
    Set oChart = ChartSpace1.Charts.Add
    
    'Add a title to the chart
    oChart.HasTitle = True
    oChart.Title.Caption = "Sales Per Category"
    
    'Add a series to the chart with the x-values and y-values
    'from the arrays and set the series type to a column chart
    Dim oSeries As WCSeries
    Set oSeries = oChart.SeriesCollection.Add
    With oSeries
        .Caption = "1995"
        .SetData chDimCategories, chDataLiteral, xValues
        .SetData chDimValues, chDataLiteral, yValues1
        .Type = chChartTypeColumnClustered
    End With
    
    'Add another series to the chart with the x-values and y-values
    'from the arrays and set the series type to a line chart
    Set oSeries = oChart.SeriesCollection.Add
    With oSeries
        .Caption = "1996"
        .SetData chDimCategories, chDataLiteral, xValues
        .SetData chDimValues, chDataLiteral, yValues2
        .Type = chChartTypeLineMarkers
    End With
    
    'Add a value axis to the right of the chart for the second series
    oChart.Axes.Add oChart.Axes(chAxisPositionLeft).Scaling, _
        chAxisPositionRight, chValueAxis

    'Format the Value Axes
    oChart.Axes(chAxisPositionLeft).NumberFormat = "$#,##0"
    oChart.Axes(chAxisPositionRight).NumberFormat = "0"
    oChart.Axes(chAxisPositionLeft).MajorUnit =  20000 
    oChart.Axes(chAxisPositionRight).MajorUnit =  20000 
    
    'Show the legend at the bottom of the chart
    oChart.HasLegend = True
    oChart.Legend.Position = chLegendPositionBottom

End Sub

Private Sub Command2_Click()

    'Set up the DataSourceControl for the Chartspace
    Dim rsd As RecordsetDef
    DataSourceControl1.ConnectionString = _
        "DRIVER={Microsoft Access Driver (*.mdb)}; " & _
        "DBQ=C:\Program Files\Microsoft Visual Studio\VB98\nwind.mdb"
    Set rsd = DataSourceControl1.RecordsetDefs.AddNew( _
             "Select * from [Category Sales for 1995]",  3 )
    With ChartSpace1
        .Clear
        .Refresh
        .DataSource = DataSourceControl1
        .DataMember = rsd.Name
    End With
     
    'This Chartspace will contain 2 charts. Make the layout so that the
    'charts are positioned horizontally
    ChartSpace1.ChartLayout = chChartLayoutHorizontal
    
    'Create a new bar chart from the query
    Dim oBarChart As WCChart
    Set oBarChart = ChartSpace1.Charts.Add
    With oBarChart
        .Type = chChartTypeBarClustered
        .SetData chDimCategories,  0 ,  0   'Categories are first field
        .SetData chDimValues,  0 ,  1       'Values are second field
    
        'Format the value axis for the bar chart so that it
        'shows values in thousands (i.e., 45000 displays as 45) and
        'in increments of 25000. Remove the gridlines
        With .Axes(chAxisPositionBottom)
            .NumberFormat = "0,"
            .MajorUnit =  25000 
            .HasMajorGridlines = False
        End With
        
        'Change the color of the series and the plot area
        .SeriesCollection( 0 ).Interior.Color = RGB( 150 ,  0 ,  150 )
        .PlotArea.Interior.Color = RGB( 240 ,  240 ,  10 )
    End With
    
    'Create a new exploded pie chart from the query
    Dim oPieChart As WCChart
    Set oPieChart = ChartSpace1.Charts.Add
    With oPieChart
        .Type = chChartTypePie
        .SetData chDimCategories,  0 ,  0   'Categories are first field
        .SetData chDimValues,  0 ,  1       'Values are second field
        .SeriesCollection( 0 ).Explosion =  20 
        
        'Add a legend to the bottom of the pie chart
        .HasLegend = True
        .Legend.Position = chLegendPositionBottom
        
        'Add a title to the chart
        .HasTitle = True
        .Title.Caption = "Sales by Category for 1995"
        .Title.Font.Bold = True
        .Title.Font.Size =  11 
        
        'Make the chart width 50% the size of the bar chart's width
        .WidthRatio =  50 
        
        'Show data labels on the slices as percentages
        With .SeriesCollection( 0 ).DataLabelsCollection.Add
            .HasValue = False
            .HasPercentage = True
            .Font.Size =  8 
            .Interior.Color = RGB( 255 ,  255 ,  255 )
        End With
        
    End With
    
End Sub

Private Sub Command3_Click()

   'Dynamically add a spreadsheet control to the form
   Dim oSheet As Spreadsheet
   Me.Controls.Add "OWC.Spreadsheet", "Sheet"
   Set oSheet = Me!Sheet
   
   'Fill the Sheet with data
   With oSheet
        .Range("A1:A10").Formula = "=Row()"
        .Range("B1:B10").Formula = "=A1^2"
        .Range("A12").Formula = "=Max(A1:A10)"
        .Range("B12").Formula = "=Max(B1:B10)"
   End With
   
   'Create an xy-scatter chart using the data in the spreadsheet
   Dim oChart As WCChart
   With ChartSpace1
        .Clear
        .Refresh
        .DataSource = oSheet.object
        Set oChart = .Charts.Add
        oChart.Type = chChartTypeScatterSmoothLineMarkers
        oChart.SetData chDimXValues,  0 , "a1:a10"
        oChart.SetData chDimYValues,  0 , "b1:b10"
   End With
   
   With oChart
        'Display the Axes Titles and
        'set the major units for the axes
        With .Axes(chAxisPositionBottom)
            .HasTitle = True
            .Title.Caption = "X"
            .Title.Font.Size =  8 
            .MajorUnit =  1 
        End With
        With .Axes(chAxisPositionLeft)
            .HasTitle = True
            .Title.Caption = "X Squared"
            .Title.Font.Size =  8 
            .MajorUnit =  10 
        End With
        
        'Set the maximum and minimum axis values
        .Scalings(chDimXValues).Maximum = oSheet.Range("A12").Value
        .Scalings(chDimXValues).Minimum =  1 
        .Scalings(chDimYValues).Maximum = oSheet.Range("B12").Value
        
        'Change the marker and line styles for the series
        With .SeriesCollection( 0 )
            .Marker.Style = chMarkerStyleDot
            .Marker.Size =  6 
            .Line.Weight =  1 
            .Line.Color = RGB( 255 ,  0 ,  0 )
        End With
   End With
   
   'Remove the spreadsheet
   Me.Controls.Remove "Sheet"
   
End Sub

Set oSheet = Me!Sheet - это объект типа OWC.Spreadsheet, динамически добавленный в коде
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336180
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вы всё пытаетесь excel sheet подсунуть! но так нельзя.
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336185
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneа вы всё пытаетесь excel sheet подсунуть! но так нельзя.
да нет.. я не эксель пытаюсь подсунуть, а тоже OWC.Spreadsheet
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336191
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim oChart
Dim Spreadsheet1 As OWC10.Spreadsheet
Dim c

Set oChart = ChartSpace1.Charts( 0 ) 'point to our chart by index #

Set Spreadsheet1 = CreateObject("OWC10.Spreadsheet")
Spreadsheet1.Range("A1", "B650") = Sheet1.Range("A1", "B650").Value

Set c = ChartSpace1.Constants
Set ChartSpace1.DataSource = Spreadsheet1

попробуйте через set и добавляйте range-объект
ЗЫ
пример с копированием из excel
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336211
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The Chart control can be bound to a Spreadsheet control , a Data Source control , a PivotTable List control , an ADO recordset , or any ActiveX control that supports data binding. You can bind the chart to a local data source (data stored in the HTML code in the page itself) or to a remote data source (data stored in a Microsoft Access or SQL Server database, for example). As data changes in the data source, the Chart control automatically updates, scales, and sizes itself appropriately.

зачем вам извращения в акцессе? юзайте сразу ADODB.Recordset
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336233
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
зачем вам извращения в акцессе? юзайте сразу ADODB.Recordset
ну такая задача у меня стоит...
спасибо буду пробовать варианты
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336237
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Forms!frmReportCross!owcReportCross


это у вас что за контрол?
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336260
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

Microsoft Office Spreadsheet 11.0
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336292
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять Type Mismatch на последней строчке
Код: plaintext
1.
2.
3.
4.
5.
    Dim ChtSpc As OWC11.ChartSpace
    Dim cht As OWC11.ChChart
    Dim Sps As OWC11.Spreadsheet
    Dim ws As Worksheet
     
    Set ChtSpc = Forms!frmCharts!owcChart
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336298
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда почему вы так пишите :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim objChart
    Dim objSpreadsheet
    Dim chConstants
    Dim chtChart1

    Set objChart = Forms!frmCharts!owcChart
    Set objSpreadsheet = Forms!frmReportCross!owcReportCross
    Set chConstants = objChart.Constants



а не так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    Dim ChtSpc As OWC11.ChartSpace 
    Dim chtChart1 As OWC11.ChChart 
    Dim objSpreadsheet As OWC11.Spreadsheet 


    Set objChart = Forms!frmCharts!owcChart
    Set objSpreadsheet = Forms!frmReportCross!owcReportCross
    Set ChtSpc = ??? 'что в вашем случае вам разбираться

chtChart1.Clear
chtChart1.Refresh

    Sps.Range("A1:Z1000") = ws.Range("A1:Z1000").Value ' дипазон ваш укажите
    Set ChtSpc.DataSource = objSpreadsheet ' set sheet control as chart control source


...
chtChart1.Refresh
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336305
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я к тому, что ChartSpace самый верхний объект в иерархии к нему добаляются Chart-ы. проверить ваш же случай я не могу, так как не имею такой возможности. но думаю, что вам стоит искать (или добавлять) объект ChartSpace в вашу форму
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336332
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот пример на бейсике. разбирайтесь. всё очень просто.
...
Рейтинг: 0 / 0
owc Chart ошибка Type Mismatch
    #36336371
style1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

ок спасибо
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / owc Chart ошибка Type Mismatch
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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