请教VB6.0 中DataGrid 操作Access数据库的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教VB6.0 中DataGrid 操作Access数据库的问题相关的知识,希望对你有一定的参考价值。

VB6.0 我想直接在DataGrid 中进行增,删,改 操作 ,然后会直接保存到ACCESS
不知道该怎样写代码请高手教教我,我会再加分的

参考技术A DATAGRID是数据感知控件,换句话说,只要用ADO连接数据库,只要少量代码或者0代码实现以上要求,具体是否允许添加删除,右击控件选择属性,设置.
具体的操作是
1:添加ADODC控件
2:添加DATEGRID控件
3:设置ADODC1的连接字符串,指定ACCESS数据库(详细操作不用我说了吧)
4:设置ADODC1的RECORDSOURCE,一般指表名
5:设置DATEGRID的RECORDSOURCE为ADODC1
6:设置DATAGRID的允许的操作
7:在FORM_LOAD中写ADODC1.REFRESH就可以了
在所有数据控件中,我个人认为DATAGRID是最简单的.
参考技术B 如果只涉及到一个表的话,只要Set dataGrid1.DataSource = rs 就可以了。
如果涉及到几张表的话这个方法就不好用了。不过你可以判断记录集的状态:
rs.Status = adRecModified 记录被修改
rs.Status = adRecNew 记录是新建的
rs.Status = AdRecDeleted 记录被删除
然后执行相应的sql语句就可以了本回答被提问者采纳

vb中datagrid控件的使用方法有哪些?

For i = 0 To DataGrid1.ApproxCount
If Trim(乡村号.Text) = Trim(DataGrid1.Columns.Item(i).Text) Then
MsgBox "该乡村号已使用,请重新输入"
这是一个添加按钮里面的代码,原意是试图添加乡村号时检测表中已有乡村号是否重复,但失败了。请指正。

这个判断的确不科学,估计你的DataGrid1中显示的数据是从数据库或excel中读出的,那么你操作数据库或excel,使用SQL语句查询,是比较理想的选择。

例如:
SQL1="Select * From 数据表 Where 乡村号='" & 乡村号.Text & "' 'SQL语句字符串
RS.Open SQL1,conn,2,2 ‘使用SQL打开数据表查询
IF Not RS.EOF Then '如果记录不是空
MsgBox "该乡村号已使用,请重新输入"
RS.Close
conn.Close
Exit Sub
End If
在SQL语句中的 Where 后面的“乡村号”是字段名。追问

我还是实在不会,你能留个联系方式,我发一份源码给你帮我作修改吗

追答

百度不容许发QQ或邮箱,在百度HI中聊吧。

追问

我Q号就是百度ID:3 8 1 7 4 7 9 9 7
麻烦加我一下好吗

参考技术A 这个不能这么做?

应该从数据源去进行搜索寻找.
我记得DataGrid控件无法返回数据源的记录总数.

ApproxCount属性并不是记录总数?
参考技术B

是不是应该这样写啊:

If Trim(乡村号.Text) = Trim(DataGrid1.Columns(i).Text) Then

追问

还是不行哦。
我在看别人的程序,乡村号是表中第一列的数据,DataGrid1.ApproxCount不是总行数吗?Columns是列的意思,所以我揣测为默认第一列,然后在item(i)里通过i的变化,逐行比较乡村号是否重复

追答

DataGrid1.ApproxCount这个的确是总行数  一般判断存不存在  用SQL 是正常的思路。如果这要按DataGrid1.Columns.Item(i).Text来判断 可以这样写

Dim sql As String
Dim a As Integer
 rst.CursorLocation = adUseClient
rst.Open "select * from 乡村 ", cnn
For i = 0 To rst.RecordCount - 1
Set DataGrid1.DataSource = rst
If Text1.Text = DataGrid1.Columns.Item(1).Text Then
MsgBox "该乡村号已使用,请重新输入"
Text1.Text = ""
Text1.SetFocus
rst.Close
Exit Sub
Else
rst.MoveNext
End If
Next
rst.Close

这样看起来很鸡肋啊


参考技术C 晕。这样判断会死人的
建议:写个sql直接判断这个张村号是否存在!

以上是关于请教VB6.0 中DataGrid 操作Access数据库的问题的主要内容,如果未能解决你的问题,请参考以下文章

请教关于 EasyUi datagrid formatter后取值问题

请教关于 EasyUi datagrid formatter后取值问题

vb6.0系统,如何在DataBrid控件中直接修改数据?

easyui datagrid怎么可以移除多行呢, 请教高手

vb DataGrid控件 如何加一列CheckBox控件?

如何在VB6.0里为按钮控件添加自定义属性?