Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

GEODATA DAYS 2024

#1 Fri 16 June 2006 13:49

cciocc
Juste Inscrit !
Date d'inscription: 13 Jun 2006
Messages: 5

Utilisation de MapBasic avec VBA-A

Bonjour, je recherche du code VBA (Access) permettant d'utiliser le langage de Map Basic. J'ai trouvé ceci :

Code:

Private Sub test()
Dim mi As Object
Set Map = CreateObject("MapInfo.Application")
Map.Do "Open Table "Z:\MapInfo\Excel\Cat6.TAB""
End Sub

Mais j'obtiens une erreur au niveau des guillemets du chemin d'accès qui sont déjà dans des guillemets (chose impossible avec VBA). J'ai essayé de mettre des guillemets, des quotes et d'échapper les guillemets avec \ mais rien ne marche.
Merci de m'aider svp...

Hors ligne

 

#2 Fri 16 June 2006 14:53

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Utilisation de MapBasic avec VBA-A

Bonjour,
Peut être une réponse dans ce post:
http://georezo.net/forum/viewtopic.php?pid=51617#p51617

Hors ligne

 

#3 Fri 16 June 2006 16:51

ROBIN Thomas
Invité

Re: Utilisation de MapBasic avec VBA-A

/*Dim action as string...
**action  = "Open Table Z:MapInfoExcelCat6.TAB"
*//*Map.Do action*/

ou encore

/*Map.Do "Open Table" & chr(34) & "Z:MapInfoExcelCat6.TAB" & chr(34)

*/Tu vois quand tu veux, tu commence à y arriver...

Bon courage et continue... tu es sur la bonne voie

Thomas

 

#4 Mon 19 June 2006 14:44

cciocc
Juste Inscrit !
Date d'inscription: 13 Jun 2006
Messages: 5

Re: Utilisation de MapBasic avec VBA-A

Bonjour, la méthode postée par ROBIN Thomas (la 2ème) marche très bien (merci!) mais lorsque je transforme le code trouvé avec la fenêtre MapBasic pour ouvrir un fichier.dbf, je n'obtiens rien: ni erreur dans access, ni ouverture du fichier. Je voulais savoir si quelqu'un peut me dire d'ou vient ce problème :

Code:

Set mi = CreateObject("MapInfo.Application")
mi.Do "Register Table " & Chr(34) & "Z:\MapInfo\Excel\Cat6.dbf" & Chr(34) & "  TYPE DBF Charset " & Chr(34) & "WindowsLatin1" & Chr(34) & "Into" & Chr(34) & "Z:\MapInfo\Excel\Cat6.dbf" & Chr(34) & "Open Table" & Chr(34) & "Z:\MapInfo\Excel\CAT6.TAB" & Chr(34) & "Interactive Browse * From CAT6"

Voilà merci d'avance de votre aide

Hors ligne

 

#5 Mon 19 June 2006 17:17

brice
Participant occasionnel
Lieu: Niort
Date d'inscription: 25 Oct 2005
Messages: 42

Re: Utilisation de MapBasic avec VBA-A

Bonjour,
Tu te crées un document MapInfo (.wor) avec toutes les tables MI dont tu as besoin
Tu te crées un formulaire

Dans un module, tu te crées une procédure avec ce code :

Sub initialisation_MI(w_fenetre As Long, ByVal nom_fenetre As String)

    Set mapinfo_obj = CreateObject("MapInfo.application") 'Création de l'objet Mapinfo
    mapinfo_obj.do "close all" 'Exécute la commande tout fermer de MI
    mapinfo_obj.do "set next document parent " & w_fenetre & " style 1" 'la fenêtre carte devient une fenêtre associé à VBA
    mapinfo_obj.do "run application """ & APPLI_A_LANCER & """" 'Démarre le document MapInfo

End Sub


Sur l'évenment de l'ouverture du formulaire, tu mets ce code :

Call initialisation_MI(Me.Hwnd, "ligne") 'Appel de la procédure initialisation_mi


Logiquement si cela marche à l'ouverture de ton formulaire tu auras ton document carto qui sera visible.

Dans ton code, ce je ne comprends pas pourquoi as tu besoin d'ouvrir un fichier dbf par cette méthode ne serait il pas + simple de passer par le moteur Access.


Pour finir je te conseille grandement de regarder le chapitre 11 du manuel MapBasic concernant l'Integrated Mapping comme j'ai pu le mettre sur la discussion donné en lien.


Bon courage


HUGAULT Brice
CG 79 - Direction de l'aménagement et du développement durable
Pôle SIG
brice.hugault@texte-a-enlever.cg79.fr

Hors ligne

 

#6 Tue 20 June 2006 10:02

cciocc
Juste Inscrit !
Date d'inscription: 13 Jun 2006
Messages: 5

Re: Utilisation de MapBasic avec VBA-A

En fait le fichier .dbf est le résultat d'une requete sous Access, et c'est a partir de cette requete que les données de MapInfo (le fichier .wor) doivent etre remises à jour.
J'ai essayé en enregistrant la requete dans une BD (en tant que table) puis de l'importer dans mapinfo via VBA, mais j'ai le meme problème qu'avec un .dbf : rien ne s'affiche.
J'ai fait aussi avec un .xls, mais lors de l'importation via vba, une fenetre de dialogue s'ouvre ou il faut choisir quelques propriétés (les cellules a importer et les titres en haut des colonnes)
donc avec xls la méthode n'est pas automatique... voila si quelqu'un a une solution a me proposer je suis preneur!!

Hors ligne

 

#7 Wed 21 June 2006 11:44

brice
Participant occasionnel
Lieu: Niort
Date d'inscription: 25 Oct 2005
Messages: 42

Re: Utilisation de MapBasic avec VBA-A

Pourquoi tu ne mets pas ton fichier DBF en ODBC, ce qui permettra d'avoir une liaison dynamique puis pour la mise à jour tu fais ta jointure entre ta donnée géographique et ta donnée descriptive contenu dans ton DBF dans MapInfo.
Si c'est quelqu'un d'autre qui doit gérer la MAJ, tu peux lui enregistrer le modèle de requête afin qu'il effectue l'opération tout simplement.

A mon avis solution + simple et moins chronophage.


Ce n'est qu'une piste car je ne connais pas exactement ton besoin.


HUGAULT Brice
CG 79 - Direction de l'aménagement et du développement durable
Pôle SIG
brice.hugault@texte-a-enlever.cg79.fr

Hors ligne

 

Pied de page des forums

Powered by FluxBB