所以我在vba中有此代码,该代码可将数据从excel导出以进行访问。第一次运行,然后第二次运行,此方法运行正常,显示“运行时错误462:远程服务器不存在或不可用”。
但是,如果我要重新启动excel,则第一次似乎可以再次正常运行。我尝试了谷歌搜索解决方案,但是大多数人都说将任何对象设置为Nothing并清空变量,但仍然无法正常工作。
Object
下面的代码段是第二轮运行时似乎显示此错误的位置。任何帮助将非常感激。谢谢
hashCode()
答案 0 :(得分:0)
我去了一种代码整理方法,该方法可以解决问题。 在即时窗口中从代码中断行检查每个对象也有帮助(例如,“?Currentdb.Name”返回什么)
1)VBA在对象声明的一部分中支持New,但是...(最好研究一下。从内存来看,它总是比较慢,因为vba必须重新检查对象是否已实例化。)
Dim acc As Access.Application: Set acc = New Access.Application
2a)限定您对CurrentDb的通话
acc.CurrentDb.TableDefs(myValue).Fields("F4").Properties!ColumnWidth = 2500
acc.CurrentDb.TableDefs(myValue).Fields("F7").Properties!ColumnWidth = 2500
2b)甚至更好的是,显式引用树中的每个对象[这将有助于行乞]
' add Reference to "Microsoft DAO 3.6 Object Library"
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = acc.CurrentDb
db.TableDefs.Refresh ' CurrentDb should do this, but can't hurt
Set tdf = db.TableDefs(myValue)
With tdf
.Fields("F4").Properties!ColumnWidth = 2500
.Fields("F7").Properties!ColumnWidth = 2500
End With
Set tdf = Nothing
Set db = Nothing
我希望这会有所帮助, GraemeR