vb 如何删除access数据库指定记录

mshflexgrid的选中第三行。
然后,想删除数据库里面的这个记录
cnn.Execute "delete form 表名 where id=3"
问题是,access表里面没这个 id 字段 怎么办?
意思就是我要删除mshflexgrid里面第三个记录
同时也删除access表第三个记录

mshflexgrid里的记录是哪来的?哪个字段是维一的。有些什么字段的?
id,只是给你个建议,比如mshflexgrid表格第三个字段是身份证,用如下代码

cnn.Execute "delete form 表名 where sfz='" & MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2) &'""追问

日期 时间 标题 内容
Text1 RichTextBox1
Text1 RichTextBox1
Text1 RichTextBox1 -第三个记录,对应mshflexgrid第三行,我是根据这来删的
Text1 RichTextBox1
Text1 RichTextBox1
有重复的, 没有唯一字段,所以要根据行号来删除记录

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-03-27
有两种办法:

1、通过SQL语句删除:
SQL 有专门的删除查询,格式为:
Delete from [表名称] where [条件]
例如删除女同学的成绩:Delete from 成绩单 where [性别]= "女"
以上是SQL的用法,如果在vb中使用,就在前面加上“DoCmd.RunSQL”就可以了。
DoCmd.RunSQL "Delete from 成绩单 where [性别]= '女' "

2、通过ADO实现
首先用ADO建立与数据库的链接:

Dim rs As New ADODB.Recordset
rs.open " 数据表名称", CurrentProject.Connection, , adLockOptimistic
然后遍历所有数据,删除符合条件的项目:
rs.movefirst ---------跳到第一个数据
While rs.EOF = False -------设定循环条件
if rs![条件字段] = **** then rs.Delete ---------删除符合条件的记录
rs.movenext ----------跳跃到下一条记录
wend ---------结束循环
两种方法相比,第一种方法速度更快,效率更高。
第2个回答  2012-05-20
id是主键,插入这个字段就行追问

问题是我表里面没这个字段
日期 时间 标题 内容
Text1 RichTextBox1
Text1 RichTextBox1
Text1 RichTextBox1 -第三个记录,对应mshflexgrid第三行,我是根据这来删的
Text1 RichTextBox1
Text1 RichTextBox1

追答

既然你是根据行号来删除,那就插入行号一列,使其成为唯一的,也就是id,要不然,很容易删除你不想删除的行

追问

我现在这样了,建立了自动“编号”这个字段。
然后了,让他的宽度为 1
然后就根据编号删了
哇哈哈

本回答被提问者采纳
相似回答