#1 Fri 25 April 2008 11:49
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Projet ArcGIS / base Acces en VBA ou VB6
bonjour tout le monde, j'ai crée un listbox avec V.B editor d'ArcGIS 9.0,mais je n'arrive pas à la lier avec une table Access pour pouvoir afficher le contenu d'un champ de cette table
Dernière modification par Jérôme C (Sun 27 April 2008 08:59)
Hors ligne
#2 Fri 25 April 2008 13:08
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: Projet ArcGIS / base Acces en VBA ou VB6
si je me souviens bien pour récupérer une base de données access et l'utiliser par il faut que tu créé un AccessWorkpsaceFactory et ainsi de suite.
bref ... utiliser les arcobjects
Dernière modification par Tnarbiv (Fri 25 April 2008 13:08)
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#3 Fri 25 April 2008 13:15
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
j'ai pas bien compris, tu peux m'expliquer un peu plus
Hors ligne
#4 Fri 25 April 2008 14:13
- Tnarbiv
- Participant assidu
- Lieu: Véretz
- Date d'inscription: 5 Sep 2005
- Messages: 392
Re: Projet ArcGIS / base Acces en VBA ou VB6
le plus simple ce serait que tu fasses des recherches ici http://edndoc.esri.com/arcobjects/9.0/
voici un exemple de ce que je te disais tout à l'heure : http://edndoc.esri.com//arcobjects/9.2/ … 60d87d.htm
une fois que tu as récupéré ta base de données access, il faut que tu récupères ta table, ensuite ta collection de champs puis ton champ et ensuite tu listes les valeurs de ton champ afin de les mettre dans ta liste déroulante.
Ayez le réflexe "Développement Durable": N'imprimez ce message que si nécessaire.
Hors ligne
#5 Fri 25 April 2008 18:49
Re: Projet ArcGIS / base Acces en VBA ou VB6
Grande précision :
ArcGIS n'est pas Access,
Remplir une liste-boite ne se fait pas en trois clic, ça se fait par programmation VBA, au grand malheur des non-inités et peut-être des habitués aux formulaires Access.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#6 Sat 26 April 2008 00:30
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
je le sais et je demande s'il y a quelqu'un qui peut m'aider
Hors ligne
#7 Sat 26 April 2008 08:46
Re: Projet ArcGIS / base Acces en VBA ou VB6
Cours en ligne de l'ENSG ?
http://www.ensg.eu/FAD/FAD_PDF/Sig_Pdf/Cours_vba.pdf
C'est un bon début pour apprendre le VBA d'ArcGIS. Tu n'auras surement pas ta réponse directement, mais c'est peut-être plus abordable que le site de doc d'ESRI si tu découvres.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#8 Sat 26 April 2008 10:01
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Projet ArcGIS / base Acces en VBA ou VB6
Bonjour,
Par programmation, vous avez effectivement la possibilité d'utiliser les ArcObjects. Toutefois, si votre besoin se limite à consulter des données attributaires dans une table de votre base Access, vous avez aussi la possibilité d'utiliser les ADO. Si vous connaissez la syntaxe SQL, cela vous sera plus facile d'emploi que les ArcObjects.
Je vous mets ci dessous du code qui exécute une requête de sélection de valeurs distinctes dans une table "CABLE" d'une base Access. Pour faire fonctionner ce code, vous devez ajouter à votre projet VB la référence à la librairie Microsoft ActiveX Data Objects 2.x
J'espère que cela vous aidera. Et si vous souhaitez malgré tout utiliser les ArcObjects, j'essaierai de trouver le temps de vous indiquer comment faire.
Code:
Option Explicit Public Function Test() On Error GoTo EH Dim cnBase As ADODB.Connection Dim strAccessBddPath As String Dim rst As New ADODB.RecordSet Dim strSQL As String strAccessBddPath = "C:\MaBase.mdb" 'Creation de la connexion a la base de donnees '--------------------------------------------- Set cnBase = New ADODB.Connection cnBase.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Persist Security Info=False;Data Source=" & strAccessBddPath 'Définition de la requête à éxécuter strSQL = "SELECT DISTINCT PROPRIETAIRE FROM CABLE" 'Ouverture du recordset Set rst = OpenRecordset(cnBase, strSQL) 'Boucle sur les différents enregistrements retournés du recordset If Not rst Is Nothing Then If rst.State <> 0 And rst.RecordCount > 0 Then rst.MoveFirst Do While Not rst.EOF 'Affichage des valeurs du champ PROPRIETAIRE MsgBox rst.Fields("PROPRIETAIRE").Value rst.MoveNext Loop rst.Close End If End If CleanUp: Set rst = Nothing 'Fermeture de la connexion cnBase.Close Set cnBase = Nothing Exit Function EH: GoTo CleanUp End Function Public Function OpenRecordset(ByVal cnBase As ADODB.Connection, _ ByVal strSQL As String) As ADODB.RecordSet On Error GoTo EH Dim rstTmp As ADODB.RecordSet Set rstTmp = New ADODB.RecordSet rstTmp.CursorLocation = adUseClient rstTmp.ActiveConnection = cnBase rstTmp.CursorType = adOpenKeyset rstTmp.LockType = adLockOptimistic rstTmp.Open strSQL Set OpenRecordset = rstTmp CleanUp: rstTmp.Close Set rstTmp = Nothing Exit Function EH: GoTo CleanUp End Function
Cordialement,
Kevin Jousseaume
Hors ligne
#9 Sat 26 April 2008 11:58
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
merci pour le code Kevin, j'ai copier le code dans la procedure qui correspond à ma ListBox, mais en executant ce code rien ne change, c'est normal?
Hors ligne
#10 Sat 26 April 2008 19:04
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Projet ArcGIS / base Acces en VBA ou VB6
Avez-vous regardé si votre code générait des erreurs ? Vous pouvez le faire en mode debug ou bien mettant un MsgBox dans la pseudo-gestion d'erreur que j'avais initiée (après EH:).
Hors ligne
#11 Sat 26 April 2008 22:44
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
j'ai un message d'erreur qui indique que l'expression " Option Explicit" est incorrecte dans une procedure
Hors ligne
#12 Sun 27 April 2008 00:49
- Kevin Jousseaume
- Participant assidu
- Lieu: Nanterre, région parisienne
- Date d'inscription: 20 Mar 2006
- Messages: 217
Re: Projet ArcGIS / base Acces en VBA ou VB6
C'est normal, l'expression "Option Explicit" doit se situer en en-tête de votre code, en dehors de toute procédure.
Hors ligne
#13 Sat 26 April 2008 22:54
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
est ce que je peux monter mon projet en VB et appeler l'arcGIS à partir du VB pour afficher des cartes?
Hors ligne
#15 Sat 26 April 2008 00:42
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
j'ai crée une B.D access maintnant je calculer des ratios à partir de cette B.D sous ArcGIS et les afficher dans une interface que j'ai préapré. est ce qu'il y a quelqu'un qui pourra m'aider en ce qui concerne la lecture de la B.D en ArcGIS et le calcul des indicateurs
Hors ligne
#16 Sat 26 April 2008 23:40
- AnOuChKa
- Participant occasionnel
- Lieu: MOSCOU
- Date d'inscription: 19 Jul 2007
- Messages: 37
Re: Projet ArcGIS / base Acces en VBA ou VB6
bonjour
bon pour la connection ( lire la BD de acces ) , va sur ArcCatalog et importe ta BD
Hors ligne
#17 Sun 27 April 2008 00:50
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
tu pourras me donner plus de détails pr importer ma BD
Hors ligne
#18 Sat 26 April 2008 22:51
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
dans la boite à outil VBA d'arcGIS, est ce qu'il y a un bouton qui permet d'etablir une liaison avec une B.D, dans le cas du V.B 6 il y a le bouton "Data"?
Hors ligne
#19 Sun 27 April 2008 09:09
Re: Projet ArcGIS / base Acces en VBA ou VB6
Bon, on va faire simple badr,
Tu as un projet Access, ArcGIS que tu veux lier. Tu as tout un lot de questions qui se recoupent. Donc, tant que tes préoccupations tournent autour du même sujet, tu poses tes questions dans le même sujet. Ce qui permettra de ne pas inonder le forum de nouveau sujet à chaque fois que tu apparait.
bien jojomatiquement,
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#20 Sun 27 April 2008 14:49
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
ok,je vais résumer mon projet: j'ai une B.D Access, j'ai crée des formes avec visual basic editor d'ArcGIS, maintenant je veux calculer des indicateurs à partir des tables de la B.D mais je ne sais pas comment le faire
Hors ligne
#21 Sun 27 April 2008 19:48
Re: Projet ArcGIS / base Acces en VBA ou VB6
badr, dois-tu faire cela de façon automatique (la lecture de la BD) ou bien si tu ouvres tes tables dans ArcGIS et si tu les traites alors comme des tables ArcGIS cela ne poses pas de problèmes ?
Dans le dernier cas, tu devrais essayer d'ajouter simplement ta base Access dans ArcMap en tant que données.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#22 Sun 27 April 2008 23:53
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
ce n'est pas un problème si je les utilise comme des tables ArcGIS. comment je peux ajouter ma base access dans ArcMap?
Hors ligne
#23 Mon 28 April 2008 08:53
Re: Projet ArcGIS / base Acces en VBA ou VB6
Tu ne vois pas ta table access dans la boite de dialogue "Ajouter Donnée" (Croix Jaune et Noire) ?
Et dans ArcCatalog, est-ce que tu la vois ?
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#24 Mon 28 April 2008 11:56
- badr
- Participant occasionnel
- Date d'inscription: 3 Nov 2007
- Messages: 40
Re: Projet ArcGIS / base Acces en VBA ou VB6
Ds ArcCatalog je la vois. j'ai ecrit un code pour pouvoir me connecter à ma B.D et lire des champs à partir d'elle, mais je n'obtient rien après son execution, voilà mon code:
Private Sub ComboBox1_Change()
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= D:\sujet de fin d'etude\B.D\db1 "
con.Open
Dim rs As ADODB.RecordSet
Set rs = New RecordSet
rs.Open " select [NOM] from [COMMUNE] where ..., con, AdopenDynamic, AdLockOptimistic"
res = rs![NOM]
While rs.EOF = False
ComboBox1.AddItem rs![NOM]
Wend
rs.Close
con.Close
End Sub
Hors ligne