Hallo zusammen,
ich habe das Problem, das ich mit Hilfe von ArcView 3.2a in eine Access 97 Datenbank Koordinaten schreiben möchte. Leider funktioniert das nicht.
Es kommt immer die Fehlermeldung
[Microsoft][ODBC Microsoft Access Driver] Datentypen in Kriterienausdruck unverträglich
Ich habe die Access Datenbank via SQL in ArcView geladen und daraus ein Ereignisthema gemacht. Wenn ich nun das Script über einen erzeugten Button laufen lasse, kann ich zwar noch die Container ID eingeben, aber dann kommt schon die Fehlermeldung.
Hier mein Script:
'Diese Funktion speichert die Koordinaten zu einem gewählten Punkt und
'speichert diese in einer Datenbank
theView = av.GetActiveDoc
'speichern des MausKlicks
pt = theView.GetDisplay.ReturnUserPoint
'speichern der Koordinaten x und y in einer Variablen
x = pt.GetX
y = pt.GetY
'Formatierung der gespeicherten Werte
x = x.setformat("d").asstring
y = y.setformat("d").asstring
'Abfrage der Schlüsselnummer für die richtige Zuordnung der Koordinaten
p = MsgBox.input("Bitte vergeben sie eine Schlüsselnummer","Container_ID","")
if (p= nil) then
MsgBox.error ("Sie müssen eine Schlüsselnummer vergeben!","Fehler")
exit
end
'Zusammenstellen des SQL-String für das Einlesen der Koordinaten in die Datenbank
sqlString = "UPDATE Container SET XWERT = '"+x+"' , YWERT = '"+y+"' WHERE ID = '"+p+"';"
'Verbindung zur Datenbank herstellen und einlesen der Koordinaten
SQLCon.Find("Container").ExecuteSQL(sqlString)
'Aktualisieren der Tabelle und darstellen des neu eingefügten Punktes
av.FindDoc("Container").GetVTab.Refresh
In der Datenbank ist die Spalte xWert und yWert ein Zahlenfeld, die Spalte ID ein Autowert.
Liegt dort vielleicht das Problem??
Ich habe schon die Spalten mit den Koordinaten in Textfelder geändert, aber das hat nichts gebracht. Die Spalte ID kann ich nicht ändern.
Hat vielleicht jemand einen Tip ?
Vielen Dank
Gruß
Andreas
ich habe das Problem, das ich mit Hilfe von ArcView 3.2a in eine Access 97 Datenbank Koordinaten schreiben möchte. Leider funktioniert das nicht.
Es kommt immer die Fehlermeldung
[Microsoft][ODBC Microsoft Access Driver] Datentypen in Kriterienausdruck unverträglich
Ich habe die Access Datenbank via SQL in ArcView geladen und daraus ein Ereignisthema gemacht. Wenn ich nun das Script über einen erzeugten Button laufen lasse, kann ich zwar noch die Container ID eingeben, aber dann kommt schon die Fehlermeldung.
Hier mein Script:
'Diese Funktion speichert die Koordinaten zu einem gewählten Punkt und
'speichert diese in einer Datenbank
theView = av.GetActiveDoc
'speichern des MausKlicks
pt = theView.GetDisplay.ReturnUserPoint
'speichern der Koordinaten x und y in einer Variablen
x = pt.GetX
y = pt.GetY
'Formatierung der gespeicherten Werte
x = x.setformat("d").asstring
y = y.setformat("d").asstring
'Abfrage der Schlüsselnummer für die richtige Zuordnung der Koordinaten
p = MsgBox.input("Bitte vergeben sie eine Schlüsselnummer","Container_ID","")
if (p= nil) then
MsgBox.error ("Sie müssen eine Schlüsselnummer vergeben!","Fehler")
exit
end
'Zusammenstellen des SQL-String für das Einlesen der Koordinaten in die Datenbank
sqlString = "UPDATE Container SET XWERT = '"+x+"' , YWERT = '"+y+"' WHERE ID = '"+p+"';"
'Verbindung zur Datenbank herstellen und einlesen der Koordinaten
SQLCon.Find("Container").ExecuteSQL(sqlString)
'Aktualisieren der Tabelle und darstellen des neu eingefügten Punktes
av.FindDoc("Container").GetVTab.Refresh
In der Datenbank ist die Spalte xWert und yWert ein Zahlenfeld, die Spalte ID ein Autowert.
Liegt dort vielleicht das Problem??
Ich habe schon die Spalten mit den Koordinaten in Textfelder geändert, aber das hat nichts gebracht. Die Spalte ID kann ich nicht ändern.
Hat vielleicht jemand einen Tip ?
Vielen Dank
Gruß
Andreas
- Anmelden oder Registieren, um Kommentare verfassen zu können
Gespeichert von Maxilla am Do., 27.09.2007 - 11:44
PermalinkSET XWERT = '"+x+"' , YWERT = '"+y+"' WHERE ID = '"+p+"';"
Hast du mal versucht, was ohne Hochkomma passiert?
Gespeichert von Andreas Wolf am Do., 27.09.2007 - 13:21
PermalinkDeine Antwort war mal wieder goldrichtig. Jetzt schreibt er die Koordinaten
in die Tabelle und auch die Tabelle im Projekt enthält die Koordinaten.
Nur der Punkt wird nicht angezeigt. Läuft etwas schief bei der Aktualisierung? hast du da auch noch einen Tip?
Gruß
Andreas
Gespeichert von Andreas Wolf am Do., 27.09.2007 - 13:27
Permalinkstehen, welche Grundlage des Ereignisthemas sind.
Gibt es dafür einen Grund?
Gespeichert von Maxilla am Do., 27.09.2007 - 16:54
PermalinktheView = av.GetActiveDoc
'speichern des MausKlicks
pt = theView.GetDisplay.ReturnUserPoint
'speichern der Koordinaten x und y in einer Variablen
x = pt.GetX
y = pt.GetY
'Formatierung der gespeicherten Werte
x = x.setformat("d").asstring
y = y.setformat("d").asstring
'Abfrage der Schlüsselnummer für die richtige Zuordnung der Koordinaten
p = MsgBox.input("Bitte vergeben sie eine Schlüsselnummer","Container_ID","")
if (p= nil) then
MsgBox.error ("Sie müssen eine Schlüsselnummer vergeben!","Fehler")
exit
end
av.FindDoc("Container").GetVTab.SetEditable (TRUE)
'Zusammenstellen des SQL-String für das Einlesen der Koordinaten in die Datenbank
sqlString = "UPDATE Container SET XWERT = '"+x+"' , YWERT = '"+y+"' WHERE ID = '"+p+"';"
'Verbindung zur Datenbank herstellen und einlesen der Koordinaten
SQLCon.Find("Container").ExecuteSQL(sqlString)
'Aktualisieren der Tabelle und darstellen des neu eingefügten Punktes
av.FindDoc("Container").GetVTab.SetEditable (FALSE)
av.FindDoc("Container").GetVTab.Refresh
theView.FindTheme("Container").GetFTab.Refresh
Gespeichert von Andreas Wolf am Fr., 28.09.2007 - 08:44
PermalinkEs klappt einwandfrei! Vielen Dank das erleichtert die Sache schon ungemein.
Gruß und schönes Wochenende
Andreas