#1 Mon 20 March 2006 10:28
- nicolas valls
- Participant assidu
- Date d'inscription: 28 Oct 2005
- Messages: 154
VBA et session de mise a jour
Bonjour,
Je développe des interfaces de saisie arview en VBA. Globalement je n'ai aucun problème, mais je voudrai savoir si on peut controler si l'utilisateur a ouvert une session de mise à jour.
En fait ce qui me faudrait c'est un booléen du style :
if session_ouverte = true then massesion.fermer
Pour résumer, je veux pouvoir controler si la session de mise a jour est ouverte et si oui je veux la fermer.
Merci par avance de vos réponses
Dernière modification par nicolas valls (Mon 20 March 2006 13:49)
Hors ligne
#2 Mon 20 March 2006 16:19
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: VBA et session de mise a jour
Bonjour,
Je n'ai pas testé, mais je pense que cela devrait vous permettre d'avancer
'Récupération de l'outil d'édition
Dim pEditor As IEditor
Dim pID As New UID
pID = "esriEditor.Editor" 'si ArcGIS 9.x
'pID = "esricore.Editor" 'si ArcGIS 8.x
Set pEditor = Application.FindExtensionByCLSID(pID)
if (pEditor.EditState = esriStateEditing) then
pEditor.StopEditing True 'True pour quitter la session en sauvegardant les modifications, False pour quitter sans sauvegarder
end if
Set pID = Nothing
Set pEditor = Nothing
Kevin Jousseaume
Dernière modification par Kevin Jousseaume (Mon 20 March 2006 16:34)
Hors ligne
#3 Mon 20 March 2006 16:25
- DrassCentreSSE
- Participant occasionnel
- Date d'inscription: 17 Nov 2005
- Messages: 13
Re: VBA et session de mise a jour
bonjour,
je rejoins le propos de Kevin. Dans le cas d'une session de mise à jour d'une GdB par exemple, il existe une méthode 'IsBeingEdited' pour savoir si une table est en mode mise à jour.
Dim pWorkspaceEdit As IWorkspaceEdit
Dim pDataset As IDataset
' Ouverture d'une session d'edition
Set pDataset = <une table>
Set pWorkspaceEdit = pDataset.Workspace
pWorkspaceEdit.StartEditing True
pWorkspaceEdit.StartEditOperation
'pWorkspaceEdit.IsBeingEdited devrait renvoyer true
' Fermeture de la session d'edition (et sauvegarde)
pWorkspaceEdit.StopEditOperation
pWorkspaceEdit.StopEditing True
'pWorkspaceEdit.IsBeingEdited devrait renvoyer false
Set pWorkspaceEdit = Nothing
Set pDataset = Nothing
Hors ligne