我使用下面的VBA Access 2010中的一組進口記錄從一個臨時表(tblImport)添加到現有的鏈接表(tblPerson):有沒有辦法將查詢的結果切分成可報告的塊?
Dim dbs As Database
Set dbs = CurrentDb
dim StrSQl as String
strSQL = strSQL & "INSERT INTO tblPerson (GenID, Surname, GivenNames, OtherInfo, GroupID) "
strSQL = strSQL & "SELECT FHID, Surname, GivenNames, OtherInfo, Group FROM tblImport;"
dbs.Execute strSQL
對於大型數據集(絕對750000項紀錄但可能小於該閾值 - 要確定的閾值) - 我想爲導入提供進度指示器,以便用戶不會失去希望並進入終端拒絕狀態(或終止應用程序,因爲它們可以沒有看到任何進展。)導入這樣的大文件應該是不經常的,導入時間和進度報告之間的權衡應該是可以接受的。
我正在考慮的一個選擇是將數據集分成(比如說)10,000個記錄塊,並在每個記錄塊之後更新進度。
要做到這一點,我可以使用:
SELECT TOP 10000 FHID, Surname, GivenNames, OtherInfo, Group FROM tblImport ORDER BY FHID;
其次
DELETE FROM tblImport
WHERE FHID IN
SELECT TOP 10000 FHID, Surname, GivenNames, OtherInfo, Group FROM tblImport ORDER BY FHID;
確定數據要導入每次然後將其刪除(在這一點我想報告進度)並迭代,直到tblImport中沒有任何記錄。
有沒有更簡單的方法來做到這一點?
'tblImport.FHID'是數字主鍵嗎? – HansUp
@HansUp不,它是我無法控制的50個字符的文本字段。 – ColeValleyGirl
你可以添加一個自動編號字段到'tblImport'臨時表嗎? – HansUp