VB6.0中通过MSChart控件调用数据库
VB环境下MSChart控件的应用与研究
某个油田的区块做横坐标,井口数做纵坐
标而形成的“井口数统计图”为例,如图
1所示。
图1 井口数统计图
在此图中,由于区块过多,显示得不清楚,完全分不出哪个区块
对应的数值。解决这样的问
题,操作步骤为:
(1)将区块用编码表
示,如图2所示。
(2)用CommandButton
按钮,显示编码所表示的区
图2 井口数统计数据编码图
If Not IsNull(mRecordset1.Fields(1).Value) Then
js = js + mRecordset1.Fields(1).Value
End If
MRecordset1.Close
mRecordset_main.MoveNext
Wend
End With
(2)区块大于10个时的具体代码:
.RowLabel = ""
Else
.RowLabel = mRecordset_main!qk
'行显示的内容(油田区块)
End If
If Not IsNull(mRecordset1.Fields(0).Value) Then
k = k + mRecordset1.Fields(0).Value
End If
网络纵横
2008年第9期 146
VB环境下MSChart控件的应用与研究
李旭东
(山东胜利职业学院)
摘 要 在Visual Basic 6.0环境下,MSChart控件还有些不能实现的功能,如横坐标的内容显示不清楚,MSChart控件的宽度如何自 动调整以及调整后如何显示看不见的部分。本文主要针对以上问题,就如何改进及应用MSChart控件进行了探讨。
如何在VB中连接数据库
如何在VB中连接数据库我们对数据库进行操作时,一方面要使用户可以在程序界面上对需要的数据进行访问;另一方面可以对数据库中的数据进行各种操作,最终的操作结果还要反馈给用户。
用户在对数据进行访问时,需要应用程序对数据库做许多底层的操作,如果要开发人员编写代码的话,需要花费大量的精力。
为了简化开发过程,一些开发工具使用控件对数据库进行操作。
在VB中就有几个这样的控件,如Data控件、ADO控件。
下面就介绍一下Data控件和ADO控件以及ADO对象的使用。
一、Data控件通过设置数据控件的属性,我们可以将Data控件连到一个特定的数据库和其中的一个表上。
但是,Data控件本身是不能显示数据的,它只能处理信息流在应用程序和数据库间的转换。
为了能在界面中显示数据,我们使用VB中的普通控件在窗体上显示数据。
首先,在VB中建立一个标准的工程。
在窗体中添加控件其中,Data1就是一个Data控件。
然后改变控件的一些属性,属性修改后如接下来我们要对Data控件进行设置。
要对特定的数据库进行操作,就要连接到这个特定的数据库中。
在Data控件中要对Databasename属性进行设置,在对此属性进行设置时会弹出一个对话框,可以选择数据库的路径。
一个数据库中可能会有许多张表,我们还要指定一张表。
这个可以通过Data控件的Recordsource属性来设置。
如果设置好了Databasename 属性,在你设置Recordsource属性时就会出现一个列表,列出所连接数据库中所有的表,在其中就可以选择某个要使用的表。
这样就可以了吗?用户在界面上是看不到任何数据的。
为了能够让用户对数据进行操作,还有设置相关控件的属性。
在窗体上有三个文本框控件,分别是用来显示表中的对应字段的。
要使文本框对应显示表中的字段,要对文本框的Datasource和Datafield属性进行设置。
在Datasource中要选择对应的数据控件,在这个工程中只有Data控件,所以只能选择此控件,其名字为data1。
vb连接数据库详解
作为微软旗下一款优秀的RAD工具,VB在数据库应用开发方面的能力十分强大。
微软设计了多种数据库访问方法,下面通过对VB访问数据库的多种技术进行深入剖析,并总结出实际开发中的几点经验。
希望能够对那VB的初学者有所帮助。
(注意,文中所有的描述均在Windows 2000 professional和Visual Basic 6.0的环境下进行的)一. DAO、RDO、ODBC和ADO在VB的开发环境中,可以使用三种数据库访问方式,它们分别是:数据访问对象(DAO)、远程数据对象(RDO)和ADO对象模型。
DAO:数据访问对象是用来显露了Microsoft Jet数据库引擎(最早是给Microsoft Access 所使用,现在已经支持其它数据库),并允许开发者通过ODBC直接连接到其他数据库一样,直接连接到Access 表。
DAO 最适用于单系统应用程序或在小范围本地分布使用。
其内部已经对Jet数据库的访问进行了加速优化,而且其使用起来也是很方便的。
所以如果数据库是Access数据库且是本地使用的话,建议使用这种访问方式。
VB已经把DAO模型封装成了Data控件,分别设置相应的DatabaseName属性和RecordSource属性就可以将Data控件与数据库中的记录源连接起来了。
以后就可以使用Data控件来对数据库进行操作。
RDORDO(Remote Data Objects)远程数据对象是一个到ODBC的、面向对象的数据访问接口,它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC 的底层功能和灵活性。
尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。
但是,RDO已被证明是许多SQL Server、Oracle 以及其他大型关系数据库开发者经常选用的最佳接口。
RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。
VB mschart控件的使用
一、先看个小例子Private Sub Form_Load()Dim MyData(20, 1) As Double'-----x轴坐标值-----Y轴坐标值----------MyData(0, 0) = 0: MyData(0, 1) = 180 '本句代表了:第一点数据的X轴坐标为0,Y轴坐标为180MyData(1, 0) = 6: MyData(1, 1) = 60MyData(2, 0) = 8: MyData(2, 1) = 60MyData(3, 0) = 11: MyData(3, 1) = 0MyData(4, 0) = 16: MyData(4, 1) = 0MyData(5, 0) = 19: MyData(5, 1) = 60MyData(6, 0) = 25.8: MyData(6, 1) = 60MyData(7, 0) = 28.8: MyData(7, 1) = 0MyData(8, 0) = 31.8: MyData(8, 1) = 60MyData(9, 0) = 40.3: MyData(9, 1) = 60MyData(10, 0) = 43.3: MyData(10, 1) = 0MyData(11, 0) = 93.3: MyData(11, 1) = 0MyData(12, 0) = 96.3: MyData(12, 1) = 60MyData(13, 0) = 99.3: MyData(13, 1) = 0MyData(14, 0) = 105.3: MyData(14, 1) = 0MyData(15, 0) = 135.3: MyData(15, 1) = 0MyData(16, 0) = 144.3: MyData(16, 1) = 180MyData(17, 0) = 148.8: MyData(17, 1) = 270MyData(18, 0) = 405.03: MyData(18, 1) = 270MyData(19, 0) = 409.53: MyData(19, 1) = 180MyData(20, 0) = 564.17: MyData(20, 1) = 180'波形图外观设置With MSChart1.TitleText = "速度m/min"' '设置图线的外观.Plot.SeriesCollection(1).Pen.Width = 30.Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid' '设置XY轴.Plot.Axis(VtChAxisIdX).ValueScale.Auto = False.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False'// 设置最大值.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 600 '设置横轴标注最大值.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 300 '设置纵轴标注最大值'// 设置最小值.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0'//.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 6 'Y轴主要网格数量.Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量.Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDottedMSChart1.Plot.AutoLayout = FalseMSChart1.Plot.UniformAxis = FalseMSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图MSChart1.ChartData = MyData '数据End WithEnd Sub二、mschart控件属性介绍1.RowCount属性设置作图数据的行数。
使用VB数据控件访问数据库
(3)程序代码
Private Sub Command1_Click() s = Trim(InputBox("请输入要查找的学号", "查找")) t = "学号='" & s & "'" Data1.Recordset.FindFirst t If Data1.Recordset.NoMatch Then MsgBox "找不到学号为" & s & "的学生 ! " Data1.Recordset.MoveFirst End If
10.11 使用VB数据控件访问数据库
VB提供了多种访问数据库的方式,其中数据控件(Data) 是一种使用简便、处理快速的标准控件
1.数据控件的用途
利用Data控件可以建立应用程序与数据库的联系,操作数 据库中的数据,还能利用文本框、列表框等控件,实现数据 的浏览、编辑等功能。
2.
与添加其他控件的方法一样,其外观如下:
Excel数据清单(C:\My Documents\成绩单.xls)内容如下:
(1)创建应用程序的用户界面
(2)设置对象属性
设置数据控件Data1: Connect属性为Excel8.0 DataBaseName属性为C:\My Documents\成绩单.xls RecordSource属性为Sheet1$ (工作表名)
设置文本框(Text1-Text4): 对应“成绩库.dbf”的4个字段 DataSource属性为Data1 DataField属性分别为“学号”、“姓名”、“成绩”和
“班号”
设置五个命令按钮(Command1-Command5)
如何在VBA中调用数据库
如何在VBA中调用数据库在VBA编程中,调用数据库是一项非常有用的功能。
通过调用数据库,我们可以在VBA中连接和操作各种类型的数据库,包括Microsoft Access、SQL Server、Oracle 等,实现数据的读写和处理。
本文将详细介绍如何在VBA 中调用数据库,并给出一些实际应用的示例。
首先,我们需要在VBA中添加对数据库的引用。
在VBA编辑器中,点击"工具",再点击"引用",弹出引用对话框。
在这个对话框中,我们可以选择需要引用的数据库类型。
例如,如果我们要连接Microsoft Access数据库,可以选择"Microsoft Access XX.X Object Library",其中的XX.X表示具体版本号。
选择完毕后,点击"确定"按钮进行确认。
一旦成功引用了数据库,在VBA代码中就可以使用相关的对象和方法来连接和操作数据库了。
首先,我们需要创建一个数据库连接对象,以实现与数据库的连接。
对于不同类型的数据库,我们可以使用相应的连接对象。
以连接Microsoft Access数据库为例,我们可以使用"ADODB.Connection"对象来进行连接。
下面是一个连接Microsoft Access数据库的示例代码:```Dim conn As New ADODB.Connectionconn.ConnectionString ="Provider=Microsoft.ACE.OLEDB.12.0;DataSource=C:\example.accdb"conn.Open```在这个示例代码中,我们首先创建了一个名为"conn"的ADODB.Connection对象。
然后,通过设置"ConnectionString"属性指定了连接字符串,其中包括了Microsoft Access数据库的提供程序和文件路径。
MSCHART的使用之vb中利用MSCHART控件画二维散点图
MSCHART的使用之vb中利用MSCHART控件画二维散点图2008年03月31日星期一 16:12近日在学习傅立叶分解时,写了个小程序来验证自己对傅立叶分解的一些理解,为了更生动直观就需要画一些图形,以前总是用picture控件来实现,后来在网上看到VB中有个MSCHART控件可以来画很多类型的图形,就学习了一下,由于是第一次搞,所以按习惯在网上搜索相关帖子,发现没有一个很完整的关于MSCHART中二维散点图的例子,很是郁闷,经过我自己几天的努力,终于解决了这个问题.现以一个具体的例子来说明,希望我的这个例子能对大家有所帮助.这个例子是一个论坛上一位网友提出来的,但是这个问题一直到现在还没有人回答,我权当在这里回答一下吧.问题如下:如何用VB画出我附件中的图,请各位知道的高手指点下,小弟感激不尽!最好能根据我给的数据写出具体的源代码,或者类似的也可以。
再次感谢!上面是这个帖子的原始图形根据此我写了下面的代码Private Sub Form_Load()'对于二维散点图来说,第一列代表了X轴坐标,第二列代表了Y轴坐标'因此在定义二维数据时,第二维定义为0到1,第一维代表了第几点数据,可根据数据点数变化'下面以数据点数有21点为列子Dim MyData(20, 1) As Double'-----x轴坐标值-----Y轴坐标值----------MyData(0, 0) = 0: MyData(0, 1) = 180 '本句代表了:第一点数据的X轴坐标为0,Y轴坐标为180MyData(1, 0) = 6: MyData(1, 1) = 60MyData(2, 0) = 8: MyData(2, 1) = 60MyData(3, 0) = 11: MyData(3, 1) = 0MyData(4, 0) = 16: MyData(4, 1) = 0MyData(5, 0) = 19: MyData(5, 1) = 60MyData(6, 0) = 25.8: MyData(6, 1) = 60MyData(7, 0) = 28.8: MyData(7, 1) = 0MyData(8, 0) = 31.8: MyData(8, 1) = 60MyData(9, 0) = 40.3: MyData(9, 1) = 60MyData(10, 0) = 43.3: MyData(10, 1) = 0MyData(11, 0) = 93.3: MyData(11, 1) = 0MyData(12, 0) = 96.3: MyData(12, 1) = 60MyData(13, 0) = 99.3: MyData(13, 1) = 0MyData(14, 0) = 105.3: MyData(14, 1) = 0MyData(15, 0) = 135.3: MyData(15, 1) = 0MyData(16, 0) = 144.3: MyData(16, 1) = 180MyData(17, 0) = 148.8: MyData(17, 1) = 270MyData(18, 0) = 405.03: MyData(18, 1) = 270MyData(19, 0) = 409.53: MyData(19, 1) = 180MyData(20, 0) = 564.17: MyData(20, 1) = 180'波形图外观设置With MSChart1.TitleText = "速度 m/min"' '设置图线的外观.Plot.SeriesCollection(1).Pen.Width = 30.Plot.SeriesCollection(1).Pen.Style = VtPenStyleSolid' '设置XY轴.Plot.Axis(VtChAxisIdX).ValueScale.Auto = False.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False'// 设置最大值.Plot.Axis(VtChAxisIdX).ValueScale.Maximum = 600.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 300'// 设置最小值.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0.Plot.Axis(VtChAxisIdX).ValueScale.Minimum = 0'//.Plot.Axis(VtChAxisIdX).ValueScale.MajorDivision = 6 'X轴主要网格数量 .Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 6 'Y轴主要网格数量 .Plot.Axis(VtChAxisIdX).ValueScale.MinorDivision = 0 'X轴次要网格数量 .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 0 'Y轴次要网格数量 .Plot.Axis(VtChAxisIdX).AxisGrid.MajorPen.Style = VtPenStyleDotted.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen.Style = VtPenStyleDottedMSChart1.Plot.AutoLayout = FalseMSChart1.Plot.UniformAxis = FalseMSChart1.chartType = VtChChartType2dXY '设置图形为二维散点图MSChart1.ChartData = MyData '数据End WithEnd Sub运行后的效果图如下MSCHART的二维散点图对于实际工作是有很大用途的,例如数据采集中,实现时间变量的曲线等等.希望这个例子对大。
图表绘制控件mschart的使用方法1
图表绘制控件mschart的使⽤⽅法1VisualBasic中ActiveX控件MSChart的使⽤⽅法*依⽪提哈尔·穆罕买提,那斯尔江·⼟尔逊(新疆⼤学数学与系统科学学院,乌鲁⽊齐,830046)热依曼·吐尔逊(新疆⼤学信息⼯程学院,乌鲁⽊齐,830046)摘要:本⽂⾸先介绍了VisualBasic(简称VB)中MSChart控件的使⽤⽅法,然后通过简单的例⼦详细介绍了利⽤MSChart控件绘制Excel数据源图表的⽅法。
关键词:VisualBasic;MSChart控件;MicrosoftExcel数据表;图表;数据库The Methods of Using MSChart Control Based on VBIptihar.Muhammat,Nasirjan.Tursun(Mathematics and Systematic Science Institude of XinjiangUniversity,Urumqi,Xinjiang,830046)Reyima.Tursun(Information Science and Engineering Institude of Xinjiang University,Urumqi,Xinjiang,830046)Abstract:This article discusses how to use the MSChart control and how that is used in the VB project to drawing Microsoft? Excel charts.KeyWords: MSChart Control;Chartdata ;Mirosoft Excel Sheets;Chart;Database1. 引⾔Visual Basic中的MSChart控件是⼀个功能强⼤的⾼级图表⼯具,拥有丰富的图表绘制功能,⽤它来可以显⽰⼆维和三维的棒图、区域图、线形图、饼图等多种常⽤图表。
巧用 VB6 之 Data Report 实现图片(Picture)、图表(MsChart)的打印及预览
巧用 VB6 之 Data Report 实现图片(Picture)、图表(MsChart)的打印及预览VB 6.0 专业版和企业版中的数据报表设计器(Data Report Designer) 是用来实现打印数据库数据的有力工具。
在通常状况下, DataReport 的数据源(DataSource)应该是由数据库(DataBase)的基本表(Table)、视图(View)或查询(Query)等生成的,更确切的说该数据源应是一个ADODB.Recordset (二维表),而且ADO 允许生成并打开任意无数据库实体的记录集。
这样就可以为DataReport 随便设置一个数据源,用其实现实现图片打印的预览。
首先,新建"标准Exe"工程,再为工程添加"Data Report" 。
设置"工程属性"的启动对象为"DataReport"。
先使DataReport "显示报表标头/注脚"(右鼠键快捷菜单),再绘制一个RptImage 控件到"报表标头"区域。
然后,就可以编写程序代码了:Private DataReport_Initialize()'创建并打开一个任意的记录集,并将其设置为 DataReport 的数据源Dim adoRecordset As New ADODB.RecordsetadoRecordset.Fields.Append "X", adVariantadoRecordset.OpenSet Me.DataSource = adoRecordsetConst ErrorX = 400 '打印机横向误差Const ErrorY = 400 '打印机纵向误差Me.ReportWidth = Printer.Width - Me.LeftMargin - Me.RightMargin - ErrorXMe.Sections.Item("Section1").Height = 0Me.Sections.Item("Section3").Height = 0Me.Sections.Item("Section2").Controls.Item("Image1").PictureAlign ment = rptPACenterMe.Sections.Item("Section2").Controls.Item("Image1").SizeMode = rptSizeClipMe.Sections.Item("Section2").Controls.Item("Image1").Left = 0Me.Sections.Item("Section2").Controls.Item("Image1").Top = 0Me.Sections.Item("Section2").Height = Printer.Height - Me.TopMargin - Me.BottomMargin - ErrorYMe.Sections.Item("Section2").Controls.Item("Image1").Width= Me.ReportWidthMe.Sections.Item("Section2").Controls.Item("Image1").Height = Me.Sections.Item("Section2").HeightDim x As PictureSelect Case iCase 1 '打印 MsChart。
VB调用数据库数据画mschart折线图
Private Sub Command1_Click()On Error Resume NextDim i As IntegerDim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetSet conn = New ADODB.ConnectionSet rs = New ADODB.Recordsetconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\lwl.mdb"conn.Openrs.Open "select * from lwl", conn, adOpenKeyset, adLockOptimistic' Set MSChart1.DataSource = rsWith MSChart1'// 以线条方式显示.chartType = 3'// 把刻录改为手工方式.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False'// 设置最大值.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 1000'// 设置最小值.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0'// 设置每格为 1.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 1'// 设置收入和兼职收入总列数.ColumnCount = 2'//轴坐标标题.Plot.Axis(VtChAxisIdX, 0).AxisTitle = "日期".Plot.Axis(VtChAxisIdY, 0).AxisTitle = "收入"'//轴坐标标题字体大小的设置.Plot.Axis(VtChAxisIdX, 0).AxisTitle.VtFont.Size = 15 .Plot.Axis(VtChAxisIdY, 0).AxisTitle.VtFont.Size = 25'//设置图表标题.Title.Text = "日期和收入对应折线图"'// 显示图例说明.ShowLegend = True'// 标记每个点的值For i = 1 To .Plot.SeriesCollection.Count.Plot.SeriesCollection(i).DataPoints(-1).DataPointLa bel.LocationType = VtChLabelLocationTypeAbovePointNextIf rs.RecordCount > 0 Thenrs.MoveFirstElseExit SubEnd IfFor i = 0 To rs.RecordCount - 1.Column = 1 '收入曲线所在列.RowCount = rs.RecordCount.Row = i + 1.RowLabel = CStr(rs("日期")).Data = rs("收入").ColumnLabel = "收入" '图例说明文字'//兼职收入显示.Column = 2 '兼职收入曲线所在列.Data = rs("兼职收入").ColumnLabel = "兼职收入" '图例说明文字rs.MoveNextNextEnd WithEnd SubPrivate Sub Command2_Click() '下列示例设置图表查看距离和轴分段间距。
VB6.0中通过MSChart控件调用数据库
《VB6.0中通过MSChart控件调用数据库》VB6.0中的MSChart控件是一个功能强大的高级图表工具,拥有丰富的图表绘制功能,可显示二维和三维的棒图、区域图、线形图、饼图等多种常用图表。
近日我为了在双击图表的某个区域时将与该区域相对应的数据库的内容在DataGrid控件上显示出来,遇到了许多困难,最后用一个自定义的变量SelectSeries解决了问题,具体方法如下:设数据库名称为“学生信息”,有一Access表“学生成绩”,其内容为一个班学生的考试成绩,包括学号、姓名、成绩3个字段,成绩字段格式是字符型,值为“优”、“良”、“中”、“差”中的一个。
窗体Form1包括一个MSChart控件McScore,类型为二维饼图,用于显示每种成绩的学生数;一个ADO控件AdScore用于连接数据库;一个DataGrid控件DgScore用于以表格形式显示数据库内容。
工作过程为:双击饼图的某个区域,则DgScore显示相应成绩的学生名单。
代码如下:Option ExplicitDim SelectedSeries as Integer ′自定义变量Dim Rs() as String ′提取记录集用的字符串数组Private Sub Form_Load()′设定DataGrid控件的数据源DgScore.DataSource=″AdScore″′设定ADO控件的连接字串和初始的记录源,即显示内容AdScore.ConnectString=″Provider=Microsoft.OLEDB.3.51;Persist_Security Info=False;Data Source=学生信息″AdScore.RecordSource=″selet *from学生成绩order by成绩″AdScore.Refresh′预设好提取记录用的SQL语句Rs(1)=″select*from学生成绩where成绩=″+Chr(34)+″优″+_Chr(34)+″order by成绩″Rs(2)=″select *from学生成绩where成绩=″+Chr(34)+″良″+_Chr(34)+″order by成绩″Rs(3)=″select *from学生成绩where成绩=″+Chr(34)+″中″+_Chr(34)+″order by 成绩″Rs(4)=″select *from学生成绩where成绩=″+Chr(34)+″差″_Chr(34)+″order by成绩″End SubPrivate Sub McScore_SeriesSelected(Series as Integer,MouseFlags as _Integer,Cancel as Integer)SelectedSeries=SeriesEnd SubPrivate Sub McScore_PointSelected(Series as Integer,DataPoint as_Integer,MouseFlags as Integer,Cancel as Integer)SelectedSeries=SeriesEnd SubPrivate Sub McScore_Db1Click()′改变ADO控件的记录源并刷新Adoc1.RecordSource=Rs(SeletedSeries) Adoc1.RefreshEnd Sub(湖南高文杰)。
MSChart控件教程
MSChart控件教程MSChart控件这些内容是在学习过程中进行的整理,由于感到书籍资料或软件帮助中有时让人很不容易理解,特制作这个教程,以方便其他朋友学习,从新学习此控件的人的角度来描述相应的属性,相信也能让跟我一样程度的人更容易理解,可能在学习的过程中对某些属性与方法有理解不正确,请各位指正。
附录:1、AllowDynamicRotation作用:返回或设置是否可旋转图表注:需要图表的ChartType是3d类型才可以,当AllowDynamicRotation=True时,在图表中可按住ctrl+鼠标左键旋转图表。
示例:下列代码在窗体加载时将MSChart1设置为3d柱形图,并允许按住ctrl+鼠标左键旋转。
(窗体上放一个MSChart控件)Private Sub Form_Load()With MSChart1.chartType = VtChChartType3dBar '类型为3d柱形图,类形常数详见附录.AllowDynamicRotation = True '允许旋转End WithEnd Sub下列代码将以对话框的形式返回上面示例的AllowDynamicRotation值:MsgBox MSChart1.AllowDynamicRotation2、ChartData注:书中及软件帮助文档中说到数组需要变体型数值,是指如果要将数组第一个元素作为标题,其他作为数据,那个这个数组既有字符又有数字,那么就需要一个变体形。
如果数组中并不包含标题(或是之后使用属性来赋于标题),那么数组是可以定义类形的,个人建议先给定数组类型,之后再使用属性来设置标题。
作用:设置:将一个数组的数据作表图表的显示数据返回:将图表数据赋给一个数组示例:将数组元素作为图表的显示数据制作一个1行6列的的图表(数组的维代表图表的行,每维的元素代表列)Private Sub Form_Load()Dim 一维数组(1 To 6)'为了表示得更清楚,我们采取逐个赋值的方法一维数组(1) = 1一维数组(2) = 2一维数组(3) = 3一维数组(4) = 4一维数组(5) = 5一维数组(6) = 6With MSChart1.chartType = VtChChartType2dBar '类型为3d柱形图.ChartData = 一维数组()End WithEnd Sub为了理解图表的行列与数组的维数的对应关系,再举例一个二维数组(图表对应就形成2行6列)Private Sub Form_Load() Dim 二维数组(1 To 2, 1 To 6)'为了表示得更清楚,我们采取逐个赋值的方法二维数组(1, 1) = 1二维数组(1, 2) = 2二维数组(1, 3) = 3二维数组(1, 4) = 4二维数组(1, 5) = 5二维数组(1, 6) = 6二维数组(2, 1) = 1二维数组(2, 2) = 2二维数组(2, 3) = 3二维数组(2, 4) = 4二维数组(2, 5) = 5二维数组(2, 6) = 6With MSChart1.chartType = VtChChartType2dBar '类型为2d柱形图.ChartData = 二维数组()End WithEnd Sub下面是将数组的第一个元素设置成字符,使图表加载时将其作为标题的示例:Private Sub Form_Load()Dim 二维数组(1 To 2, 1 To 6)'为了表示得更清楚,我们采取逐个赋值的方法二维数组(1, 1) = "第一行标题"二维数组(1, 2) = 2二维数组(1, 3) = 3二维数组(1, 4) = 4二维数组(1, 5) = 5二维数组(1, 6) = 6二维数组(2, 1) = "第二行标题"二维数组(2, 2) = 5二维数组(2, 3) = 4二维数组(2, 4) = 3二维数组(2, 5) = 2二维数组(2, 6) = 1With MSChart1.chartType = VtChChartType2dBar '类型为2d柱形图.ChartData = 二维数组()End WithEnd Sub最后总结数组元素与维和图表行列的对应关系,作以下关系图:上述例子是将数组的内容反应到图表中,下面我们将使用上面的一维和二维图表,从图表中获得数据给数组,并将数组显示出来以验证结果(我们采取设置一个断点,然后通过视图\本地的方式来查看生成的数组):从图中可以看到,对于我们用2给数组生成的图表,再赋给新的数组时,数组变成了3维,并且每维还多了一个元素用来存储行标签,既“R1”、“R2”,多出来的一维用来存储列标签,既“C1”、“C2”等。
使用VB数据控件访问数据库
使用VB数据控件访问数据库Visual Basic是一种功能强大的编程语言,它允许程序员使用数据控件访问数据库。
在本文中,我们将介绍如何使用VB数据控件来连接和操作数据库。
首先,我们需要使用VB的数据控件来建立与数据库的连接。
VB提供了多种数据控件,包括ADO控件(ActiveX Data Objects,ActiveX数据对象)、DAO控件(Data Access Objects,数据访问对象)和ODBC控件(Open Database Connectivity,开放数据库连接)等。
在这里,我们将使用ADO控件。
要使用ADO控件,我们首先需要将其添加到项目中。
打开VB的开发环境,选择"工具"->"选项"->"控件"选项卡。
在这里,我们可以看到可用的控件列表。
找到ADO控件并勾选它,然后点击"应用"和"确定"。
在VB的表单上添加一个数据控件(如ADODC控件),这个控件将用于建立与数据库的连接。
在属性窗口中,我们可以设置连接字符串,选择需要连接的数据库,以及指定用户名和密码等。
可以使用连接字符串来指定连接的数据库类型和位置,如"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\mydatabase.mdb;User Id=admin;Password=;"一旦连接到数据库,我们就可以使用数据控件来执行各种数据库操作,如查询、插入、更新和删除等。
数据控件提供了一些方法和属性,可以轻松地执行这些操作。
此外,我们还可以使用数据控件的AddNew方法和Update方法来插入和更新数据库记录。
例如,我们可以使用Recordset.AddNew方法添加一条新的记录,然后使用Recordset.Update方法将更改保存到数据库中。
当我们完成对数据库的操作后,我们需要关闭数据库连接。
MSChart控件在Visual Basic环境下的应用与研究
MSChart控件在Visual Basic环境下的应用与研究张利利;李娅;胡文东【摘要】目的:开发一个主要用于测试飞行人员能力水平的系统,该系统也可用于高危工作人群能力水平的测试.方法:利用Visual Basic开发环境自带的MSChart控件实现了反映能力水平数据的实时显示.结果:使数据库中存储的大量反映能力水平高低的时间数据能够更直观、清楚的显示,实现了测评的智能化,提高了主试者的工作效率.结论:该系统具有较强的通用性,可用于类似的测评系统中.【期刊名称】《医疗卫生装备》【年(卷),期】2014(035)005【总页数】3页(P50-52)【关键词】能力测评;时间曲线;MSChart;ADO【作者】张利利;李娅;胡文东【作者单位】710032西安,第四军医大学航空航天医学系;710032西安,第四军医大学航空航天医学系;710032西安,第四军医大学航空航天医学系【正文语种】中文【中图分类】R318;TP311.10 引言Visual Basic(VB)作为快速开发 Windows下的编程工具,由于其功能强大、简单易用而受到越来越多的开发者的青睐。
VB具有很强的数据访问能力,和数据库的连接也十分便利[1],而衡量能力水平高低的最主要的依据就是测试者回答题目的正确个数及反应时间。
如果回答题目的反应时间很短但错误很多,或者正确个数很多但反应时间很长,都表示该测试者的能力水平不高。
那么如何将每个测试者的每道题的回答时间用图形直观地显示出来,让主试者很快看出哪个测试者的综合能力水平比较高,是本系统要完成的一个主要功能。
VB编程环境虽然使用简单,但它本身没有自动绘制图形的能力,需要借助编程来实现[2]。
一种方法是通过 Object.Line(X1,Y1)-(X2,Y2)函数来实现,其中Object为绘制曲线的对象,(X1,Y1)为曲线的起点坐标,(X2,Y2)为曲线的终点坐标。
如果系统只需要简单的几条曲线,用该函数绘制倒还省事,而且绘制图形比较灵活,可以根据用户的需求进行编写。
文献翻译-VB程序访问数据库的两种途径
附录1 外文翻译VB程序访问数据库的两种途径VB是Microsoft公司开发的一种面向对象的编程语言。
虽然VB不是数据库管理系统软件,但由于他提供了功能强大的数据库访问支持,使用他可以快速开发出数据库应用系统。
由于他还具有简单易学、可视化编程等优点,得到了许多数据库开发者的青睐。
开发数据库应用系统必须遵循特定的数据库访问接口,从而建立数据库连接,打开数据库的数据表,访问数据记录等。
VB程序访问数据库有两种途径:(1)使用数据控件访问数据库VB 6内置了Jet数据库引擎提供的数据访问功能。
VB提供的"数据控件"封装了常用的访问数据库所需的属性、方法和事件,是快速开发数据库应用系统的得力助手。
数据控件提供了快速处理各种格式数据库的能力,开发者不必了解数据库的具体构造和复杂的编程接口就能方便有效地访问数据库中的数据,从而极大地降低了数据库应用系统的开发难度,加快了开发周期。
在使用数据控件访问数据库时,一般只需设置数据控件的某些属性就可以了。
使用数据控件的基本技巧如下:①设置数据控件的Data Name属性Data Name属性指定了数据控件要连接的数据库名称。
利用DataName属性,可以返回或设置数据控件的数据源的名称和位置。
数据库类型有DataName所指向的文件或目录指定。
②设置数据控件的Record Source属性Record Source属性指定了数据控件要连接的数据表名称,该数据表应是Data Name所指定的数据库中的某个数据表。
利用Record Source属性,可以指定数据控件所要连接的数据记录来源。
③设置数据感知控件的Data Source属性数据感知控件用来显示数据库中的数据,如文本框控件(TextBoxContr01)就是一个数据感知控件。
应将数据感知控件的Data Source属性设置为数据控件的名称。
这样一来,数据感知控件就可以显示数据库中的数据了。
④设置数据感知控件的Data Field属性Data Field属性指定了数据感知控件要显示的字段,该字段应是数据控件所指定的数据表中的字段。
VB调用数据库数据画mschart折线图
Private Sub Command1_Click()On Error Resume NextDim i As IntegerDim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetSet conn = New ADODB.ConnectionSet rs = New ADODB.Recordsetconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\lwl.mdb"conn.Openrs.Open "select * from lwl", conn, adOpenKeyset, adLockOptimistic' Set MSChart1.DataSource = rsWith MSChart1'// 以线条方式显示.chartType = 3'// 把刻录改为手工方式.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False'// 设置最大值.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 1000'// 设置最小值.Plot.Axis(VtChAxisIdY).ValueScale.Minimum = 0'// 设置每格为1 .Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 1'// 设置收入和兼职收入总列数.ColumnCount = 2'// 轴坐标标题.Plot.Axis(VtChAxisIdX, 0).AxisTitle = " 日期".Plot.Axis(VtChAxisIdY, 0).AxisTitle = " 收入"'// 轴坐标标题字体大小的设置.Plot.Axis(VtChAxisIdX, 0).AxisTitle.VtFont.Size = 15.Plot.Axis(VtChAxisIdY, 0).AxisTitle.VtFont.Size = 25'// 设置图表标题.Title.Text = " 日期和收入对应折线图'// 显示图例说明.ColumnLabel = "收入 " 图例说明文字.ShowLegend = True'// 标记每个点的值For i = 1 To .Plot.SeriesCollection.Count.Plot.SeriesCollection(i).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeAbovePointNextIf rs.RecordCount > 0 Thenrs.MoveFirstElseExit SubEnd IfFor i = 0 To rs.RecordCount - 1.Column = 1.RowCount = rs.RecordCount.Row = i + 1.RowLabel = CStr(rs(" 日期 ")).Data = rs(" 收入 ").Column = 2' 兼职收入曲 线所在列收入曲线所在列'// 兼职收入显示.Data = rs(" 兼职收入").ColumnLabel = " 兼职收入" ' 图例说明文字rs.MoveNextNextEnd WithEnd SubPrivate Sub Command2_Click() ' 下列示例设置图表查看距离和轴分段间距。
VB调用数据库数据画mschart折线图
Private Sub Command1_Click()On Error Resume NextDim i As IntegerDim conn As NewDim rs As NewSet conn = NewSet rs = New= "Provider= Source=" & & "\""select * from lwl", conn, adOpenKeyset, adLockOptimistic' Set = rsWith MSChart1'hartType = 3'VtChAxisIdY). = False'VtChAxisIdY). = 1000'VtChAxisIdY). = 0'VtChAxisIdY). = 1'olumnCount = 2'VtChAxisIdX, 0).AxisTitle = "日期".(VtChAxisIdY, 0).AxisTitle = "收入"'VtChAxisIdX, 0). = 15.(VtChAxisIdY, 0). = 25'= "日期和收入对应折线图"'howLegend = True' .(i).DataPoints(-1). = VtChLabelLocationTypeAbovePointNextIf > 0 ThenElseExit SubEnd IfFor i = 0 To - 1.Column = 1 '收入曲线所在列.RowCount =.Row = i + 1.RowLabel = CStr(rs("日期")).Data = rs("收入").ColumnLabel = "收入" '图例说明文字'olumn = 2 '兼职收入曲线所在列.Data = rs("兼职收入").ColumnLabel = "兼职收入" '图例说明文字NextEnd WithEnd SubPrivate Sub Command2_Click() '下列示例设置图表查看距离和轴分段间距。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《VB6.0中通过MSChart控件调用数据库》
VB6.0中的MSChart控件是一个功能强大的高级图表工具,拥有丰富的图表绘制功能,可显示二维和三维的棒图、区域图、线形图、饼图等多种常用图表。
近日我为了在双击图表的某个区域时将与该区域相对应的数据库的内容在DataGrid控件上显示出来,遇到了许多困难,最后用一个自定义的变量SelectSeries解决了问题,具体方法如下:设数据库名称为“学生信息”,有一Access表“学生成绩”,其内容为一个班学生的考试成绩,包括学号、姓名、成绩3个字段,成绩字段格式是字符型,值为“优”、“良”、“中”、“差”中的一个。
窗体Form1包括一个MSChart控件McScore,类型为二维饼图,用于显示每种成绩的学生数;一个ADO控件AdScore用于连接数据库;一个DataGrid控件DgScore用于以表格形式显示数据库内容。
工作过程为:双击饼图的某个区域,则DgScore显示相应成绩的学生名单。
代码如下:
Option Explicit
Dim SelectedSeries as Integer ′自定义变量
Dim Rs() as String ′提取记录集用的字符串数组
Private Sub Form_Load()
′设定DataGrid控件的数据源
DgScore.DataSource=″AdScore″
′设定ADO控件的连接字串和初始的记录源,即显示内容
AdScore.ConnectString=″Provider=Microsoft.OLEDB.3.51;Persist_Security Info=False;Data Source=学生信息″
AdScore.RecordSource=″selet *from学生成绩order by成绩″
AdScore.Refresh
′预设好提取记录用的SQL语句
Rs(1)=″select*from学生成绩where成绩=″+Chr(34)+″优″+_Chr(34)+″order by成绩″
Rs(2)=″select *from学生成绩where成绩=″+Chr(34)+″良″+_Chr(34)+″order by成绩″
Rs(3)=″select *from学生成绩where成绩=″+Chr(34)+″中″+_Chr(34)+″order by 成绩″
Rs(4)=″select *from学生成绩where成绩=″+Chr(34)+″差″_Chr(34)+″order by成绩″
End Sub
Private Sub McScore_SeriesSelected(Series as Integer,MouseFlags as _Integer,Cancel as Integer)
SelectedSeries=Series
End Sub
Private Sub McScore_PointSelected(Series as Integer,DataPoint as_Integer,MouseFlags as Integer,Cancel as Integer)
SelectedSeries=Series
End Sub
Private Sub McScore_Db1Click()
′改变ADO控件的记录源并刷新Adoc1.RecordSource=Rs(SeletedSeries) Adoc1.Refresh
End Sub
(湖南高文杰)。