caolijun0359
路人甲
路人甲
  • 注册日期2006-07-28
  • 发帖数4
  • QQ
  • 铜币117枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:944回复:0

[讨论]VB+AE 出现自动化错误

楼主#
更多 发布于:2007-07-03 16:29
两个图层,一个里面有两个字段分别是“SHAPE_Area”和“name”,另一个里面是“面积分类”和“name”, 我从一个图层里面读取它的“SHAPE_Area”字段,根据其值的大小,再另一个层里面修改和它的“name”值相同的“面积分类”字段的值。运行过程在 lsFeature2.Store 语句处出现“”自动化错误,这是怎么回事啊,我用的engine是正版的9.0的
<P>    Dim lsLayer1 As IFeatureLayer<BR>    Dim lsLayer2 As IFeatureLayer<BR>    Dim lsFeatureCursor1 As IFeatureCursor<BR>    Dim lsFeatureCursor2 As IFeatureCursor<BR>    Dim lsFeature1 As IFeature<BR>    Dim lsFeature2 As IFeature<BR>    Dim lsFilter As IQueryFilter<BR>    Dim polygon_Area As Double<BR>    Dim polygon_name As String<BR>    Dim i As Integer<BR>    <BR>    For i = 0 To MapControl1.LayerCount - 1<BR>        If MapControl1.Layer(i).Name = "海湾名称" Then<BR>            Set lsLayer2 = MapControl1.Layer(i)<BR>            Exit For<BR>        End If<BR>    Next<BR>    <BR>    Set lsLayer1 = lsCurLay<BR>    Set lsCurLay = Nothing<BR>    <BR>    If lsLayer1.FeatureClass.ShapeType = esriGeometryPolygon Then<BR>        <BR>        Set lsFeatureCursor1 = lsLayer1.Search(Nothing, False)<BR>        Set lsFeature1 = lsFeatureCursor1.NextFeature<BR>        <BR>        Do Until (lsFeature1 Is Nothing)<BR>        <BR>            polygon_Area = lsFeature1.Value(lsFeature1.Fields.FindField("SHAPE_Area"))<BR>            polygon_name = lsFeature1.Value(lsFeature1.Fields.FindField("name"))<BR>                        <BR>            Set lsFilter = New QueryFilter<BR>            lsFilter.SubFields = "name,面积分类"<BR>            lsFilter.WhereClause = "name='" ; polygon_name ; "'"<BR>            Set lsFeatureCursor2 = lsLayer2.Search(lsFilter, False)<BR>            Set lsFeature2 = lsFeatureCursor2.NextFeature<BR>            <BR>            If polygon_Area < 100000 Then<BR>                lsFeature2.Value(lsFeature2.Fields.FindField("面积分类")) = "小湾"<BR>            ElseIf polygon_Area > 100000 And polygon_Area < 1000000 Then<BR>                lsFeature2.Value(lsFeature2.Fields.FindField("面积分类")) = "中湾"<BR>            ElseIf polygon_Area > 1000000 Then<BR>                lsFeature2.Value(lsFeature2.Fields.FindField("面积分类")) = "大湾"<BR>            End If<BR>            <BR>            lsFeature2.Store<BR>            <BR>            Set lsFeature1 = lsFeatureCursor1.NextFeature<BR>        Loop<BR>        <BR>    End If<BR>    <BR>    Set lsLayer1 = Nothing<BR>    Set lsLayer2 = Nothing<BR>    Set lsFeatureCursor1 = Nothing<BR>    Set lsFeatureCursor2 = Nothing<BR>    Set lsFeature1 = Nothing<BR>    Set lsFeature2 = Nothing<BR>    Set lsFilter = Nothing</P>
喜欢0 评分0
游客

返回顶部