Fred_Yang2013 2019-03-20 09:44 采纳率: 0%
浏览 407
已结题

vb程序运行时报错:“不能重复定义字段”,如何解决?

想用以下代码修改Acess表的列名称:
将列明中的: 201811、201809、201806、 201803 、201712、 201709
分别替换为:201902、201901、201812、201811、201809、201806
例如:_201806变成_201812,代码如下:

Private Sub Command0_Click()
Dim MyDB As New ADOX.Catalog
Dim Obj As ADOX.Table
Dim Col As ADOX.Column
Dim GetChar, GetChar1 As String
Dim Loc, Loc1 As Integer
MyDB.ActiveConnection = CurrentProject.Connection
For Each Obj In MyDB.Tables
If Obj.Name = "客户" Then
For Each Col In MyDB.Tables(Obj.Name).Columns
' 获取最后一个_的位置
 Loc = InStrRev(Col.Name, "_")
'获取将账期与其它字符分开
 GetChar = Right(Col.Name, 6)
 GetChar1 = Left(Col.Name, Loc)
 If GetChar = "201709" Then Obj.Columns(Col.Name).Name = GetChar1 + "201806"
 If GetChar = "201712" Then Obj.Columns(Col.Name).Name = GetChar1 + "201809"
 If GetChar = "201803" Then Obj.Columns(Col.Name).Name = GetChar1 + "201811"
 If GetChar = "201806" Then Obj.Columns(Col.Name).Name = GetChar1 + "201812"
 If GetChar = "201809" Then Obj.Columns(Col.Name).Name = GetChar1 + "201901"
 If GetChar = "201811" Then Obj.Columns(Col.Name).Name = GetChar1 + "201902"
' End If
Next Col
End If
Next Obj
MsgBox "表列名批量修改完毕"
End Sub

但运行程序后报错,全部程序及具体报错截图见附件;
报错时GetChar1的值为"_",请教各位是什么原因;
图片说明图片说明

  • 写回答

1条回答 默认 最新

  • slevenxulianjie 2019-03-20 15:25
    关注

    看了一下你的代码,在如下代码中

    If GetChar = "201709" Then Obj.Columns(Col.Name).Name = GetChar1 + "201806"
     If GetChar = "201712" Then Obj.Columns(Col.Name).Name = GetChar1 + "201809"
     If GetChar = "201803" Then Obj.Columns(Col.Name).Name = GetChar1 + "201811"
     If GetChar = "201806" Then Obj.Columns(Col.Name).Name = GetChar1 + "201812"
     If GetChar = "201809" Then Obj.Columns(Col.Name).Name = GetChar1 + "201901"
     If GetChar = "201811" Then Obj.Columns(Col.Name).Name = GetChar1 + "201902"
    

    请注意这样一个特殊值,**201806**
    第一行改变了table中的值,第四行又索引了该值,所以会在该行报错。

    建议不要在同一个表中修改,将修改结果组织成另一张表,这样才不会影响原表循环判断

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器