2010-08-17 2 views
1

Я хотел бы добавить одно свойство поля для нескольких вновь созданных полей, например:Доступ к 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 

Но код останавливается после первого Append и дает мне Ошибка выполнения 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") 

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

ответ

0

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

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