访问VBA - 将一个属性附加到多个字段?

时间:2010-08-17 20:35:49

标签: ms-access 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 个答案:

答案 0 :(得分:0)

我认为在第一个版本中,您尝试将相同的属性实例添加到多个字段中,这是不可能的。
在第二个代码示例中,您将为每个字段添加一个新实例 换句话说,您为每个字段创建一个属性,而不是尝试将同一属性分配给多个字段。