【问题标题】:VBA Test if Access linked table has #Num! errorsVBA测试Access链接表是否有#Num!错误
【发布时间】:2016-10-06 15:56:42
【问题描述】:

我正在尝试找出一种方法来判断是否有任何字段具有#Num!链接的 Excel 表的任何行中的错误。

我能想到的唯一方法是动态构建一个查询,该查询显示表中任何字段等于 #Num! 的记录,并查看该查询中的记录数是否大于 0。

我只能有限地控制前端放入的内容,因此我尝试在使用结果之前对我的部分进行一些额外的验证。

错误是由于在该列中的一些单元格中输入了数字文本,并且访问已查看该列并确定它是数字但随后不喜欢这些单元格。

有人认为有什么不那么密集的测试吗?

【问题讨论】:

  • 首先想到的是尝试解决导致 #Num! 的根本问题!错误,因此您不必处理异常。如果第一个想法不是一个选项,则第二个想法是连接 SQL 语句的 where 子句中的所有字段并指定 Not Like "Num#!"或者但是“坏”数据由 Access 解释。
  • 在我使用结果之前尝试对我的部分进行一些额外的验证 .. 你的部分是什么?你如何使用结果?如果您正在为前端编写代码或查询,那么您的控制权就不止于此。
  • 我不是在前端写查询。它们必须是电子表格,我无法更改。我的职责是获取它们,将它们导出为 CSV 文件,然后将它们 sftp 到其他地方。那一点工作正常,但#Num!单元格被导出为空值。
  • 用这个重要的事实更新您的问题 - 您只使用 Access 将链接的 excel 文件导出为 CSV 格式?所以您可以完全控制 Access 数据库以及它如何读取和导出数据?您必须使用宏或 VBA,对吗?
  • 导出必须是 CSV 格式,没有任何文本限定符。我正在使用 VBA,它在标题中并且是一个标签。这个问题确实表明我正在考虑动态计算每个 Excel 工作表中的记录数,其中任何列都有错误文本,我很确定你只能在 VBA 中做到这一点。我不想包含太多我认为多余的信息,因为我知道这会让一些人阅读很长的帖子。我的导出部分很好,我可以发布它,但它不太可能增加重点。

标签: excel ms-access vba


【解决方案1】:

我使用了here 解决方案,但对我来说这不是一个很好的解决方法。它使链接的 excel 在访问中至少具有一行和一列,然后我随后得到了解决。你似乎无法拿起#Num!在查询中,如果您执行 IsError([FieldName] 它会给出错误而不是 True。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-16
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2010-09-24
    • 2016-09-20
    相关资源
    最近更新 更多