如何得到dataGrid控件有多少行中有数据?
解决方案 »
- 客户端从外网连接内网服务端软件的问题?着急!
- 天天来VB,今天就想散分,顺便看看有没有版主浮上来
- 怎么使mshflexgrid控件合并单元后其中内容居中 在线急等
- 请问怎样实现ADO对Access数据库的参数化查询,最好有源码,谢谢!!(100)
- 有谁知道如何显示那些英语单词音标的符号?
- 所有CSDN的网友都应该抵制最新一期的MVP评选活动!
- 如何获得文本框中光标前面的字符串?
- xmlhttp的问题
- 窗口关闭的问题
- 如何根据用户不同的权限来确定用户可以做的工作?
- vb中怎样把指定的数据库服务器中的所有数据库名在下拉列表中显示出来?(我要现成代码,不要相关链接!)多谢各位!
- 请指教:怎样在程序第一次运行时自动弹出设置对话框?
我的datagrid 控件没有和rs相联
我只有datagrid ,当我手输入的时候添加了几行后
如何得到datagrid有几行
我要的是datagrid 行数
不是记录级的行数
我已经找了很久了
帮帮忙
使用DataGrid控件的Columns集合的Count属性和Recordset对象的RecordCount属性,可以决定控件中列和行的数目。DataGrid控件的可包含的行数取决于系统的资源,而列数最多可达32,767列。
这我看过了
有没有具体的办法可以知道有多少行?
可能是吧,我也搞不清?
那你也来回答,你也好意思?
会就是会
不知道就up 一下
我也不会怪你的
哈哈
和解,我没有不虚心的意思用Recordset不行
因为我实现的是我的grid控件并没有和Recordset关联
我要判断我的grid控件现在有几行,做个循环把每一行的数据录入到数据库中
所以我需要知道有几行了
Dim i As Integer
DataGrid1.Row = 0
On Error GoTo l:
Do
i = i + 1
DataGrid1.Row = i
Text3.Text = DataGrid1.Columns(0).Text
Loop
l:
MsgBox i
数据手工输入
ADO连接:
工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset
Dim db As Connection
'提数据事件
Set db = New Connection
db.CursorLocation = adUseClient
db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"
' ##########################################
'打开密码是1234的Access2000数据库db1.mdb
'不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉 Set adoRS = New Recordset
adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
'赋值给 DataGrid 表
Set DataGrid1.DataSource = adoRS
'表刷新
DataGrid1.Refresh '如果要绑定TextBox(数组):
'Text1(0).DataField = 字段1
'Text1(1).DataField = 字段2
'.........
Dim oText As TextBox 'TextBox
For Each oText In Me.Text1
Set oText.DataSource = adoRS
Next
'添加事件和保存
adoRS.AddNew
'保存
adoRS![字段a] = text1.Text
adoRS![字段b] = text2.Text
adoRS.UpdateBatch adAffectAll'删除
adoRS.Delete
'重新赋值给表
adoRS.Requery
Set DataGrid1.DataSource = adoRS
DataGrid1.Refresh '其他相关操作:
'上一条
If Not adoRS.BOF Then adoRS.MovePrevious
If adoRS.BOF And adoRS.RecordCount > 0 Then
'已到最后返回
adoRS.MoveFirst
End If
'下一条
If Not adoRS.EOF Then adoRS.MoveNext '下一条
If adoRS.EOF And adoRS.RecordCount > 0 Then
'已到最后返回
adoRS.MoveLast
End If
'第一条
If Not adoRS.BOF Then adoRS.MoveFirst
'最末
If Not adoRS.EOF Then adoRS.MoveLast
本不愿意说你了
就你这德行
哎。。
水平比你高的见多了
看看你的口气首先你要弄明白别人的意图,不要把你的意志加给别人
用textbox可以的话我就不会在这里浪费时间了
有能力就把问题回答了如何得到dataGrid控件有多少行?你知道不?
不知道,就。
给你个ADO连接Access97/2000数据库的代码,不明白的话,发短信给偶。这个帖子还是别再要了,会被笑话地..........
1 上策:自己在DATAGRID控件基础上写一个有Rows属性的控件。
2 下策:自己建立一个变量来记录输入的行数。问题是删除行时,特别是多行时要正确更新。
你说的是对的
我可能是选错了控件
它本身可能是没有这个属性了
我本人才疏学浅
是想问问大家看有没有知道的你提供的两个办法是可行的
我也打算自己做做谢谢大家的回答
Microsoft FlexGrid Control 6.0,就可以使用这个控件了得到行数的代码是: i=MSFlexGrid.Rows
这是我前段时间用它编的一个程序,MSFG就是MSFlexGrid控件
MSFG.Clear
MSFG.AllowBigSelection = True
MSFG.Rows = 1
MSFG.AllowUserResizing = flexResizeBoth
MSFG.FormatString = " |源路径 |目标路径 " For i = 1 To no
MSFG.AddItem CStr(i) & vbTab & s & vbTab & d
Next
楼主可以参考一下
要自己用textbox来输入
就是点到哪里textbox出现
完了付值
对,是这样的
在对数据库查询时,加上单号做为查询条件之一。2.不直接对datagrid输入,它做为一个清单列表来显示数据,也就是textbox每录入完毕一条,保存到数据库,同时更新到datagrid表(将单据号码做为筛选条件)。3.再就是些细节的代码,比如按钮“继续填加”,更新数据到数据库后,清空textbox(保留单据号码),等等。一点愚见,不要笑我。
我用datagrid只是为了客户看的清晰
我输入几条数据
一并写入数据库
而不是写一条就输入一条
那么写入数据库时,就要一个循环
我想如果有这个属性就会很方便了
那样的话,有些本来可以直接用下拉列表选择的项就不好操作了,比如性别,用 combobox只要选择一下就行了;还有产品名称之类的(如果有个产品名称维护型的数据库表的话),可以在加载时填加到combobox,供用户方便的选择,不用再重复录入了,更重要的是,它不会出现录入错误。如果直接输入datagrid,是不是就不能这样方便了呢?愚见,希望多多探讨,:)
可以的
我实际用的不是datagrid
而是tbddatagrid
你说的都可以实现我现在就是差那个属性了
我曾经也这样用过
msflexgrid控件有rows属性,可以统计行数。编辑时用一个textbox控件输入就行了,如果可行,我给你代码。怎么样????
谢谢
你发个代码给我吧
我收到会另开贴给你分的
e_mail:
[email protected]
在添加按钮中写入代码
n=MSRDC1.Resultset.rowcount
Text1.Width = MSFlexGrid1.ColWidth(1)
Text1.Height = MSFlexGrid1.CellHeight
Text1.Left = MSFlexGrid1.Left + MSFlexGrid1.ColPos(1)
Text1.top = MSFlexGrid1.top + MSFlexGrid1.RowPos(n) + (MSFlexGrid1.RowPos(n) - MSFlexGrid1.RowPos(n - 1))
Text1.Visible = True
Text1.SetFocus
保存代码
re_count=MSRDC1.Resultset.rowcount
If addrecord = True Then
'将最后一个值写到msflexgrid1的最后一个单元格内
MSFlexGrid1.TextMatrix(re_count + 1, 1) = Text1.Text
For i = re_num + 1 To MSFlexGrid1.Rows - 1
If Text1.Text <> "" Then
'向库里写记录
Writerecord i
Next
Writerecord 模块代码
Public Sub Writerecord(r As Integer)
s = G_struserlogname
If addrecord = True Then '添加
MSFlexGrid1.Row = r
MSFlexGrid1.Col = 1
txtsql = "select * from 表名
End If
rs.Open txtsql, CNT, adOpenKeyset, adLockPessimistic
rs.AddNew '添加
'给每个字段赋值
rs.Fields("字段3") = MSFlexGrid1.Text
rs.update
rs.Close
end sub你试试,有的地方可能需要改动一下
我的邮箱现在暂时不能用了,没法发e_mail