ник: dmsrv803
Копию записи делаю для того, чтобы дальше ее редактировать, а не создавать запись а потом заполнять вручную несколь десятков полей, когда достаточно будет изменить только несколько. Проще говоря использую одну запись в качестве шаблона для другой.
Проблему решить удалось следующим способом:
сделал копию структуры исходной таблицы
- DoCmd.TransferDatabase acExport, "Microsoft Access", CurrentDb.Name, acTable, tableSource, tableTemp, True
затем удалил в tableTemp индекс
CurrentDb.Execute "ALTER TABLE table_temp DROP CONSTRAINT поле_ID;"
|
затем удалил само поле т.к. это поле - счетчик и добавил его одратно, но уже как Integer
CurrentDb.Execute "ALTER TABLE table_temp DROP COLUMN поле_ID;"
CurrentDb.Execute "ALTER TABLE table_temp ADD COLUMN поле_ID Integer;"
|
Теперь для того чтобы добавить в исходную таблицу запись из временной необходимо
сначало добавить в исходную таблицу новую запись - .AddNew но без .Update
а затем присвоить полю ID временной таблицы значение поля ID исходной и выполнить запрос на добавление
Set rs = CurrentDb.OpenRecordset(table)
rs.AddNew
Me!поле_ID = rs!поле_ID
Set rs = Nothing
Me.Refresh
strSQL = "INSERT INTO table SELECT table_temp.* FROM table_temp WHERE поле_ID = "& Me!поле_ID & ";"
CurrentDb.Execute (strSQL)
|