2014-09-12 69 views
0

我有一個訪問應用程序(VBA)(訪問2003),它可以在按下4個不同的按鈕時根據其數據庫在特定路徑上生成4個不同的文本文件。自動訪問2003應用程序

但這是手動的,我每天都在做文件生成。

我需要它的自動化。例如我的文件應該會在任何特定的時間自動生成。

一個按鈕的事件過程如下menitoned:

我試着用VB腳本的幫助下做,但這是給錯誤。

「還沒有到found.May安裝不正確」

Set objAccess = CreateObject("Access.Application") 
Set conn = CreateObject("ADODB.Connection") 
strConnect = "Provider=Microsoft.JETs.OLEDB.12.0; 
Data Source=E:\Project\test.mdb" 
conn.Open strConnect 


test() 

function test() 
objAccess.DoCmd.Hourglass True 
objAccess.DoCmd.SetWarnings False 
objAccess.DoCmd.RunSQL ("INSERT INTO Table1 (name, FileName, [DateTime]) SELECT Environ(""UserName"") AS name, ""test.mdb Generate ABCD File"" AS FileName, Format(Now(),""yyyyMMddhhmmss"") AS [DateTime];") 
objAccess.DoCmd.OpenQuery ("qry_ABCD") 
objAccess.DoCmd.TransferText acExportDelim, "qry_ABCD_Formatted Export Specification", "qry_ABCD_Formatted", "E:\Ouputs\" & Format(Now(), "yyyymmdd") & ".txt", False 
objAccess.DoCmd.SetWarnings True 
objAccess.DoCmd.Hourglass False 
End function 

我硝基甲苯知道如何解決這個問題。或者還有其他更好的方法來解決這個問題。

+0

它應該是'JET'不是'JETs'? http://technet.microsoft.com/en-us/library/ms175866(v=sql.105).aspx – EvenPrime 2014-09-12 14:51:17

+0

嘗試..didnt工作 – user21546 2014-09-12 14:57:50

回答

0

沒有必要在腳本中設置或創建一些連接字符串。一旦你打開了Access,那麼你就可以使用該應用程序中的所有表格。事實上,在你的例子中,你創建了一個連接對象,但它並不是真正需要的。

所以,讓我們假設你的VBA代碼運行是這樣的:假設

Sub MyExport() 

    Dim strSQL  As String 
    strSQL = "INSERT INTO Table1 (name, FileName, [DateTime]) " & _ 
      "SELECT Environ(""UserName"") AS name, ""test.mdb Generate ABCD File"" AS FileName, " & _ 
      "Format(Now(),""yyyyMMddhhmmss"") AS [DateTime];" 

    CurrentDb.Execute strSQL 

    DoCmd.TransferText acExportDelim, "qry_ABCD_Formatted Export Specification", _ 
        "qry_ABCD_Formatted", _ 
        "E:\Ouputs\" & Format(Now(), "yyyymmdd") & ".txt", _ 
        False 

End Sub 

上面的代碼保存爲一個標準的MS Access VBA代碼模塊子(不是函數)。

現在,您的VBS憑證可以這樣調用上面的代碼: 暗淡accessApp 集accessApp =的CreateObject( 「Access.Application」) accessApp.OpenCurrentDataBase( 「C:\一些路徑名稱\ someMdb.accDB」)

accessApp.Run "MyExport" 
accessApp.Quit 

因此,現在運行上述VBS腳本是一件簡單的事情。而且這樣的腳本也應該通過Windows任務調度程序正常運行。如上所示,有必要將SQL和代碼放入VBS腳本中。你最好在VBA下工作,並確保它能正常工作。多次測試,然後你就可以創建VBS cript來調用該子項。所以FIRST得到例程工作,並讓它工作WITHOTU任何提示等。您可以通過將光標置於該例程中的VBA編輯器中調用並測試VBA子,然後按F5運行子。一旦你按照你想要的方式工作,那麼你使用上面的第二個VBS(不是VBA腳本調用+運行那個你現在100%確定它能正常運行的工作子)