我已经继承了一个vba项目,并且最近已经开始用vba开发我的脚了。运行我最近编辑过的代码的一部分时,我发现了一个错误Compile Error Object Required
。由于这是一个编译错误,我无法在运行时看到哪一行正在抛出错误。我修改的唯一代码是ElseIf
块在下面的代码...所有帮助表示赞赏。需要VBA编译错误对象
If tableType = 1 Then 'Resident/Local
Set db = CurrentDb
db.Execute "ALTER TABLE [" & TableName & "] ALTER COLUMN [" & KeyColumn & "] COUNTER(1,1)"
ElseIf tableType = 4 Then
Set conn = New ADODB.Connection
Dim connectionString As String
Set connectionString = DLookup("[Connect]", "[MSysObjects]", "[Name] = '" & TableName & "'")
conn.connectionString = connectionString
conn.Open
Dim cmd As ABODB.Command
Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "ALTER TABLE [" & TableName & "] ALTER COLUMN [" & KeyColumn & "] COUNTER(1,1)"
cmd.Execute
conn.Close
Else 'Linked Table
Set wsp = DBEngine.Workspaces(0)
Set db = wsp.OpenDatabase(DLookup("[Database]", "[MSysObjects]", "[Name] = '" & TableName & "'"))
db.Execute "ALTER TABLE [" & TableName & "] ALTER COLUMN [" & KeyColumn & "] COUNTER(1,1)" 'reset the autonumber column value
End If
OP代码中没有“格式化”(语法?)错误,而不是错误地使用“Set”关键字来分配字符串。另外,使用嵌套的'If/Else/If''语句而不是'ElseIf'会导致不必要的复杂/嵌套的'If'块并阻碍可读性和可维护性(意大利面代码) –