如何使用MS Access VBA中的数据初始化图表?最终,我发现了一个建议here,并对其进行了一些修改,使他们对智能感觉很满意,并产生了以下代码:
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是有效字段,但它没有告诉我期望的对象类型。我已经对此进行了广泛的搜索,结果空白了。我可以为Access VBA找到的最佳参考是Building VBA Apps和this,但是在Charts或ChartObjects上都没有详细介绍。
很显然,我想克服这种类型的不匹配错误。最好的办法是,如果某个语言reference中最接近的内容在您需要的语言中保持沉默,那么有人可以给我一些一般性建议,以解决该问题。
答案 0 :(得分:0)
这是一种实现方法。首先,创建一个新表并添加一些数据:
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