我正在嘗試簡化必須定期建立的文檔的製作。有些任務與如何完成這些任務的詳細說明相關聯,每個任務都有一個特定的 ID 號,可以在各個項目中重複使用。我將盡可能多的任務 ID 吸收到存取資料庫中。
對於每個項目,其他人都會從我無法存取的另一個資料庫中提取所有必需任務的列表,並將它們放入標準格式的 Excel 工作簿中。對於每個項目,我需要:
- 透過ID號碼拉取所有相關任務
- 將它們與我的資料庫中的標準列表進行比較,其中包含完成任務的步驟和一些其他信息
- 使用有關任務的特定資訊來產生特定格式的文檔
在 Excel 中編寫巨集似乎需要大量工作,但卻是最好的選擇,但我無法確定 Access 資料庫將始終保留在它所屬的位置。由於資料庫是所有專案中一致的項目,我考慮在 Access 中編寫一個巨集,並使用對話方塊詢問電子表格在哪裡,但使用表格來比較兩個清單似乎比簡單地產生比較表更複雜excel 內。我並沒有真正考慮過在 Word 中編寫巨集,儘管這也是一種可能性。
我正在嘗試找到最合乎邏輯的方法來創建此設定。使用 3 個不同的辦公室程式似乎相當複雜,但我可以使用的軟體來完成此任務是有限的:
- 辦公室2007
- 無可比擬
- 安裝的其他程式(我無法安裝其他軟體)似乎與任務無關
有誰知道如何解決這個問題?
答案1
如果您有 Crystal Reports,您可以將 Excel 表連接到 Access 表;然後列印 2 份報告,一份報告 ID 上有資料匹配,另一份報告列出 ID 不匹配的記錄。格式化真是太棒了。我編寫報表時將 Excel 檔案連接到 Oracle 資料庫以進行報表。您應該能夠將 Excel 檔案連接到 ACCESS 並建立相同類型的報表(假設兩者都有要符合的 ID 欄位)。
答案2
您是否考慮過使用 ODBC 連接來連結兩個資料集?
如果您的本機工作環境是資料庫,並且您可以自動輸入這些新資料字段,則可以使用簡單的查詢來選擇不匹配的(新)資料並從那裡開始工作。遺憾的是,您不能簡單地將第一個資料庫打入您自己的資料庫,或讓第一組資料匯出簡單地匯出新資料或更改資料的 CSV。
在任一側,您都可以附加新數據,並將其與現有數據進行比較(使用 Access 中的查詢或 Excel 中的數據透視表)。如果您建立一個新列/欄位來充當簡單的布林標誌,則可以區分資料集並將它們合併到同一個表/文件中。或套用每週(或任何時間段)匯入的程式碼,以便您可以使用此「標誌」欄位進行將來的查詢。
資料透視表將是我的第一個停靠點,因為您在範圍界定階段可以比資料庫查詢更快地工作,並且您可以在一個視圖中查看報告/比較要求。
如果您可以「清洗」資料以使其匿名,請發布一些範例以獲取更具體的解決方案。
答案3
您可以將 Excel 資料作為記錄集獲取,這樣可以輕鬆進行比較
Dim xldb As New adodb.Connection
Dim xlcmd As New adodb.Command
Dim XL As New adodb.Recordset
With xldb
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;ReadOnly=True"";"
.Open
End With
Set xlcmd.ActiveConnection = xldb
xlcmd.CommandType = adCmdText
xlcmd.CommandText = "Select * from [Sheet1$]"
XL.CursorLocation = adUseClient
XL.CursorType = adOpenDynamic
XL.LockType = adLockOptimistic
XL.Open xlcmd
現在您可以使用 XL 記錄集,搜尋/單步執行它,並將資訊放入資料庫中