我觉得你每次调用完sql库后,没有释放sql的读入内存,所以就算你点其他按钮他内存读入的还是之前的表,所以添加时还会添加到第一次的表里。
至于删除第二次点时,你的编号应该随之改变,貌似计算编号的语句位置不对。
具体不知你的每个按钮功能实现顺序,简单看看,改成如下试试。
Set rs = conn.Execute("select * from 运动员信息")
Set DataGrid1.DataSource = rs
id = DataGrid1.Columns(flag + "编号").CellText(DataGrid1.Bookmark)
DataGrid1.Refresh