从Access 2016中的单元格范围返回非空字符串

时间:2017-07-05 11:49:58

标签: vba ms-access access-vba

所以我继承了需要一些调整的Access 2016数据库,我需要帮助,因为我熟悉Access,但我不是最好的(不是很远,或者根本没有):)

db的设置如下: 数据链接到4个SQL Server数据库,这些数据库从每个数据库导入两个表,一个是客户端,一个是预期客户端(这是出于查找目的,因为客户端不想手动执行任何操作)。在Access中更新的唯一表中,有8列,一列是客户端,另一列是每个SQL数据库的预期客户端。看起来像这样:

Highveld_Client | Highveld_Prospect | Eastern_Client | Eastern_Prospect | Northern_Client | Northern_Prospect | Africa_Client | Africa_Prospect

每个都是一个下拉框,并查找正确的数据。但这是一个非常乏味的报告(你可以想象)。我在想的是根据这些字段中的哪一个不为空来自动更新字段。

我需要的是以下内容:

在上面显示的8个字段中,只有1个字段会被填充。 我需要使用这些字段中填充的数据自动更新新字段。

为了爱我,我似乎无法找到一个可以指导我如何做到这一点的地方。我花了几天时间搜索教程和论坛,以及nada。我知道如果我需要这样做,它很可能是一个VBA代码,但它不会发生,知道我,我将最终部署核导弹或灾难性的东西。

提前感谢您,您永远不会知道您在这些论坛上的所有帮助对您有多大帮助,或者对此表示赞赏。

1 个答案:

答案 0 :(得分:1)

只需使用SQL的强大功能,即可在不触及VBA的情况下解决此问题。请尝试以下查询:

  SELECT Highveld_Client AS Client, Highveld_Prospect AS Prospect, "Highveld" As Region
  From MyTable
  WHERE Highveld_Client IS NOT NULL OR Highveld_Prospect IS NOT NULL
UNION ALL
  SELECT Eastern_Client AS Client, Eastern_Prospect AS Prospect, "Eastern" As Region
  From MyTable
  WHERE Eastern_Client IS NOT NULL OR Eastern_Prospect IS NOT NULL
UNION ALL
  SELECT Northern_Client AS Client, Northern_Prospect AS Prospect, "Northern" As Region
  From MyTable
  WHERE Northern_Client IS NOT NULL OR Northern_Prospect IS NOT NULL
UNION ALL
  SELECT Africa_Client AS Client, Africa_Prospect AS Prospect, "Africa" As Region
  From MyTable
  WHERE Africa_Client IS NOT NULL OR Africa_Prospect IS NOT NULL