2014-03-02 148 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