vb中datagrid控件的使用方法

Fori=0ToDataGrid1.ApproxCountIfTrim(乡村号.Text)=Trim(DataGrid1.Columns.Item(i).Text)The... For i = 0 To DataGrid1.ApproxCount
If Trim(乡村号.Text) = Trim(DataGrid1.Columns.Item(i).Text) Then
MsgBox "该乡村号已使用,请重新输入"
这是一个添加按钮里面的代码,原意是试图添加乡村号时检测表中已有乡村号是否重复,但失败了。请指正。
展开
 我来答
ZHMINGEN
2014-03-07 · TA获得超过1735个赞
知道大有可为答主
回答量:3149
采纳率:68%
帮助的人:1238万
展开全部
这个判断的确不科学,估计你的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中聊吧。
syx54
2014-03-07 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2707万
展开全部
这个不能这么做?

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

ApproxCount属性并不是记录总数?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
曦者earth
2014-03-06 · TA获得超过142个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:227万
展开全部

是不是应该这样写啊:

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

这样看起来很鸡肋啊


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
捌零老陈
2014-03-07 · TA获得超过727个赞
知道大有可为答主
回答量:1414
采纳率:100%
帮助的人:768万
展开全部
晕。这样判断会死人的
建议:写个sql直接判断这个张村号是否存在!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式