私はVBAプロジェクトを継承しており、受信しているエラーをデバッグしようとしています:Invalid use of Null
。しばらくすると、エラーが発生している場所がわかりましたが、問題の特定の原因や解決策をまだ見つけられていません。 (例外を投げる行はコメントで注釈されている)は、次のsnippitを参照してください:私はTableName
変数を検査して、それがnullでなく、それが有効なテーブル名ですVBA無効なnullの使用
Dim db As Database, wsp As Workspace
Dim retVal As Variant
Dim tableType As Long
'Check to see if the table name exists in the zLinked_Tables table; if it does, that means its a SQL table
If DCount("*", "[zLinked_Tables]", "[LocalName] = '" & TableName & "' AND [ObjectType] = 'Table'") > 0 Then
'SQL Table
retVal = ExecuteSPT("TRUNCATE TABLE [" & TableName & "]", 0) 'truncate the table via passthrough query on server
If KeyColumn <> "" Then
retVal = ExecuteSPT("DBCC CHECKIDENT([" & TableName & "],RESEED,1)", 0) 'reset the identity column value via passthrough query on server
End If
Else
'MS Access Table
tableType = DLookup("[Type]", "[MSysObjects]", "[Name] = '" & TableName & "'")
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM [" & TableName & "]" 'delete all records from table
If KeyColumn <> "" Then
DoCmd.SetWarnings True
If tableType = 1 Then 'Resident/Local
Set db = CurrentDb
db.Execute "ALTER TABLE [" & TableName & "] ALTER COLUMN [" & KeyColumn & "] COUNTER(1,1)"
Else 'Linked Table
Set wsp = DBEngine.Workspaces(0)
Set db = wsp.OpenDatabase(DLookup("[Database]", "[MSysObjects]", "[Name] = '" & TableName & "'")) 'ERROR THROWN ON THIS LINE
db.Execute "ALTER TABLE [" & TableName & "] ALTER COLUMN [" & KeyColumn & "] COUNTER(1,1)" 'reset the autonumber column value
End If
DoCmd.SetWarnings False
Set db = Nothing
End If
End If
Exit Function
注