2013-10-09 2 views
1

Я использую MS Access 2010.Невозможно добавить новое поле после удаления полого

Ситуация:

Таблица достигает 225 полеев

Удалить одно поле (так что 224 полеев «видимые "в таблице)

Добавить новое поле

Получить ошибки 3109„Слишком много полей, определенных“.

Я добавляю и удаляю поля с VBA.

Добавить:

Dim dbs as Database 
Set dbs = CurrentDb() 
queryAlter = "ALTER TABLE [Table] ADD [" & [field] & "] Varchar(255)" 
dbs.Execute queryAlter, dbFailOnError 
dbs.Close 

добавить поле с запросом, потому что его легче для меня

Удалить:

Dim dbs as Database 
Dim field as Field 
Set dbs = CurrentDb() 
    Do While dbs.TableDefs([Table]).Fields.count > 3 
     Set field = dbs.TableDefs([Table]).Fields(3) 
     dbs.TableDefs([Table]).Fields.Delete field.name 
    Loop 
dbs.Close 

Я хочу, чтобы первые 3 поля для остался в таблице Я не использую запрос, потому что это было быстрее для меня. (Я думал)

ответ

0

В вашем удалении кода, перед закрытием базы данных сделать методу TableDefs.Refresh

+0

Извините, но это не сработало. Я уже пробовал это, и это не сработало. Я закрываю базу данных и снова открываю ее, но это невозможно сделать. Но спасибо –

+0

К сожалению, я пропустил метод objTb.Fields.Refresh. Вы пытались в небольшом масштабе? Я пробовал с небольшим количеством полей, и он работал, как ожидалось. Если он работает в небольших масштабах, я уверен, что он будет работать и в больших масштабах, потому что на таблицы Ms-Access Doc могут быть поля до 255. – msinfo

Смежные вопросы