У меня есть база данных MS Access, и я пытаюсь дедуплицировать таблицу с именем tblPrevious
.Я создал набор записей, который выбирает только отдельные значения из таблицы, и я хотел бы использовать этот набор записей для перезаписи исходной таблицы.Я не могу использовать обычный запрос make table, потому что я не могу использовать tblPrevious
в качестве таблицы назначения и исходной таблицы.Поэтому я планирую создать набор записей через vba, затем удалить исходную таблицу, а затем использовать набор записей, чтобы заполнить новую таблицу с тем же именем, что и исходная tblPrevious
.Другой вариант - создать новую таблицу с именем tblPrevious2
, затем удалить tblPrevious
, затем переименовать tblPrevious2
в tblPrevious
.Это кажется мне слишком грязным.Ниже приведена попытка vba, но я получил сообщение об ошибке «Runtim Error 3078: ядро базы данных Microsoft Access не может найти входную таблицу или запрос« rst ». Заранее спасибо за помощь!
Sub RemovePreviousDupes()
Dim rst As Recordset Set rst = CurrentDb.OpenRecordset(Name:="DeDupetblPreviousExport", Type:=RecordsetTypeEnum.dbOpenDynaset)
strSQL = "SELECT rst.* INTO DELETETABLE FROM rst;"
DoCmd.RunSQL (strSQL)
End Sub
Добавлен SQL для DeDupetblPreviousExport
. Также обратите внимание, что в приведенном выше коде я просто пытаюсь записать набор записей в новую таблицу, если бы я заставил его работать, я бы затем попытался сбросить tblPrevious
и последнийстрока выше будет писать в tblPrevious
вместо DELETETABLE
SELECT DISTINCT tblPreviousExport.[Month Reported], tblPreviousExport.[Employee SSN],
tblPreviousExport.[Employee First Name], tblPreviousExport.[Employee Last Name],
tblPreviousExport.Pool, tblPreviousExport.OpCo, tblPreviousExport.Paygroup,
tblPreviousExport.[Effective Date], tblPreviousExport.[Medical Plan],
tblPreviousExport.[Coverage Level], tblPreviousExport.Type,
tblPreviousExport.[Tier Change Effective Date], tblPreviousExport.[Num Eligible Months],
tblPreviousExport.[Employee Ongoing Contribution],
tblPreviousExport.[Full Employer Contribution],
tblPreviousExport.[Prorated Employer Contribution],
tblPreviousExport.[ER Contribution Already Received],
tblPreviousExport.[Total Contribution], tblPreviousExport.[Max Contribution]
FROM tblPreviousExport;