Доступ к VBA - добавить одно свойство в несколько полей?

Я хотел бы добавить одно свойство поля к нескольким вновь созданным полям, например:

Set Robo0 = RoboCallDB.CreateProperty("Format", dbText, "0")
   With RoboCallDB.TableDefs(sTableName)
   .Fields("Account").Properties.Append Robo0
   .Fields("ServAddrPhone").Properties.Append Robo0
   .Fields("CustWorkPhone").Properties.Append Robo0
   .Fields("SpouseWorkPhone").Properties.Append Robo0
End With

Но код останавливается после первого добавления и выдает ошибку времени выполнения 3367. ("Невозможно добавить. Объект с таким именем уже существует в коллекции".)

Я заканчиваю тем, что делал это:

RoboCallDB.TableDefs(sTableName).Fields("Account").Properties.Append & _ 
   RoboCallDB.CreateProperty("Format", dbText, "0")
RoboCallDB.TableDefs(sTableName).Fields("ServAddrPhone").Properties.Append & _
   RoboCallDB.CreateProperty("Format", dbText, "0")
RoboCallDB.TableDefs(sTableName).Fields("CustWorkPhone").Properties.Append & _
   RoboCallDB.CreateProperty("Format", dbText, "0")
RoboCallDB.TableDefs(sTableName).Fields("SpouseWorkPhone").Properties.Append & _
   RoboCallDB.CreateProperty("Format", dbText, "0")

Кто-нибудь сможет объяснить, почему первый фрагмент не работает, и есть ли более элегантный способ, чем использование второго фрагмента? Заранее спасибо!

1 ответ

Решение

Я думаю, что в первой версии вы пытаетесь добавить один и тот же экземпляр свойства к нескольким полям, что невозможно.
Во втором примере кода вы добавляете один новый экземпляр для каждого поля.
Другими словами, вы создаете одно свойство для каждого поля, вместо того, чтобы пытаться назначить одно и то же свойство более чем одному полю.

Другие вопросы по тегам