我正在使用以下脚本从一层中获取地块和地址信息,以填充新创建要素的属性表。
没有返回错误,但我遇到的问题是recordselect函数的内存中似乎有错误的信息。无论我在哪里放置一个点,它都会给出相同的包裹编号和地址。或者它实际上并没有正确执行 IF 功能。
Sub Address
Dim rsCurrentXY
Set rsCurrentXY = Map.Layers("Violations").records
rsCurrentXY.movelast
Dim objXYShape
Set objXYShape = rsCurrentXY.Fields.Shape
Dim pControls
Set pControls= Application.Map.selectionlayer.Forms("EDITFORM").Pages(“PAGE1”).Controls
Dim rsGrid
' Find corresponding map page to the valve point
Set rsGrid = Map.Layers("ACPA_parcels").records
rsGrid.movefirst
Do While Not rsGrid.eof
If rsGrid.fields.shape.Ispointin(objXYShape) Then
pControls("txtAddress").value = rsGrid.Fields("ADD1").Value
Exit Do
End If
rsGrid.Movenext
Loop
' Clean Up
Set rsCurrentXY = Nothing
Set objXYShape = Nothing
Set rsGrid = Nothing
End Sub
(我有另一个名为“PIN”的子程序可以做同样的事情。)当检查员激活自定义表单中各自的编辑框时,我会调用它们。
感谢您的帮助,罗伯特