Bonjour à tous,

Mon programme sous Access affiche des markers sur google.maps dans un objet web (ActiveX) nommé 'wbGeoLoc'.

Les coordonnées sont récupérées via un recordset . Là pas de problème.
Puis pour chaque recordset j'appelle une fonction java 'addMarker' dans une fichier html via Document.parentWindow.execScript.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim aMarkerInfo(4) As String, sScript as string 
Dim vTab as variant
 
Set rdSet = CurrentDb.OpenRecordset(sSQL)
Do While Not rdSet.EOF = True
  aMarkerInfo(0) = rdSet![LatUs]
  aMarkerInfo(1) = rdSet![LongUS]
  aMarkerInfo(2) = rdSet!name
  aMarkerInfo(3) = "H"
  If Not (IsNull(aMarkerInfo(0)) Or IsNull(aMarkerInfo(1))) Then
    sScript = "oMap.addMarker(" & aMarkerInfo & ");" 
    Me.wbGeoLoc.Document.parentWindow.execScript sScript, csScriptLanguage
  End If
  rdSet.MoveNext
Loop
1ère erreur, affecter à la variable sScript la concaténation d'un texte avec la variable aMarkerInfo .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  sScript = "oMap.addMarker(" & aMarkerInfo & ");" 
  Me.wbGeoLoc.Document.parentWindow.execScript sScript, csScriptLanguage
Pas découragé j'ai alors pensé affecter le tableau à un variant qui prend alors la structure du tableau et qui permet de faire la concaténation puis appeler la fonction java comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
vTab = aMarkerInfo 
sScript = "oMap.addMarker(" & vTab  & ");" 
Me.wbGeoLoc.Document.parentWindow.execScript sScript, csScriptLanguage
Mais là ou ça coince sec c'est que la fonction appelée dans le fichier html "oMap.addMarker" n’interprète pas le tableau passé en paramètre et adieu mes petits markers.

Pour info, dans le fichier html, la fonction addMarker est déclarée comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
oMap.addMarker = function(markerInfo)
{ if (oMap.map)
  { var latlng = new google.maps.LatLng(markerInfo[0],markerInfo[1]);
  };
}
Je vous passe la fonction d'initialisation oMap.init = function() {}. Elle fonctionne parfaitement même si je pense que l'on peut optimiser l'algo.

Merci pour votre aide car je veux éviter le passage fastidieux et à rallonge de tous les paramètres déclarés un à un avec ces fameux triple coma de part et d'autre pour les chaines de caractères.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sScript = "oMap.addMarker(" & psLat & "," & psLong & "," & """" & PrepareTextToMap(psLib) & """" & "," & """" & psType & """" & ");"
Toutes vos solutions, même les plus folles, pour m'éclairer et me sortir des ténèbres sont les bienvenues.