IvyChart对象已添加到新创建的报告中,并干扰了版本控制

时间:2019-01-23 13:22:03

标签: vba ms-access access-vba

我正在使用类似于this answer中描述的版本控制和更新解决方案,该解决方案使用SaveAsTextLoadFromText管理增量更新。

但是,最近在加载使用LoadFromText在不同计算机上创建的使用SaveAsText保存的报告时出现了问题。我将此问题归结为以下问题:

MCVE

在PC 1上:

  1. 创建一个新数据库
  2. 使用功能区 Create ,然后使用 Table 按钮
  3. 在该数据库中创建表
  4. 关闭并保存该表
  5. 通过选择表格并按 Create ,然后按 Report
  6. 来创建报告。
  7. 关闭并保存报告
  8. 在立即窗口中,执行SaveAsText acReport, "Table1", "C:\SomePath\Report.txt"

在PC 2上:

  1. 创建一个新数据库
  2. 在立即窗口中,执行LoadFromText acReport, "Table1", "C:\SomePath\Report.txt"
  3. 我收到一个通用错误,在数据库位置创建了一个名为 error.txt 的文件,并在其中指出 Expected:对象名。观察到:IvyChart

更多观察结果:

文本文件 Report.txt 大约为100 KB(以前基于小表导出的报告大约为40 KB)。

在report.txt文件中,您可以找到包含以下内容的报告:

  • BoundObjectFrame
  • 图表
  • UnboundObjectFrame
  • 一个CustomControl
  • 一个WebBrowser
  • 一个NavigationControl
  • 具有以下属性的IvyChart:

    UnknownProp = {48 ,329 ,2 ,1 ,1 } Begin
        0x00
    End
    UnknownProp = {49 ,11 ,2 ,1 ,1 } Begin
        0x00
    End
    UnknownProp = {98 ,150 ,3 ,4 ,2 } Begin
        0xb811
    End
    UnknownProp = {99 ,44 ,3 ,4 ,2 } Begin
        0x130b
    End
    UnknownProp = {260 ,462 ,4 ,4 ,4 } Begin
        0x27000080
    End
    UnknownProp = {295 ,616 ,4 ,0 ,4 } Begin
        0x01000000
    End
    UnknownProp = {300 ,756 ,10 ,4 ,22 } Begin
        0x4300680061007200740020005400690074006c006500
    End
    

其他控件都没有这些 UnknownProp 属性。

当我在PC 2上使用相同的步骤创建报告时,所有这些控件都不会显示。

所有这些控件在报表本身上都不可见。从具有Office 2016(365)1803版的计算机中导出并在较旧版本的Office 2016中导入时,该问题主要表现出来。

Access没有使用任何加载项,COM或其他方式。对于空白数据库,会发生这种情况,因此只能使用默认引用。

有人知道这个IvyChart对象是什么,为什么它存在于所有基于现有对象的新创建的报表上,以及为什么所有其他这些看似随机的不可见控件都附带了呢?

我可以停止Access将这些不可见的控件添加到新报告中吗?

搜索IvyChart或咨询其他资源根本没有带来任何见识。

我只能在PC 2上打开数据库,然后从那里使用SaveAsText。但是,如果我这样做,就不会出现怪异的控件,但是文本文件中充满了这样的行:

Begin
End

这使得在任何计算机上导入文本文件都无效。

我现在的解决方法是在基于对象创建新报表时,选择所有控件,将所有控件(使用ctrl + A)复制到空白报表中,然后保存该报表。可以复制的事实以及这些隐藏的控件会导致错误的事实没有被复制,这让我感到有些不高兴。

1 个答案:

答案 0 :(得分:3)

IvyChart是O365中添加的新Chart控件类型的内部控件名称。 Office 2016不支持此控件类型,因此在尝试从表单中加载LoadText或包含它们的报表时会出错。

请注意,2016 Access仍然可以打开这些表单/报告,但不会显示图表。

如果要使用新图表,则需要使用Office 365或Office 2019。