Доступ к VBA - добавить одно свойство к нескольким полям? - PullRequest
1 голос
/ 18 августа 2010

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

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 Ответ

0 голосов
/ 18 августа 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...