1/if FeatureClass
StartEditing:
Public Sub StartEditing()
Dim pWorkspaceEdit As IWorkspaceEdit
Dim pDoc As IMxDocument
Dim pMap As IMap
Dim pFeatureLayer As IFeatureLayer
Dim pDataset As IDatasetOn Error GoTo StartEditing_err
' Check edit conditions before allowing edit to start
If g_SubAreaLayer Is Nothing Then
MsgBox "ÇëÏÈÉèÖòéѯͼ²ã£¡"Exit Sub
End IfSet pFeatureLayer = g_SubAreaLayer
Set pDataset = pFeatureLayer.FeatureClass
If pDataset Is Nothing Then Exit Sub' Start editing, making sure that undo/redo are enabled
Set pWorkspaceEdit = pDataset.Workspace
If Not pWorkspaceEdit.IsBeingEdited Then
pWorkspaceEdit.StartEditing True
pWorkspaceEdit.EnableUndoRedo
End IfExit Sub
StartEditing_err:
MsgBox err.Description
End Sub
FeatureCursor.NextFeature
Feature.Store
StopEditing
Public Sub StopEditing()
Dim pFeatureLayer As IFeatureLayer
Dim pDataset As IDataset
Dim pWorkspaceEdit As IWorkspaceEdit
Dim pDoc As IMxDocument
Dim pMap As IMap
Dim pAV As IActiveViewDim bHasEdits As Boolean
Dim bSave As BooleanOn Error GoTo StopEditing_err
' Check edit conditions before allowing edit to stop
Set pFeatureLayer = g_SubAreaLayer
Set pDataset = pFeatureLayer.FeatureClass
If pDataset Is Nothing Then Exit Sub' If the current document has been edited then prompt the user to save changes
Set pWorkspaceEdit = pDataset.Workspace
If pWorkspaceEdit.IsBeingEdited Then
pWorkspaceEdit.HasEdits bHasEdits
If bHasEdits = True Then
If vbYes = MsgBox("Do you want to save your edits?", vbQuestion + vbYesNoCancel, "Question Dialog") Then
bSave = True
End If
End If
pWorkspaceEdit.StopEditing bSave
End IfSet pDoc = m_App.Document
Set pAV = pDoc.ActiveView
pAV.RefreshExit Sub
StopEditing_err:
MsgBox err.Description
End Sub
2/StandaloneTable
不需要StartEditing
只需得到Update Cursor
然后IRow.Store
Dim pTabCollection As IStandaloneTableCollection
Dim pStTable As IStandaloneTable
Set pTabCollection = pMapSet pStTable = pTabCollection.StandaloneTable(0)
Set pCS = pStTable.Table.Update(Nothing, True)
但要注意普通MDB Table不能编辑
应该先转成GDB Table
本文介绍了如何在ArcEngine中进行编辑属性的操作,包括`StartEditing`和`StopEditing`子程序,用于开始和结束编辑会话,并提示用户保存更改。此外,还提到了独立表格的编辑,强调了使用更新游标和存储更改的过程,但需要注意MDB表的限制,建议转换为GDB表。
——Edit Attributes in ArcEngine&spm=1001.2101.3001.5002&articleId=627737&d=1&t=3&u=d60a5c7b5b85493d9678664503692922)
381

被折叠的 条评论
为什么被折叠?



