#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 If
Je 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.Execute
ca 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