ich rufe die folgende Procedure auf und erhalte bei der ersten MsgBox die korrekten Werte angezeigt.
bei der 2. MsgBox ist die Anzeige leer und dem entsprechend wird "Keine GPS-Daten..." signalisiert obwohl die Daten in der Tabelle vorhanden sind.
Was ist hier los?
Private Sub btnGPS_Click()
MsgBox "1 " & [Lat] & " " & [Lon]
'Exit Sub
If fncGetShift = 1 Then '<Shift> Google
mGPS = IIf(Lat <> "", Lat & "/" & Lon, "")
mPrg = DLookup("[KText]", "StblKonfig", "key = 37") 'Programm Google Earth
Call Shell(mBrowser & " http://maps.google.com/?q=" + mGPS, 1)
ElseIf fncGetShift = 2 Then '<Strg> Bild OSM
Call fncGPSBild
Call Shell(mBrowser & " http://www.openstreetmap.org/?mlat=" & mGPSLat & "&mlon=" & mGPSLon & _
"#map=" & Me!fldGPSZoom & "/" & mGPSLat & "/" & mGPSLon, 1)
ElseIf fncGetShift = 4 Then '<Alt> Bild Google
mGPS = IIf([Lat] <> "", [Lat] & "/" & [Lon], "")
mPrg = DLookup("[KText]", "StblKonfig", "key = 37") 'Programm Google Earth
'Call Shell(mPrg & " " & mGPS, 1)
Call Shell(mBrowser & " http://maps.google.com/?q=" + mGPS, 1)
Else 'OSM
' DoCmd.OpenQuery "frmgeoadrfilter"
MsgBox "2 " & [Lat] & " " & [Lon]
If [Lat] = "" Then MsgBox "Keine GPS Daten": Exit Sub
mGPS = [Lat] & "/" & [Lon]
Call Shell(mBrowser & " http://www.openstreetmap.org/?mlat=" & [Lat] & "&mlon=" & [Lon] & _
"#map=" & Me!fldGPSZoom & "/" & mGPS, 1)
End If
End Sub
Hallo,
was für Felder sind denn [Lat] und [Lon] überhaupt?
Wenn das Form-Textfelder sind, dann gewöhne Dir doch an, "Me!" davor zu setzen: Me!Lat oder auch Me![Lat]
und bleibe dabei konsequent in der Benamsung. (Einmal nutzt Du Eckklammern, anders Mal nicht)
Bei den "mXXX" Variablen tippe ich auf global deklarierte Variablen...
Am Besten durchläufst Du den Code mit Einzelschritt und prüfst, ob nicht eine Function oder Sub den Inhalt der Textfelder ändert. Ich tippe da auf "Call fncGPSBild". Auch "fncGetShift" könnte in Frage kommen.
Lat und Lon sind Tabellenfelder mit GPS-Koordinaten
Die Funktion getShift ist 0, somit wird zwischen den beiden Mailboxen nichts ausgeführt
Hallo,
mhmm, ::) ja.... und die gibt es nicht auch im Formular als gebundene Textfelder?
Hast Du "Option Explicit" in jedem Modulkopf (auch in den Formular-Modulen) stehen?
Wenn nicht, hol das nach und kompiliere den Code im VBA-Editor.
ich habe biher "Option Explicit" nicht verwendet. jetzt habe ich das Modul damit ausgestattet und musste somit alle Variablen "Explicit" im Modulkopf deklarieren. Ich habe damit den Fehler beseitigt ohne zu verstehen, wo die vermutliche Kollision stattgefunden hat.
Also Erfolg ohne zu wissen wie und warum.
Aber Hauptsache es funtioniert.
Danke Franz
PS: ich suche immer noch den DANKE-Knopf