MS Access查询循环宏

时间:2014-03-02 23:50:10

标签: sql loops ms-access access-vba

我正在尝试在MS Access中编写包含查询循环的exe。 exe将获取一个csv文件并循环遍历运行多个查询的代码行以执行不同的函数。

循环如下图所示:

Query Loops

查询已经存在,是否可以简单地调用类似于php变量的循环?

此外,我是否可以设置一个将在未来查询中运行的变量,因为它们将以特定的循环顺序运行? (这样变量min_value在第一个查询中设置并进入第二个查询,第三个等等......

---------按照@ElectricLlama的要求在1393846838添加---------

查询如下:

设置$ time查询

SELECT datediff("s", #1/1/1970#, now()) AS unix_time;

选择最小值查询

SELECT Min(Field4) AS min_value FROM Market;

select * where min query

SELECT * FROM Market WHERE Field4=min_value;

count(min)值查询

SELECT count(Field4) AS count_total FROM Market WHERE field4=min_value;

循环的必要性是由于一个查询中的某些变量为null或1而另一个查询中的变量为1或> 1

感谢您

---------根据@ElectricLlama的要求在1393855784添加---------

Image

1 个答案:

答案 0 :(得分:1)

我正在做一些假设,因为您的流程图与您的示例数据不相关,但是......这是一个自动构建您的行号的示例查询。但它需要首先将数据加载到包含自动编号的表中。这将是一个两步过程,但没有任何循环或复杂性。如果能够实现这一点,那么维护和调试将比一大块嵌套循环VBA代码更快更容易。更不用说如果您的循环运行时间不到一秒,那么您的$time变量将不会是唯一的。

SELECT 
T1.ID, T1.Field1, T1.Field2, T1.Field3, T1.Field4, 
(    select count(*) 
     from Table1 T2 
     WHERE T2.Field3=T1.Field3 
     AND T2.ID < T1.ID
) AS LineNum
FROM Table1 AS T1;

此查询针对具有相同Field3

的任何记录生成递增行号