Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / owc Chart ошибка Type Mismatch / 22 сообщений из 22, страница 1 из 1
27.11.2009, 16:01
    #36336108
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Здравствуйте
Код: 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
27.11.2009, 16:02
    #36336115
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
objSpreadsheet.Worksheets("Данные") - это разве рекордсет?
...
Рейтинг: 0 / 0
27.11.2009, 16:05
    #36336127
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Konst_One,

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

Код: plaintext
objSpreadsheet.Worksheets("Данные")
это лист с данными
...
Рейтинг: 0 / 0
27.11.2009, 16:07
    #36336130
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
...
Рейтинг: 0 / 0
27.11.2009, 16:07
    #36336134
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
внутри 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
27.11.2009, 16:16
    #36336151
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Konst_One,

из этого примера
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Command3_Click()
...
Dim oChart As WCChart
   With ChartSpace1
...
        .DataSource = oSheet.object
...
Рейтинг: 0 / 0
27.11.2009, 16:20
    #36336157
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
из какого пример?
...
Рейтинг: 0 / 0
27.11.2009, 16:24
    #36336168
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Konst_Oneиз какого пример?
How To Use the Chart Web Component with Visual Basic
...
Рейтинг: 0 / 0
27.11.2009, 16:24
    #36336171
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
ну почитайте наконец уже что-нибудь: http://msdn.microsoft.com/en-us/library/aa141474(office.10).aspx
...
Рейтинг: 0 / 0
27.11.2009, 16:28
    #36336176
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Код: 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
27.11.2009, 16:28
    #36336180
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
а вы всё пытаетесь excel sheet подсунуть! но так нельзя.
...
Рейтинг: 0 / 0
27.11.2009, 16:32
    #36336185
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Konst_Oneа вы всё пытаетесь excel sheet подсунуть! но так нельзя.
да нет.. я не эксель пытаюсь подсунуть, а тоже OWC.Spreadsheet
...
Рейтинг: 0 / 0
27.11.2009, 16:36
    #36336191
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Код: 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
27.11.2009, 16:43
    #36336211
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
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
27.11.2009, 16:52
    #36336233
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Konst_One
зачем вам извращения в акцессе? юзайте сразу ADODB.Recordset
ну такая задача у меня стоит...
спасибо буду пробовать варианты
...
Рейтинг: 0 / 0
27.11.2009, 16:53
    #36336237
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Forms!frmReportCross!owcReportCross


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

Microsoft Office Spreadsheet 11.0
...
Рейтинг: 0 / 0
27.11.2009, 17:14
    #36336292
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
опять 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
27.11.2009, 17:17
    #36336298
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
тогда почему вы так пишите :

Код: 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
27.11.2009, 17:19
    #36336305
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
это я к тому, что ChartSpace самый верхний объект в иерархии к нему добаляются Chart-ы. проверить ваш же случай я не могу, так как не имею такой возможности. но думаю, что вам стоит искать (или добавлять) объект ChartSpace в вашу форму
...
Рейтинг: 0 / 0
27.11.2009, 17:30
    #36336332
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
вот пример на бейсике. разбирайтесь. всё очень просто.
...
Рейтинг: 0 / 0
27.11.2009, 17:45
    #36336371
style1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
owc Chart ошибка Type Mismatch
Konst_One,

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


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