Access VBA 中的图表

亚历贝尔

如何使用 MS Access VBA 中的数据初始化图表?最终我在这里找到了一个建议,通过一些修改使智能感知满意并产生了以下代码:

Dim objchart As Chart

Dim arrData(3, 1) As Double

arrData(0, 0) = 1
arrData(1, 0) = 1
arrData(2, 0) = 1
arrData(3, 0) = 1

arrData(0, 1) = 1
arrData(1, 1) = 1
arrData(2, 1) = 1
arrData(3, 1) = 1

Set objchart = Me.Chart1

With objchart
    .ChartTitle = "test"
    .ChartType = acChartLine
    .ChartValues = arrData
End With

但这会抛出

编译错误:类型不匹配

在线上

    .ChartValues = arrData

我已经尝试将它作为“行优先”(arrData(1, 3))并且也只是传入一个数组(arrData(3))。这些都会导致相同的类型不匹配错误。虽然智能感知告诉我 Chart1 存在,并且 .ChartValues 是一个有效字段,但它并没有告诉我它期待什么样的对象。我在谷歌上对此进行了广泛的搜索,结果是空的。我能找到的最好的参考访问VBA是构建VBA应用程序这个,但没有进入细节上的图表或ChartObjects。

显然,我想克服这种类型不匹配错误。更好的是,如果有人能给我一些关于如何解决这个问题的一般建议,当与语言参考最接近的事情在您需要的语言部分保持沉默时。

亚历贝尔

这是一种方法。首先,创建一个新表并添加一些数据:

Private Sub Form_Load()

  Dim db As DAO.Database
  Dim rec As Recordset
  Dim tbl As DAO.TableDef

  Set db = CurrentDb
  Set tbl = db.CreateTableDef("tbl")

  With tbl
    .Fields.Append .CreateField("first", dbInteger)
    .Fields.Append .CreateField("second", dbInteger)
  End With

  db.TableDefs.Append tbl
  db.TableDefs.Refresh

  Set rec = db.OpenRecordset("tbl")

  rec.AddNew
  rec("first").Value = 0
  rec("second").Value = 2
  rec.Update

  rec.AddNew
  rec("first").Value = 1
  rec("second").Value = 2
  rec.Update

  rec.AddNew
  rec("first").Value = 2
  rec("second").Value = 2
  rec.Update

  rec.AddNew
  rec("first").Value = 3
  rec("second").Value = 2
  rec.Update

  Set rec = Nothing
  Set db = Nothing

End Sub

其次,通过引用新表来绘制该数据:

Private Sub command0_click()

  Dim objchart As Chart
  Set objchart = Me.Chart1

  With objchart
    .ChartTitle = "tbl: second ~ first"
    .RowSource = "tbl"
    .ChartAxis = "first"
    .ChartValues = "second"
  End With

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章