2014-03-02 86 views
0

我想在包含查询循环的MS Access中编写一个exe文件。 该exe文件将采取一个csv文件,并通过运行多个查询的代码行循环执行不同的功能。MS Access查询循环宏

的回路图所示的图像:

Query Loops

的查询已经存在,它们可以被简单地称为成类似PHP变量循环?

此外,我可以设置一个变量,将通过未来的查询,因为它们将运行在一个特定的循环顺序? (使得可变min_value在所述第一查询被设置并带入第二查询和第三等等...

---------在1393846838添加人@ElectricLlama的要求--- ------

查询如下:

集$时间查询

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

选择最小值查询

SELECT Min(Field4) AS min_value FROM Market; 

选择*其中,min查询

SELECT * FROM Market WHERE Field4=min_value; 

计数(分钟)值查询

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

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

感谢信

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

Image

+0

一个递增的行号,您可以创建一个变量,将持续整个时间访问是开放的(全球),或在一个窗口打开(表格级别,在第一个可执行语句之前)。我假设你正在计划从一个表单运行这个过程?是的,你可以编写一个程序(或函数)来运行你已经绘制的所有逻辑。 –

+0

That's corredct @ WayneG.Dunn :)我将从表单运行这个(exe是错误的术语)。我努力编写所说的程序或函数来运行这个逻辑。你可以指点我的任何指导或方向吗? – Dan

+0

完全可能的是,这可以通过组合多个查询来实现,而不是执行任何循环。如果您想继续使用编码选项,请至少输入您尝试过的代码(例如'Sub MyFirstTry End Sub')如果您想了解如何仅通过查询完成此操作,请提供一些示例数据 –

回答

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; 

此查询会生成对任何记录与同一字段3

+0

Hi @ElectricLlama,有没有什么办法可以循环查询,而无需直接写入vb脚本? – Dan

+0

如果您运行此查询,则根本没有循环。但解决我的想法是你的问题:是的。您可能使用参数创建MS Access查询。然后你使用VBA中的代码来引用'querydefs',而不是SELECT查询本身。同样,您的$ time查询不会解决您的问题 - 如果运行时间不到一秒,它将产生重复的行号。 –

+0

我知道时间变量问题,重复的行号目前似乎没有问题。这更多的是让我的头脑围绕vb代码的结构和设计,而不是基于php的编码(因为我主要在我的工作中使用php)。 – Dan