2012-10-23 85 views
2

我正在訪問2010數據庫並需要一些幫助。在Access vba中創建表並使用查詢結果填充

我想創建一些vba代碼,它將運行查詢,然後根據返回的記錄創建並填充表。然後我想根據查詢中的值(公司名稱)重命名該表。

我有內置的查詢將從我的表中返回不同的值,但我需要爲結果中返回的每個公司創建一個單獨的表。

任何和所有的建議表示讚賞。

+0

您是否需要爲每次運行創建一個表(所有返回的記錄將針對單個公司)還是多個表(結果集中的多個公司,需要爲每個表創建並填充表)? –

回答

1

您確定爲每家公司創建不同的表是個好主意嗎?我不會推薦這個!

好吧,假設您的查詢名爲QUERY,其中包含字段CompanyName幷包含所有記錄。你可以像這樣的東西開始:

Sub Export_Query() 
    Dim rs As Recordset 

    Set rs = CurrentDb.OpenRecordset("select distinct CompanyName from QUERY") 
    While Not rs.EOF 
    On Error Resume Next 
    CurrentDb.Execute "DROP TABLE [" & rs("CompanyName") & "]" 
    CurrentDb.Execute "SELECT QUERY.* INTO [" & rs("CompanyName") & "] FROM QUERY WHERE CompanyName=""" & rs("CompanyName") & """;" 
    On Error GoTo 0 
    rs.MoveNext 
    Wend 

    rs.Close 
    Set rs = Nothing 
End Sub 

這只是一個想法...你應該增加更多的錯誤檢查代碼,您也應該逃跑的公司名稱或確保它不包含任何特殊字符。

+0

這正是我一直在尋找的。謝謝!!它適用於我需要做的事情。我必須爲每個公司爲另一個部門創建一個單獨的表來將數據加載到我們的SQL數據庫中。我不知道爲什麼我不能把所有數據都放在一張表中,然後加載它,但是現在我只想讓他們知道他們現在需要什麼。 –

相關問題