Всем привет! Я только начинающий программист, так что не судите строго.
У мня есть слой Goroda, в нем поля Name, F_id и Population.
Если таблица с именем Tabl в которой существует поле F_id_t связанное с слоем Goroda через поле F_id, так же в таблице существует еще несколько полей P_sr и P_max. Мне надо сделать форму на которую выводятся все имена городов, так же на форме будут еще два текстовых поля которые связаны с P_sr и P_max, мне надо сделать так, чтобы введя в эти поля значения, они поменялись и сохранились в моей таблице.
Как изменить даные поля в таблице?
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 05 июн 2011, 15:03
- Репутация: 0
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 05 июн 2011, 15:03
- Репутация: 0
Re: Как изменить даные поля в таблице?
Dim pEdit As IWorkspaceEdit
Do Until pFeat Is Nothing
If pFeat.Value(pFeat.Fields.FindField("Name")) = ListBox1.Value Then
x = pFeat.Value(pFeat.Fields.FindField("F_ID_g"))
Exit Do
End If
Set pFeat = pCur.NextFeature
Loop
Set pStandaloneTable = pStandaloneTableCollection.StandaloneTable(0)
Set pCur1 = pStandaloneTable.Table.Search(Nothing, False)
Set pRow = pCur1.NextRow
pEdit.StartEditing False
pEdit.StartEditOperation
Do Until pRow Is Nothing
If pRow.Value(pRow.Fields.FindField("F_id")) = x Then
y = pRow.Value(pRow.Fields.FindField("P_sr"))
pRow.Value(pRow.Fields.FindField("P_sr")) = Text_P_sr.Text
Exit Do
End If
Set pRow = pCur1.NextRow
Loop
pEdit.StopEditOperation
pEdit.StopEditing True
В этом месте "pRow.Value(pRow.Fields.FindField("P_sr")) = Text_P_sr.Text" я пытаюсь заменить поле в таблиц на то что пишу в текстовом поле.
у меня проблема с этим
pEdit.StartEditing False
pEdit.StartEditOperation
не могу включить редактирование
Do Until pFeat Is Nothing
If pFeat.Value(pFeat.Fields.FindField("Name")) = ListBox1.Value Then
x = pFeat.Value(pFeat.Fields.FindField("F_ID_g"))
Exit Do
End If
Set pFeat = pCur.NextFeature
Loop
Set pStandaloneTable = pStandaloneTableCollection.StandaloneTable(0)
Set pCur1 = pStandaloneTable.Table.Search(Nothing, False)
Set pRow = pCur1.NextRow
pEdit.StartEditing False
pEdit.StartEditOperation
Do Until pRow Is Nothing
If pRow.Value(pRow.Fields.FindField("F_id")) = x Then
y = pRow.Value(pRow.Fields.FindField("P_sr"))
pRow.Value(pRow.Fields.FindField("P_sr")) = Text_P_sr.Text
Exit Do
End If
Set pRow = pCur1.NextRow
Loop
pEdit.StopEditOperation
pEdit.StopEditing True
В этом месте "pRow.Value(pRow.Fields.FindField("P_sr")) = Text_P_sr.Text" я пытаюсь заменить поле в таблиц на то что пишу в текстовом поле.
у меня проблема с этим
pEdit.StartEditing False
pEdit.StartEditOperation
не могу включить редактирование
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Как изменить даные поля в таблице?
Код ошибки смотрите при вызове StartEditing и StartEditOperation (эти функции должны возвращать код ошибки).
И проверьте возможность редактирования вашего файла в ArcMap через его интерфейс.
И проверьте возможность редактирования вашего файла в ArcMap через его интерфейс.
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 05 июн 2011, 15:03
- Репутация: 0
Re: Как изменить даные поля в таблице?
Такая ошибка "Object variable or With block variable not set"
Это получатся что я не установил set pEdit= вот чему должно быть оно равно?
Это получатся что я не установил set pEdit= вот чему должно быть оно равно?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Как изменить даные поля в таблице?
Вы создали объект IWorkspaceEdit но не проинициализировали его
посмотрите пример
http://edndoc.esri.com/arcobjects/9.2/c ... xample.htm
Обратите внимание на эти строчки
Dim pWorkspaceEdit As IWorkspaceEdit
Set pWorkspaceEdit = pFeatureWorkspace
В первой создается объект, а во второй инициализируется.
Причем, pFeatureWorkspace получается при открытии базы. Можно его получить и другими путями, в-зависимости от контекста.
посмотрите пример
http://edndoc.esri.com/arcobjects/9.2/c ... xample.htm
Обратите внимание на эти строчки
Dim pWorkspaceEdit As IWorkspaceEdit
Set pWorkspaceEdit = pFeatureWorkspace
В первой создается объект, а во второй инициализируется.
Причем, pFeatureWorkspace получается при открытии базы. Можно его получить и другими путями, в-зависимости от контекста.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя