Καλημέρα!
Κώστα, ο κώδικας όπως εμφανίζεται στο μήνυμα σου δεν μπορεί να λειτουργήσει (ούτε τώρα αλλά ούτε και παλαιότερα) επειδή περιέχει ελληνικούς χαρακτήρες όπως "ς" και "σπι" σε σημεία που δεν πρέπει.
Μάλλον κάποιον άλλο κώδικα χρησιμοποιείς που δεν περιέχει τα προαναφερόμενα σφάλματα.
Τα ερωτηματικά στην αναζήτηση εμφανίζονται μόνο σε παλαιότερες εκδόσεις του Internet Explorer.
Στη νεότερη έκδοση του όπως και σε άλλους περιηγητές όπως Firefox και Chrome δεν υπάρχει αυτό το πρόβλημα.
η μέθοδος FollowHyperlink ανοίγει έναν σύνδεσμο με το προεπιλεγμένο πρόγραμμα περιήγησης του Internet.
Μάλλον λοιπόν το προεπιλεγμένο πρόγραμα περιήγησης στον υπολογιστή σου είναι Internet Explorer (έκδοση<=10) το οποίο δεν αποκωδικοποιεί τους χαρακτήρες Unicode ενός συνδέσμου με αποτέλεσμα να εμφανίζει ερωτηματικά.
Το γεγονός ότι ο κώδικας σου έτρεχε παλαιότερα οφείλεται σίγουρα στο τότε προεπιλεγμένο πρόγραμμα περιήγησης που υποστήριζε τη αποκωδικοποίηση χαρακτήρων Unicode.
Ο κώδικας σου θα τρέξει όταν:
1. Δεν υπάρχουν ελληνικοί χαρακτήρες στο κείμενο αναζήτησης
2. Το προεπιλεγμένο πρόγραμμα περιήγησης του Internet είναι Internet Explorer (έκδοση>=11)
ή άλλο πρόγραμμα όπως ο Firefox ή ο Chrome.
Δοκίμασε:
Κώδικας:
Private Sub cmdTest_Click()
Dim MapSearch As String
Dim strAddress As String
strAddress = Nz(Me!ΟΔΟΣ, "") & "," & Nz(Me!ΚΩΔ_ΠΕΡ, "") & "," & Nz(Me!ΤΑΧ_ΚΩΔΙΚΟΣ, "")
MapSearch = "http://maps.google.com/maps?hl=el&q=" & strAddress
Application.FollowHyperlink MapSearch
End Sub
Αν η επιλογή σου είναι ο Ιnternet Explorer (έκδοση<=10) τότε:
Κώδικας:
Private Sub cmdTest_Click()
Dim MapSearch As String
Dim strAddress As String
strAddress = EncodeURL(Nz(Me!ΟΔΟΣ, "") & "," & Nz(Me!ΚΩΔ_ΠΕΡ, "") & "," & Nz(Me!ΤΑΧ_ΚΩΔΙΚΟΣ, ""))
MapSearch = "http://maps.google.com/maps?hl=el&q=" & strAddress
Application.FollowHyperlink MapSearch
End Sub
Private Function EncodeURL(strURL As String) As String
' η ρουτίνα αυτή σε παρόμοιες μορφές χρησιμοποιείται ευρέως για
' αποκωδικοποίηση χαρακτήρων Unicode ( Percent encoding).
Dim strTemp As String
Dim i As Integer
i = 1
Do Until i - 1 = Len(strURL)
Select Case Asc(Mid(strURL, i, 1))
Case 48 To 57, 65 To 90, 97 To 122
strTemp = strTemp & Mid(strURL, i, 1)
Case 32
strTemp = strTemp & "%" & Hex(32)
Case Else
strTemp = strTemp & "%" & Format(Hex(Asc(Mid(strURL, i, 1))), "00")
End Select
i = i + 1
Loop
EncodeURL = strTemp
End Function
Τάσος