Accessのフォームで住所の表示された部分をgoogle mapに値(住所)を引き渡して地図表示しているのですが、どうもブラウザの調子が悪いようで、たまにエラーを起こします。


Private Sub 住所_DblClick(Cancel As Integer)
Const nu As String = vbNull
Dim ret As Long
Dim url As String
url = "http://local.google.co.jp/maps?hl=ja&f=l&safe=off&pws=0&q=" & Me!住所
ret = ShellExecute(0, "open", url, nu, nu, 0)

ここの 
http://local.google.co.jp/maps?hl=ja&f=l&safe=off&pws=0&q=
の部分をgoogle以外のサービスで表示したいと思っています。

Private Sub 住所_DblClick(Cancel As Integer)
Const nu As String = vbNull
Dim ret As Long
Dim url As String
url = "http://map.doko.jp/m/at=" & Me!住所
ret = ShellExecute(0, "open", url, nu, nu, 0)
End Sub

現在 http://map.doko.jp/m/at=
のサイトは見つけたのですが
そのほかに、日本語の文字列で値を渡せるサイトは
ありますでしょうか?

マピオンも試してみたのですが
うまくいきませんでした。

よろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2009/09/02 23:48:49
  • 終了:2009/09/08 00:43:00

ベストアンサー

id:ardarim No.3

ardarim回答回数897ベストアンサー獲得回数1452009/09/08 00:15:35

ポイント56pt

失礼しました。

例題に合わせると、url= の部分を

Private Sub 住所_DblClick(Cancel As Integer)
    Const nu As String = vbNull
    Dim ret As Long
    Dim url As String
    url = BuildQueryString(Me!住所)
    ret = ShellExecute(0, "open", url, nu, nu, 0)
End Sub

としてください。

後は同じです。


※コメント欄を開放しておくとフォローができますので便利ですよ。

id:dreamworks

回答ありがとうございました!

無事できました!

早速明日、会社のDBに組み込みたいと思います。

この度は本当にありがとうございました。

2009/09/08 00:39:43

その他の回答(2件)

id:goog20090901 No.1

goog20090901回答回数637ベストアンサー獲得回数172009/09/03 05:33:26

ポイント30pt

はずしてたらごめんなさい。

住所なのですが、エンコードはされてるでしょうか?

IEの場合、エンコードしなくても動作するのですが、エンコードしてないと

正しく値がわたらないことがあります。

標準のブラウザをIEからFireFoxとかに代えて検証されてはどうでしょうか?

id:dreamworks

回答ありがとうございます。

エンコードはしていませんでした。

UrlEncodeというモジュールがあるみたいですね。

ブラウザについてですが、会社のPCで

あるため、勝手にソフトインストールできません。

今はIE6で試しています。

あと

http://www.geocoding.jp/

見つけました。

2009/09/04 00:12:31
id:ardarim No.2

ardarim回答回数897ベストアンサー獲得回数1452009/09/06 20:41:37

ポイント40pt

エンコーディングを適切に指定してやれば問題ないはずです。

以下、シフトJISで送信するサンプルです。

Sub test()

    Dim url As String
    
    url = BuildQueryString("東京都渋谷区渋谷")
    ret = ShellExecute(0, "open", url, nu, nu, 0)

End Sub

Function BuildQueryString(ByVal queryWord As String) As String

    Dim i As Long
    Dim c As String
    Dim queryUrl As String
    
    queryUrl = "http://local.google.com/maps?hl=ja&f=l&safe=off&pws=0&output=html&ie=Shift_JIS&"
    queryUrl = queryUrl & "q="
    For i = 1 To Len(queryWord)
        c = Mid$(queryWord, i, 1)
        If Asc(c) >= 32 And Asc(c) < 128 Then
            queryUrl = queryUrl & c
        Else
            c = StrConv(c, vbFromUnicode)
            queryUrl = queryUrl & "%" & Right$("0" & Hex$(AscB(LeftB$(c, 1))), 2) & "%" & Right$("0" & Hex$(AscB(RightB$(c, 1))), 2)
        End If
    Next i

    BuildQueryString = queryUrl

End Function
id:dreamworks

回答ありがとうございます。

早速試してみたいと思います。

すみません、今ダミーデータで試してみたのですが

シフトJISでうまくいきましたが

レコードごとに変わる住所を適用するには

Sub test()

Dim url As String

url = BuildQueryString("東京都渋谷区渋谷")

ret = ShellExecute(0, "open", url, nu, nu, 0)

End Sub

の部分の東京都渋谷区渋谷をどうすれば良いのでしょうか?

よろしくお願いします。

2009/09/07 22:06:01
id:ardarim No.3

ardarim回答回数897ベストアンサー獲得回数1452009/09/08 00:15:35ここでベストアンサー

ポイント56pt

失礼しました。

例題に合わせると、url= の部分を

Private Sub 住所_DblClick(Cancel As Integer)
    Const nu As String = vbNull
    Dim ret As Long
    Dim url As String
    url = BuildQueryString(Me!住所)
    ret = ShellExecute(0, "open", url, nu, nu, 0)
End Sub

としてください。

後は同じです。


※コメント欄を開放しておくとフォローができますので便利ですよ。

id:dreamworks

回答ありがとうございました!

無事できました!

早速明日、会社のDBに組み込みたいと思います。

この度は本当にありがとうございました。

2009/09/08 00:39:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません