问 题:
在Access论坛看到一位网友的问题:清除表中的所有数据,并且自增长的列,从1开始。
整理了一下答案,方便以后需要的朋友使用。
解决方法:
1、先遍历所有表,对除了系统表外,都执行删除操作;
2、对表中左右的字段进行遍历,如果是自增长的字段,设置序号从1开始。
使用以下代码可以解决:
Function delete_all()
'遍历所有表
For i = 0 To CurrentDb.TableDefs.Count - 1
'如果是系统表,不清除数据
If CurrentDb.TableDefs(i).Name Like "*Sys*" = False Then
'清除表中所有数据
CurrentDb.Execute "delete * from [" + CurrentDb.TableDefs(i).Name + "]"
'遍历表中所有字段
For j = 0 To CurrentDb.TableDefs(i).Fields.Count - 1
'如果当前字段是自增长 设置当前字段从1开始
If (CurrentDb.TableDefs(i).Fields(j).Type = 4) Then
CurrentDb.Execute "Alter TABLE [" + CurrentDb.TableDefs(i).Name + "] Alter COLUMN [" + CurrentDb.TableDefs(i).Fields(j).Name + "] COUNTER (1, 1)"
Exit For
End If
Next j
End If
Next i
End Function