vb中data数据控件find方法的运用,请vb高手指点
如图所示我用msflexgrid来显示数据库的内容现在我想实现的功能是,内部赋值或通过inputbox函数外部输入一个值(和故障代码相同的值即1-14)通过这些代码在数据...
如图所示
我用msflexgrid 来显示数据库的内容 现在我想实现的功能是,内部赋值或通过inputbox函数外部输入一个值(和故障代码相同的值即1-14)通过这些代码在数据库里查找到与之对应得才显示到msflexgrid上,我用dada控件来连接的 请问应该怎么做呀 我用find方法没做出来 求高手举个例子 必好评 展开
我用msflexgrid 来显示数据库的内容 现在我想实现的功能是,内部赋值或通过inputbox函数外部输入一个值(和故障代码相同的值即1-14)通过这些代码在数据库里查找到与之对应得才显示到msflexgrid上,我用dada控件来连接的 请问应该怎么做呀 我用find方法没做出来 求高手举个例子 必好评 展开
1个回答
展开全部
一、根据你的描述,应该是在 MSFlexGrid中只显示满足条件的数据记录,如果这样的话,就把与MSFlexGrid连接的数据源改变就可以了,把每次查询的条件用SQL语句给数据控件.
如:与MSFlexGrid连接的数据控件名称是 dataGrid,你在设计时MSFlexGrid1.DataSource=dataGrid
在程序运行加载时先不要显示任何数据...
在 Form_Load()中改变dataGrid的RecordSource
dataGrid.RecordSource="SELECT * FROM 数据表 WHERE 字段名(故障代码)='FALSE'"
dataGrid.Refresh
这样的话,程序运行完成后在MSFlexGrid中不显示任何内容.
如果要显示查询结果的话,就再次用 SQL语句设置dataGrid的RecordSource 属性,如:故障代码为1-14
.......
dataGrid.RecordSource="SELECT * FROM 数据表 WHERE 字段名(故障代码)='1-14'"
dataGrid.Refresh
这样只要有满足条件的结果,MSFlexGrid就显示正确的内容了.
二、就是根据查询的条件在MSFlexGrid中定位要需要的显示的内容
首先系统运行的时候就把数据全部加载显示,然后在根据你的查询条件在MSFlexGrid中定位要显示的内容.
根据你现在MSFlexGrid显示的内容看,“故障代码”在MSFlexGrid中的第一列,所以用MSFlexGrid的TextArrary(cellindex)属性,就能定位到你需要查询的结果,第一列的cellindex变化值为3,6,9...
dim i as integer
dim rows as integer
rows=MSFlexGrid.Rows*3
for i=3 to rows step 3
if MSFlexGrid.TextArray(i)="1-14" then
MSFlexGrid.Row=int(i/3)
endif
next i
如:与MSFlexGrid连接的数据控件名称是 dataGrid,你在设计时MSFlexGrid1.DataSource=dataGrid
在程序运行加载时先不要显示任何数据...
在 Form_Load()中改变dataGrid的RecordSource
dataGrid.RecordSource="SELECT * FROM 数据表 WHERE 字段名(故障代码)='FALSE'"
dataGrid.Refresh
这样的话,程序运行完成后在MSFlexGrid中不显示任何内容.
如果要显示查询结果的话,就再次用 SQL语句设置dataGrid的RecordSource 属性,如:故障代码为1-14
.......
dataGrid.RecordSource="SELECT * FROM 数据表 WHERE 字段名(故障代码)='1-14'"
dataGrid.Refresh
这样只要有满足条件的结果,MSFlexGrid就显示正确的内容了.
二、就是根据查询的条件在MSFlexGrid中定位要需要的显示的内容
首先系统运行的时候就把数据全部加载显示,然后在根据你的查询条件在MSFlexGrid中定位要显示的内容.
根据你现在MSFlexGrid显示的内容看,“故障代码”在MSFlexGrid中的第一列,所以用MSFlexGrid的TextArrary(cellindex)属性,就能定位到你需要查询的结果,第一列的cellindex变化值为3,6,9...
dim i as integer
dim rows as integer
rows=MSFlexGrid.Rows*3
for i=3 to rows step 3
if MSFlexGrid.TextArray(i)="1-14" then
MSFlexGrid.Row=int(i/3)
endif
next i
追问
不行啊 提示有错误 用的是data控件和msflexgrid控件 没有用datagrid控件的
追答
你要跟踪一下程序,看是具体那句程序有问题才好修改!
如果从数据源 data控件上获取查询数据的话,与显示的Grid控件没什么关系.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询