Как изменить даные поля в таблице?

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
LastSoldier
Новоприбывший
Сообщения: 3
Зарегистрирован: 05 июн 2011, 15:03
Репутация: 0

Как изменить даные поля в таблице?

Сообщение LastSoldier »

Всем привет! Я только начинающий программист, так что не судите строго.
У мня есть слой Goroda, в нем поля Name, F_id и Population.
Если таблица с именем Tabl в которой существует поле F_id_t связанное с слоем Goroda через поле F_id, так же в таблице существует еще несколько полей P_sr и P_max. Мне надо сделать форму на которую выводятся все имена городов, так же на форме будут еще два текстовых поля которые связаны с P_sr и P_max, мне надо сделать так, чтобы введя в эти поля значения, они поменялись и сохранились в моей таблице.
LastSoldier
Новоприбывший
Сообщения: 3
Зарегистрирован: 05 июн 2011, 15:03
Репутация: 0

Re: Как изменить даные поля в таблице?

Сообщение LastSoldier »

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
не могу включить редактирование
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Как изменить даные поля в таблице?

Сообщение Дмитрий Барышников »

Код ошибки смотрите при вызове StartEditing и StartEditOperation (эти функции должны возвращать код ошибки).
И проверьте возможность редактирования вашего файла в ArcMap через его интерфейс.
LastSoldier
Новоприбывший
Сообщения: 3
Зарегистрирован: 05 июн 2011, 15:03
Репутация: 0

Re: Как изменить даные поля в таблице?

Сообщение LastSoldier »

Такая ошибка "Object variable or With block variable not set"
Это получатся что я не установил 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 получается при открытии базы. Можно его получить и другими путями, в-зависимости от контекста.
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя