阅读:2393回复:8
[求助]在做浏览属性数据出现的问题,附代码?急!!!
<P>这段程序主要想做成类似mapinfo中的浏览属性数据或者arcview中的table</P>
<P>Dim recs As MapObjects2.Recordset Dim fld As MapObjects2.Field</P> <P> MSHFLEXGRID1.Clear Set recs = frmmain.mapDisp.Layers(0).Records '获得活动图层的记录集 '通过recs.Fields的字段集合获得活动图层的所有字段名, '并将字段名附给MSHFlexGrid1(vb控件)做列标题 , '利用fld.ValueAsString获得每条记录, '添加至MSHFlexGrid1.这样就可以实现了不查询获得所有属性数据记录了.</P> <P>With GridFeatList Dim j As Integer .Rows = 1 '总行数设为1 recs.MoveFirst Do While Not recs.EOF 'while循环每循环一次,获取一条记录 .Rows = .Rows + 1 j = 1 '从第2列(序号为1)开始填入属性数据,第一列为序号 For Each fld In recs.Fields '该循环每次获取的是一条记录的所有字段值 .TextMatrix(.Rows - 1, 0) = .Rows - 1 .TextMatrix(.Rows - 1, j) = fld.ValueAsString j = j + 1 Next fld recs.MoveNext Loop End With</P> <P>我在编译中不能通过说下面这句有问题,实时错误 381 ,下标越界</P> <P> .TextMatrix(.Rows - 1, j) = fld.ValueAsString</P> <P>请高手帮忙看看!</P><img src="images/post/smile/dvbbs/em02.gif" /> |
|
|
1楼#
发布于:2004-09-09 11:39
<P>检查一下你的数组定义啦!</P>
|
|
|
2楼#
发布于:2004-09-09 15:50
<P>查不出来啊,急。不知道有没有人做过?出来讲讲!</P>
|
|
|
3楼#
发布于:2004-09-10 08:22
我用listview
|
|
4楼#
发布于:2004-09-10 08:56
<P>能不能附一下代码啊?</P>
|
|
|
5楼#
发布于:2004-09-10 09:08
好象没有设GridFeatList的记录数呀!
|
|
|
6楼#
发布于:2004-09-10 09:41
<P>必须定义grid的行数,列数,因为默认的为两列两行,所以显示为下标越界,一般定义为grid.cols=recs.count,我没仔细看你的程序,反正就是这个问题了。</P>
|
|
7楼#
发布于:2004-09-10 11:51
<P>3x, 一语中地!</P><P>太感谢了,看来我还是对mshflexgrid不是很熟悉!</P>
|
|
|
8楼#
发布于:2004-11-08 17:54
<img src="images/post/smile/dvbbs/em01.gif" />
|
|