阅读:1470回复:0
关于查询的问题请高手帮帮忙!!!
<P> 用的是MapInfo数据表绑定到图层,其中数据表中有3个字段,分别为Feature_ID(Integer型)自动生成的数值,NAME(character型)地点名其中字段值用的是中文地名,PYNAME(character型)地点别名其中字段值用的是英文地名。程序段如下:</P>
<P> Set findLayer = frmMain.mpMain.Layers.Item("县级市点层")<BR> Set ds = frmMain.mpMain.DataSets.Add(miDataSetLayer, findLayer)<BR> Set findLayer.Find.FindDataset = ds<BR> Set findLayer.Find.FindField = ds.fields("NAME")<BR> Set FoundObj = findLayer.Find.Search(txtFind.Text)<BR> ‘txtFind.text是输入查找地点名字的文本框<BR> </P> <P> If FoundObj.FindRC Mod 10 = 1 Then<BR> frmMain.mpMain.Zoom = 100<BR> frmMain.mpMain.CenterX = FoundObj.CenterX<BR> frmMain.mpMain.CenterY = FoundObj.CenterY<BR> <BR> findLayer.Selection.Replace FoundObj<BR> Else<BR> MsgBox "没有精确匹配对象"<BR> Set findLayer.Find.FindDataset = Nothing<BR> Set findLayer.Find.FindField = Nothing</P> <P>执行上面程序出现下面错误:</P> <P><FONT color=#ff3300>"实时错误’-2147417848(80010108)‘</FONT></P> <P><FONT color=#ff3300>对象’Search‘的方法’CMapXLayerFind‘失败"</FONT></P> <P>如果把Set findLayer.Find.FindField = ds.fields("NAME")中的"NAME"换成"Feature_ID"和"PYNAME"都可以运行,就是当为“NAME”时输入中文地名时出现上述错误,本人调试了很久也没成功,想请那位高手能不能帮助解决。我不知道是不是与输入法有关还是其他原因,本人用的VB6.0是中文版,MAPX5.0是英文版。如有表述不清楚的地方请大家指出。<BR></P> |
|