2013-05-21 55 views
-4

我想將所有查詢(帶有查詢代碼的名稱)導出到記事本/ word文檔。我不擅長VBA代碼,但是我從網站的某個站點發現了這些代碼,它將所有帶查詢代碼的查詢導出到記事本中。代碼:將MS Access查詢導出到記事本

Sub ExportQueries() 
Dim db As Object 
Dim qdf As Object 
Dim ff As Long 

Set db = CurrentDb 
ff = FreeFile() 

Open "C:\Queries.txt" For Output As #ff 

    For Each qdf In db.QueryDefs 

     Print #ff, "Query: " & qdf.Name & vbCrLf 
     Print #ff, "SQL:" & vbCrLf 
     Print #ff, qdf.SQL & vbCrLf 

    Next qdf 

Close #ff 
End Sub 

但我想只導出這些查詢在我使用的宏。 如何提取特定宏中使用的查詢?有人可以給我代碼PLZ嗎?

My Macros - Alerts_MCR 
      EBAC_MCR 

還有幾個宏也在使用中。

+3

「有人可以給我代碼PLZ嗎?」 - 你來錯了地方...... –

+0

怎麼回事?我想學習如何在上面的代碼 – user2404018

+0

中硬編碼宏,所以開始寫一些代碼.... –

回答

0

以編程方式做你所描述的一個強大的方式絕對是一個不平凡的練習。生成的VBA代碼必須:

  • 把你的宏列表,

  • 檢查每個宏的每個動作,看它是否調用查詢,或者直接(例如,通過OpenQuery)或間接(例如,通過做RunCode調用本身調用查詢VBA函數),

  • 直接(解析被調用,看看他們調用任何其他查詢任何疑問,再次通過FROM條款)或間接(例如,通過VBA函數),這樣做遞歸和

  • 也檢查,看看如果宏調用任何其它,如果是這樣,做同樣的事情與他們。

所有這些都使得一個非常有趣的開發項目成爲可能,但(IMO)遠遠超出Stack Overflow Q + A格式的範圍。