#1 Wed 28 May 2008 09:37
- nicolas valls
- Participant assidu
- Date d'inscription: 28 Oct 2005
- Messages: 154
Enregistrer la session de mise à jour en VBA
Bonjour,
Suite à un précédent post je sais récupérer l'éditeur en vba. Je voudrai être en mesure d'enregistrer la session de mise à jour (sans la fermer). Pour l'instant j'en suis là :
Code:
Dim pEditor As IEditor
Dim pID As New esricore.UID
pID = "esricore.Editor"
Set pEditor = Application.FindExtensionByCLSID(pID)
If pEditor.EditState = esriStateEditing Then
pEditor. *********Grand mystère*******
End IfJe vois bien qu'il y a Eeditor.stopediting, mais je veux laisser la session ouverte.
Comment faire ?
Para avance merci
Hors ligne
#2 Wed 28 May 2008 09:45
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: Enregistrer la session de mise à jour en VBA
et le
Code:
StopOperation
ne ferait pas l'affaire
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#3 Wed 28 May 2008 10:19
- nicolas valls
- Participant assidu
- Date d'inscription: 28 Oct 2005
- Messages: 154
Re: Enregistrer la session de mise à jour en VBA
J'ai testé mais ca ne marche pas.... merci quand même
Hors ligne
#4 Wed 28 May 2008 10:54
- eFab
- Juste Inscrit !
- Date d'inscription: 28 May 2008
- Messages: 5
Re: Enregistrer la session de mise à jour en VBA
code extrait d'une de mes procedures
vois si ca peut t'aider
Code:
Dim pDoc As IMxDocument
Set pDoc = ThisDocument
Dim pMap As IMap
Set pMap = pDoc.FocusMap
' Trouver la couche des Points Repères
Dim pLayer As ILayer
Dim intCount As Integer
For intCount = 0 To pMap.LayerCount - 1
Set pLayer = pMap.Layer(intCount)
If TypeOf pLayer Is IFeatureLayer Then
If pLayer.Name = strClassEnt Then '''''"PR_RD"
Set pFeatLayer = pLayer
Exit For
End If
End If
Next
If pFeatLayer Is Nothing Then
MsgBox "La couche PR_RD n'a pas été trouvée", vbExclamation
' pMap.AddLayer pLayer
Exit Sub
End If
' Initialisation du workspace
Dim pFeatClass As IFeatureClass
Dim pTable As ITable
Dim pDataset As IDataset
Dim pWkSpDS As IDataset
Dim pWkSpName As IName
Set pFeatClass = pFeatLayer.FeatureClass
Set pTable = pFeatClass
Set pDataset = pTable
Set pWkSpDS = pDataset.Workspace
Set pWkSpName = pWkSpDS.FullName
'ON verifie si la featureclass peut-etre mise a jour en dehors d'une session d'edition
If Not CanEditWOEditSession(pTlayer) Then 'fonction en bas de la procedure
' MsgBox "Cette featureclass peut-etre mise a jour en dehors d'une session d'edition"
pEditor.StartEditing pDataset.Workspace
End If
pEditor.StartOperation (cette ligne n'est peut-etre pas neccessaire)Fabrice
Hors ligne
#5 Wed 28 May 2008 11:32
- nicolas valls
- Participant assidu
- Date d'inscription: 28 Oct 2005
- Messages: 154
Re: Enregistrer la session de mise à jour en VBA
Le pEditor.startEditing lance la session de MAJ mais pour mon problème, j'ai la session qui est déjà ouverte, je veux l'enregistrer mais pas la fermer.
Je me suis rabattu sur
Code:
Dim outil As ICommandItem
Set outil = Application.Document.CommandBars.Find(arcid.Editor_SaveEdits)
outil.Executeca a l'air de marcher mais j'ai un problème (présent aussi sur d'autres projets) qui dès que je fais appel a un arcid empèche l'enregistrement du document :-( mais c'est un autre problème.
Merci pour vos réponses
Dernière modification par nicolas valls (Wed 28 May 2008 11:33)
Hors ligne
#6 Wed 28 May 2008 12:48
Re: Enregistrer la session de mise à jour en VBA
Dans les exemples d'ESRI http://edndoc.esri.com/arcobjects/9.2/C … kspace.htm la solution proposée est un stop and start.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#7 Wed 28 May 2008 13:59
- nicolas valls
- Participant assidu
- Date d'inscription: 28 Oct 2005
- Messages: 154
Re: Enregistrer la session de mise à jour en VBA
Oui mais je peux pas faire ca car j'ai une extension (GPS Analyst de trimble) qui tourne et qui a besoin d'une session de MAJ ouverte. Si je ferme la session je vais perdre les relevé GPS en cours de construction...
Hors ligne


