Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 访问表单:将自定义属性传递到图表_Forms_Ms Access_Vba - Fatal编程技术网

Forms 访问表单:将自定义属性传递到图表

Forms 访问表单:将自定义属性传递到图表,forms,ms-access,vba,Forms,Ms Access,Vba,我正在构建一个表单,它应该显示一些直方图来聚合一些查询。由于access对柱状图没有本机支持,因此设置为每个图表的数据源的SQL查询相对冗长且重复。其思想是在xy图中手动绘制直方图中每列的所有角点。目前,我通过以下查询实现了这一点: select bin(field,50,-1000,1000) - 25 AS bin, 1 as cnt, 3 as ord FROM tab GROUP BY bin(field,50,-1000,1000) - 25 union al

我正在构建一个表单,它应该显示一些直方图来聚合一些查询。由于access对柱状图没有本机支持,因此设置为每个图表的数据源的SQL查询相对冗长且重复。其思想是在xy图中手动绘制直方图中每列的所有角点。目前,我通过以下查询实现了这一点:

select
    bin(field,50,-1000,1000) - 25 AS bin,
    1 as cnt,
    3 as ord
FROM tab
GROUP BY bin(field,50,-1000,1000) - 25

union all

select
    bin(field,50,-1000,1000) - 25 AS bin,
    Count(*) AS cnt,
    4 as ord
FROM tab
GROUP BY bin(field,50,-1000,1000) - 25

union all

select
    bin(field,50,-1000,1000) + 25 AS bin,
    Count(*) AS cnt,
    1 as ord
FROM tab
GROUP BY bin(field,50,-1000,1000) + 25

union all 

select
    bin(field,100,-2000,2000) + 500 AS bin,
    1 as cnt,
    2 as ord
FROM tab
GROUP BY bin(field,50,-1000,1000) + 25

order by bin, ord
其中,bin是一个VBA函数,它根据bin宽度和边界选择bin。您可能会注意到,在这个查询中,binning配置发生了八次

我想向可以在查询中引用的图表控件添加自定义属性。有人知道如何做到这一点吗


备注:您可能会建议我使用其他控件来配置装箱。然而,我有很多这样的图表,我想很容易地添加新的单独装箱。如果我有其他用于装箱的控件,我也必须复制它,并在SQL中调整对它们的引用,我认为这不会减少工作量。

没有当前图表这样的东西,因为表单可以包含许多图表。但是,您可以识别表单上的所有图表,并对它们执行特定操作:

Dim ctl As Control
For Each ctl In Me.Controls 'Or Forms!SomeForm.Controls
    If TypeOf ctl Is Access.ObjectFrame 'OLE object, can be chart
        If ctl.OLEClass = "Microsoft Graph Chart"
            'Do stuff with the ctl.Tag property
        End If
    End If
Next

自定义属性是什么意思?这里有一个标记属性,你可以用它来做任何你想做的事情。@ErikvonAsmuth啊,这听起来像是解决方案的前半部分。如何在不明确知道其名称的情况下引用当前图表控件的属性?类似于
Me.Properties(“标记”)
?谁“拥有”一个查询?我想问的是:给定一个具有SQL查询作为其数据源的控件:是否可以在不知道该控件名称的情况下从其关联的SQL中访问该控件的属性?我刚才为您提供了一种迭代表单上所有控件的方法。您可以对报告执行相同的操作。在我的示例中,您可以使用
ctl
对象引用控件。我了解您的方法。但是,我希望在不基于Tag属性在VBA中重建整个查询的情况下实现这一点。。。你问了很多不同的问题,其中大部分是不可能的。您不能从queryA查询中引用未知控件。查询不知道它与哪个控件关联。查询与Access的GUI/VBA部分是分开的。