banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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


Nicolas VALLS
Géomaticen
Cabinet Pierre GRILLET

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


Nicolas VALLS
Géomaticen
Cabinet Pierre GRILLET

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)


Nicolas VALLS
Géomaticen
Cabinet Pierre GRILLET

Hors ligne

 

#6 Wed 28 May 2008 12:48

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

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...


Nicolas VALLS
Géomaticen
Cabinet Pierre GRILLET

Hors ligne

 

Pied de page des forums

Powered by FluxBB