Hi Thomas,
[Steht das so da, sollte dein Code auch funktionieren] - TUT ES !!!!!
Danke, danke, danke
Base verwandelt alle SQL Befehle in Großbuchstaben + DB-Case-Sensitiv! - das erklärt alles.
Darum läuft der Zugriff auf
Bibliography - ist eine dBase-DB, der ist das dann egal, sprich
nicht Case-Sensitiv.
Das mit den Hochdings habe ich begriffen. Allerdings sieht das ziemlich verwirrend aus. Das Gleiche Problem kommt dann ja wohl auch bei komplexeren SQL-Anweisungen, wenn diese auch noch Spaltenbezeichnungen etc. enthalten. Die sind dann auch Case-Sensitiv ?!
z.B. "SELECT
Name, Type, Anzahl FROM
karten"
Ich habe das mal versucht und bin irgendwo kläglich an den
vielen """" gescheitert - entweder zu viel oder zu wenig oder an der falschen Stelle - Fehlermeldungen tummelten sich nur so.
Mir ist dabei eingefallen, dass ich vor Jahren mal Teilstrings in Variablen zusammenfügen musste und an bestimmten Stellen Hochkommas einzufügen waren - also ähnlich wie hier das Maskieren. Das habe ich damals mit chr(34) gelöst - und - das geht auch hier !!!
Also statt: "Select * from """ & sTabName & """"
nun: "Select * from " & chr(34) & sTabName & chr(34)
Etwas länger, aber ich finde besser lesbar und verständlicher.
Bei komplexen SQL-Anweisungen wird es natürlich noch länger,
z.B.:
sSQL = "SELECT " & chr(34) & "Name" & chr(34) & " , " & chr(34) & "Type" & chr(34) & " FROM " & chr(34) & sTabName & chr(34)
Ziemlich lang, aber lesbar und funzt !
Kommt noch eine Where-Klausel dazu, habe ich festgestellt, dass chr(34) nicht geht. In einem Script zu SQL habe ich gesehen, dass es dort Where Name = 'Müller' heißt. Also ein einfaches Hochkomma = chr(39).
Das geht auch hier:
Select ...... Where Name = 'Müller' ist dann:
Select ...... & " WHERE " & chr(34) & "Name" & chr(34) & " = " & chr(39) & "Müller" & chr(39)
Ich finde chr(34 / 39) lesbarer als diese """"-Orgie, aber das muss dann jeder für sich entscheiden.
Deine Hinweise waren sehr hilfreich und führten zu erheblichem Lerneffekt. Schade nur, dass kein Script über OOo-Base auf diesen wichtigen Punkt hinweist. (jedenfalls keines von denen, die ich bisher im www gefunden habe.)
Gruß
Ralf