If Year(rs.Fields(i).Value) <>time Then rs.Delete
rs.MoveNext
Next
这段代码明显有问题!!!
你既然是要检查checktime列是否等于系统年份,那么你怎么能让列变化呢!rs.Fields(i)是检查一条记录里的某一个字段的值,这样每次i循环谨配式检查的列都不一样。rs.MoveNext是移动到下一祥谈指条记录侍局,
你试下改成下面的样子
For i = 1 To rs.RecordCount
If Year(rs!checktime) <>time Then rs.Delete
rs.MoveNext
Next
trim()函数,是删除文本的前后空格!例州厅陆如:
dim s as string
DIM D AS STRING
s = " ABC "
D = Trim(s)
D的结果是“ABC”
前后空格没有了。
这个主要是怕,用户输入到文本框里的内容,前后带上不必要的空格,而造成找不到需要的记录。
但是你的这个Select语法还是错误的
应该:
Adodc1.Recordset = "select * from table1 where 姓名='" &Trim(Text1(0).Text) &"'"
少了2个单引号,在等号后面加一个单引号
在最后一对双册顷引号之间加伏坦1个单引号
Set Rs = Con.Execute("DELETE from MF_pos where 单据号 like '%" &Text1.Text &"%'")If MsgBox("是否删除当前行?", vbYesNo, "确认") = vbYes Then
MsgBox "删除成功!"
End If
这样写有问题,你都执消灶行删除 *** 作了。还问别人是否确认??顺序问题。可以把第一句写在
MsgBox "删除成功!" 这里。
并且你这样也判断不埋盯了是否删除成功的。建议使拿液扮用下面的模式
conn.execute msql, t
If t >0 Then
'成功
Else
'失败
End If
如果你需要看数据库中有没有 符合条件的数据,可以先查询一次,判断查询结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)