2012-10-31 45 views
1

現在,我有一個數據庫,允許用戶使用參數根據表中的查詢創建基本報告。非常簡單。我現在想要做的是每次創建報告時使用VBA將記錄添加到單獨的表中。每個報告都有來自查詢PLUS的信息一些新信息(連接的ID,日期等)。新表(「摘要」)將包括一些新的信息以及原始查詢中的一些源。這將成爲創建報告的動態日誌。使用報表中的數據向表中添加一行?

有沒有什麼辦法可以使用VBA將來自兩個數據源的數據(來自原始查詢和原生報告數據的報表中顯示的數據)合併爲一個表中的一條記錄?

這是我到目前爲止的代碼。

Option Compare Database 

Public Sub Log_Report() 

'System definitions 
Dim dbs As DAO.database 
Dim rs As DAO.Recordset 
Dim rep As [Report_Custom MARS Report] 

'Original report sources 
Dim Text267 As String 
Dim TableName As String 
Dim Company_Name As String 
Dim ReportID As String 

'Summary table destination 
Dim ID As Integer 
Dim Date_Created As Date 
Dim Source As String 
Dim Title As String 
Dim report_ID As String 
Dim Attachment As Attachment 

End Sub 

我可能路要走,所以如果我不得不重新開始,我很好這一點。我無論如何都不是VBA方面的專家,所以到目前爲止它已經進行了很多嘗試和錯誤。

我可以澄清,如果需要。

+0

如果您有查詢,爲什麼不使用記錄集從查詢中獲取數據? – Fionnuala

+0

如果您有查詢,爲什麼不存儲用於生成報告的查詢? – SeanC

回答

0

如果爲您的報告設置的記錄是單行,那麼使用加載事件來讀取字段並將它們分配給變量將是相對容易的。所有計算都是在Report_Load事件觸發時完成的,然後可以將它們用作將值寫入彙總表的函數的輸入。

'Code to placed in a public function 
'strVar = text267 'is ReportID = report_ID ? 
'Unfortunately I have no experience with attachments, sorry 

function writeReportSummary(intID as Integer, dtmDate_Created as Date, strSource as String, strTitle as string, strReportID as string, strVar as string, strTableName as string, strCompanyName as string, attAttachment as attachment) AS boolean 

Dim strSQL as string 
On error goto Err_Handler 

strSQL = "INSERT INTO summary(ID, Date_Created, Source, Title, report_ID, Text267, tableName, Company_Name, ReportID) SELECT """ & intID & """ , """ & dtmDate & """;" 'etc 
CurrentDb.execute strSQL, dbFailOnError 
Debug.print CurrentDB.recordsAffected & ": Record(s) Inserted at " & now() 
writeReportSummary = True 
Exit function 

Err_Handler: 
debug.print err.number 
debug.print err.description 
writeReportSummary = false 
end function 

'Code to be placed in Report_load' 
Sub Report_Load 

if Not(writeReportSummary(intID, dtmDate, etc)) then debug.print "Failed to write report to summary table" 

End Sub 
+0

好吧,我試着使用你的代碼,並且在OnLoad事件中出現錯誤。這是說「賦值左側的函數調用必須返回變體或對象。」錯誤發生在'writeReportSummary = True' – GregSpev

相關問題