Страница 1 из 1

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

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

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

Добавлено: 05 июн 2011, 18:56
Дмитрий Барышников

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

Добавлено: 05 июн 2011, 21:57
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
не могу включить редактирование

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

Добавлено: 05 июн 2011, 22:37
Дмитрий Барышников
Код ошибки смотрите при вызове StartEditing и StartEditOperation (эти функции должны возвращать код ошибки).
И проверьте возможность редактирования вашего файла в ArcMap через его интерфейс.

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

Добавлено: 05 июн 2011, 22:48
LastSoldier
Такая ошибка "Object variable or With block variable not set"
Это получатся что я не установил set pEdit= вот чему должно быть оно равно?

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

Добавлено: 06 июн 2011, 07:16
Дмитрий Барышников
Вы создали объект IWorkspaceEdit но не проинициализировали его
посмотрите пример
http://edndoc.esri.com/arcobjects/9.2/c ... xample.htm

Обратите внимание на эти строчки
Dim pWorkspaceEdit As IWorkspaceEdit
Set pWorkspaceEdit = pFeatureWorkspace

В первой создается объект, а во второй инициализируется.
Причем, pFeatureWorkspace получается при открытии базы. Можно его получить и другими путями, в-зависимости от контекста.