已有23人关注
关于mschart 求助。。。。。
发表在VB答疑区 2012-03-28
是否精华
版块置顶:
您好! 亲~

我要用做一个角偏值时程变化曲线图,
于是乎最近就买了两本书,《visual basic 程序开发范例宝典》和《visual basic数据库系统开发自学手册》。
按照上面两个案例模仿着做 ,效果都没出来。。。。
第一个案例:《visual basic 程序开发范例宝典》P706 实例394  光盘\12\394
      我的数据库表:
 

还没运行的界面:
 
运行时效果没有 ,还提示from子句错误,  我很无解,请帮忙。。。。啊  求救。。

模仿的自编程序:
Private Sub Command1_Click()
  Adodc1.RecordSource = "select 日期 , 角偏值  from [小角法水平位移]  where 监测点号='" & Combo1.Text & "') group by 观测日期"
  Adodc1.Refresh
  Set MSChart1.DataSource = Adodc1
  MSChart1.TitleText = Combo1.Text
End Sub

Private Sub Form_Load()
  MSChart1.chartType = VtChChartType2dLine
  Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\毕设数据库\高程观测表.mdb;Persist Security Info=False"
  Adodc1.RecordSource = "select distinct 监测点号 from [小角法水平位移]"
  Adodc1.Refresh
  
  For i = 0 To Adodc1.Recordset.RecordCount - 1
      Combo1.AddItem Adodc1.Recordset.Fields(2).Value
      Adodc1.Recordset.MoveNext
      
      
  Next i
  Combo1.Text = Combo1.List(1)
End Sub
 结果效果没有 ,还提示from子句错误,  我很无解,请帮忙。。。。啊  求救。。




第二个案例:《visual basic数据库系统开发自学手册》P249  11.3.3 光盘\mr\11\sl\14
  因为我的表跟你们的案例上的表结构不一样,我把代码改了下,效果没出来,而且标注也重复了,按照我的代码设置,应该不会重复的,应该只有一次007,008     如图:
 


我的编程:
Private Sub Command1_Click()
  Dim cnn As New ADODB.Connection
  Dim rs As New ADODB.Recordset
  cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\毕设数据库\高程观测表.mdb;Persist Security Info=False"
  rs.Open "select 期数,观测日期,监测点号,角偏值 from 小角法水平位移", cnn, adOpenKeyset, adLockOptimistic
  
 Dim js%, js1%, j%, i%
  For i = 1 To rs.RecordCount
   If rs.Fields("期数") = 1 Then
   js = js + 1
   End If
 Next i
   
   js1 = rs.RecordCount / js
   
  '填充数据
  With MSChart1
      .ShowLegend = True
      .chartType = VtChChartType2dLine
      
      
      
      .ColumnLabel = js
      .ColumnCount = js
      
      .RowLabelCount = js1
      .RowCount = js1
      
      '设置row标签
      For i = 1 To js1
           rs.MoveFirst
          .Row = i
          For j = 1 To js
             .Column = j
             .Data = MSHFlexGrid1.TextMatrix(j + js * (i - 1), 7)
             .RowLabel = MSHFlexGrid1.TextMatrix(1 + js * (i - 1), 2)
             rs.MoveNext
          Next j
      Next i
      '设置横坐标标签
      rs.MoveFirst
      For i = 1 To js
          .Column = i
          .ColumnLabel = rs.Fields("监测点号").Value
          rs.MoveNext
      Next i
      
  End With
  '释放变量
  Set rs = Nothing
  Set cnn = Nothing
End Sub


请帮忙看下哪边有问题啊 。。。。。。。。。。我纠结死了  谢谢

尤其帮我解决下第二个 ,我是花老半天编出来的啊。。。。。。。。。。。。

   
谢谢 谢谢  谢谢  希望百忙中抽点空,我很感激啊。。。。。。。。。。。。。。
分享到:
精彩评论 1
C语言
学分:0 LV1
TA的每日心情
无聊
2021-11-12 22:00:04
2012-03-29
沙发
第一个问题
"select 日期 , 角偏值 from [小角法水平位移] where 监测点号='" & Combo1.Text & "') group by 观测日期"
如果combo1.text值为5,可得
select 日期 , 角偏值 from [小角法水平位移] where 监测点号='5') group by 观测日期
是不是from 子名错误呢?
第二个问题
数据库内容
期数,观测日期,监测点号,角偏值
1    12      13        14
2    22      23        24
3    32      33        34
得到数据的方法是
for i=0 to rs.recordcount-1
  for j=0 to 3
    a(i,j)=rs(j)
  next
  rs.movenext
next
通过movenext获得的数据本质是一维的,通过rs(j)才能得到二维数据,
movefirst不是到每一行的第一列,每一行的第一列用rs(0)表示,
在你的程序中外循环中每次执行movefirst,,每次都到表中第一行,因此数据是重复的。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照