Änderung des Spaltennamens wird ignoriert

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Änderung des Spaltennamens wird ignoriert

Änderungen in Calc-Tabellen werden nicht aktualisiert

von juetho » Mo, 10.05.2010 11:02

Nein, das hat auch nichts gebracht. Inzwischen ist "Klasse 5" erfolgreich abgeschlossen; nach etwa fünf Tagen Wartezeit hat OOo die Änderungen anscheinend zur Kenntnis genommen.

Jetzt habe ich aber einen ganz anderen Fehler festgestellt, und das scheint auf ein grundsätzlicheres Problem hinzudeuten:

Änderungen in einer Calc-Tabelle werden vom Makro-Interpreter und vom Writer nicht zur Kenntnis genommen.

Das Calc-Dokument hat eine weitere Tabelle erhalten. In der Tabelle "Fachliste" habe ich weitere Zeilen eingefügt (per Copy&Paste und manueller Änderung). Aber der folgende Befehl wird nicht ausgeführt (genauer: er liefert 0 Datensätze).

Code: Alles auswählen

cmdString = "SELECT Kuerzel, Titel, Fachname, Lehrer, Teilnahmevermerk "  _
      & "FROM Fachliste WHERE Klasse = '" & klasse & "'"    'mit dem Inhalt 7 für die Variable klasse
Nach einigen Tests habe ich festgestellt:
* In der Calc-Tabelle stehen bis Zeile 70 die Einträge von Klasse 6, dann folgt eine Leerzeile. In Zeile 72 bis 87 stehen die (neuen) Einträge von Klasse 7. Nach einer weiteren Leerzeile folgen die Einträge von Klasse 8.
* Wenn ich dagegen diese Tabelle in der Textvorlage über Ansicht >> Datenquellen >> Tabellen >> Fachliste anzeige, fehlen die Einträge von Klasse 7 (so wie es vor den Änderungen war).
* Weder "Alles aktualisieren" noch "Datenquelle austauschen" noch wiederholtes Schließen von Dokumenten und/oder Programm hat daran irgendetwas geändert.

Wie kann ich dem Makro-Interpreter beibringen, dass er die gültige Version der Tabelle und nicht eine veraltete Fassung benutzen soll? Gruß Jürgen

// Nachtrag 12:09 Uhr
Durch die Versuche steht jetzt ein- und dasselbe Calc-Dokument Klassenlisten.ods zweimal in der Liste der Datenquellen: Unter dem Namen "Klassenlisten" mit der falschen Anzeige und unter dem Namen "Klassenlisten1" mit der richtigen Anzeige. Also muss ich nur noch die Ansicht aufräumen und die richtige Datenquelle bereitstellen. Aber was das soll. :?

Re: Änderung des Spaltennamens wird ignoriert

von lorbass » Do, 06.05.2010 13:18

juetho hat geschrieben:

Code: Alles auswählen

SELECT Name, Vorname, Rufname FROM "Klasse 5" WHERE "Arge" = 'M'
Versuchs mal mit

Code: Alles auswählen

SELECT Name, Vorname, Rufname FROM "Klasse 5" WHERE Arge = 'M'
Gruß
lorbass

Re: Änderung des Spaltennamens wird ignoriert

von pmoegenb » Do, 06.05.2010 13:09

Hallo Jürgen,
ich gehe davon aus, dass es sich um eine Datenbank mit einem Tabellendokument als Datenquelle handelt. Hast Du schon einmal geprüft ob die geänderten Spaltennamen (1. Zeile einer Tabelle) im Datenbank-Explorer (F4) sichtbar sind ?

Re: Änderung des Spaltennamens wird ignoriert

von juetho » Do, 06.05.2010 12:42

Hallo Gert,
Gert Seler hat geschrieben: Ich gehe mal davon aus, das die Fehlermeldung aus dem geänderten Spaltennamen stammt. Eventuell ist der neue Namen Arge noch nicht im "Basic-Modul" (im Basic-Text) integriert...
Nein, die Werte kommen nicht aus dem Basic-Code, sondern aus der Tabelle 'Fachliste'.

Im Basic-Code wird zuerst die Liste der Fächer und Fachlehrer von Klasse 5 geholt (Variable klasse = '5'):

Code: Alles auswählen

cmdString = "SELECT Kuerzel, Titel, Fachname, Lehrer, Teilnahmevermerk "  _
		& "FROM Fachliste WHERE Klasse = '" & klasse & "'" 
result = cmd.executeQuery(cmdString)
while result.Next()
	Fachliste_Erstellen(	 conn,	 			_
		klasse,		    result.getString(1), 	_
		result.getString(2), result.getString(3), 	_
		result.getString(4), result.getString(5) )
wend
Damit wird jedes Fach einzeln bearbeitet; die Variable titel enthält immer wieder den falschen Wert 'Arge':

Code: Alles auswählen

Sub Fachliste_Erstellen( ByVal conn As Connection,		_
		ByVal klasse As String,	ByVal kuerzel As String,	_
		ByVal titel As String,	ByVal fach As String,		_
		ByVal lehrer As String,	ByVal vermerk As String )
' und etwas später unter Verwendung der Variablen:
cmd = conn.CreateStatement()
cmdString = "SELECT Name, Vorname, Rufname " & chr(13) _
		& "FROM " & CHR(34) & "Klasse " & klasse & CHR(34) & chr(13) _
		& "WHERE " & CHR(34) & titel & CHR(34) & " = '" & kuerzel & "'"
Der SELECT-Befehl aus dem ersten Beitrag wird an dieser Stelle erstellt und ist korrekt. Mehrere testweise eingeschobene MsgBoxen zeigen Übereinstimmung der Feldinhalte im Makro-Ablauf und der Feldinhalte in den beteiligten Tabellen; auch Änderung der Bezeichnung ('Arge', 'Arbeitsgem.', 'AG') ändert nichts. Immer wieder einmal wird der Wert 'Arge' benutzt und nicht als Spaltenname erkannt; oder dieser Wert wird als titel übergeben, obwohl er nicht mehr gespeichert ist. Außerdem:
juetho hat geschrieben:/Nachtrag
Bei anderen Tabellen, bei denen ich gleiche Änderungen vorgenommen hatte, funktionierte es vorher und nachher, nur bei dieser Tabelle nicht.
Deshalb gehe ich davon aus, dass es sich um irgendeine versteckte Eigenschaft dieser einen Tabelle (genauer: dieses Arbeitsblatts) handelt. Deshalb habe ich mich für das Calc-Forum entschieden.

Ich habe bald keine Ideen mehr. Dieses eine Fach kann ich notfalls manuell bearbeiten; aber wer weiß, ob und wie das Problem nochmals auftritt. Danke jedenfalls für die Unterstützung! Jürgen

Re: Änderung des Spaltennamens wird ignoriert

von Gert Seler » Do, 06.05.2010 10:33

Hallo Jürgen,
Du solltest einmal die "Basic-Module" durchforsten, ob die Eingangs erwähnten Änderungen der Spaltennamen auch dort zu finden sind.
Ich gehe mal davon aus, das die Fehlermeldung aus dem geänderten Spaltennamen stammt. Eventuell ist der neue Namen Arge
noch nicht im "Basic-Modul" (im Basic-Text) integriert.
Da solltest Du doch einmal den "Basic-Text" im "Basic-Forum" hochladen und evtl korrigieren lassen.
In einem Tabellen-Dokument dessen Steuerung durch BasicModule erfolgt, sollten Änderungen ausgetestet werden.
Eine Einarbeitung in das "Ooo-Basic-Syntax" sollte angestrebt werden, da hier ( teilweise ) ein großer Unterschied zum "VBA_Code" besteht.

Des weiteren handelt es sich doch um reine "SQL-Abfragen" was wiederum aus einer "Datenbank" stammt.

mfg
Gert

Re: Push: Änderung des Spaltennamens wird ignoriert

von juetho » Do, 06.05.2010 09:54

lorbass hat geschrieben:
juetho hat geschrieben:Der SQL-Befehl lautet:
Vielleicht solltest du es nicht bei dieser Ankündigung belassen und mal Butter bei de Fische tun...
Oops. Korrigiert im ersten Beitrag.
Und eventuell hilft es auch, dein Anliegen (zusätzlich) im Forum OOo Base / SQL zu posten.
Von anderen Foren bin ich es gewöhnt, dass solche Doppel-Posts unerwünscht sind. Hier müsste es sogar ein Dreifach-Post sein, nämlich auch noch Basic. Darf ich das hier machen?

Jürgen

Re: Push: Änderung des Spaltennamens wird ignoriert

von lorbass » Mi, 05.05.2010 21:01

juetho hat geschrieben:Darf ich nach über 24 Stunden nochmal nachhaken?
Na klar. Offenbar hatte bis dato keiner der Leser eine Lösungsidee.
juetho hat geschrieben:Der SQL-Befehl lautet:
Vielleicht solltest du es nicht bei dieser Ankündigung belassen und mal Butter bei de Fische tun...

Und eventuell hilft es auch, dein Anliegen (zusätzlich) im Forum OOo Base / SQL zu posten.

Gruß
lorbass

Push: Änderung des Spaltennamens wird ignoriert

von juetho » Mi, 05.05.2010 16:36

Darf ich nach über 24 Stunden nochmal nachhaken? Das Problem besteht weiterhin - trotz wiederholtem Neustart. Jürgen

Änderung des Spaltennamens wird ignoriert

von juetho » Di, 04.05.2010 11:00

Hallo,

ich habe eine Calc-Tabelle mit 14 Arbeitsblättern. Die Tabelle "Klasse 5" habe ich per Copy&Paste aus einem Word-Dokument (einer Texttabelle) übernommen und geändert:
  • Es wurde eine neue Spalte 3 eingefügt; die Werte wurden durch Copy&Paste aus Spalte 2 kopiert.
  • Zwei Spaltennamen in Zeile 1 wurden geändert.
  • Die alte Zeile 2 wurde gelöscht.
  • Die Tabelle wurde gespeichert und geschlossen.
Die Werte werden per Makro und SQL-Befehl aus der Tabelle in mehrere Writer-Dokumente eingefügt. Das klappt weitgehend, aber einer der geänderten Spaltennamen wird nicht erkannt (die andere Namensänderung macht keine Probleme):
  • Die letzte Spalte hieß vorher "Arbeitsgem." und wurde in "Arge" geändert.
  • Der SQL-Befehl lautet:

    Code: Alles auswählen

    SELECT Name, Vorname, Rufname FROM "Klasse 5" WHERE "Arge" = 'M'
  • Das liefert eine Fehlermeldung:
    Basic-Laufzeitfehler (SQLException) Der Spaltenname 'Arge' ist ungültig.
Wenn ich mit einem anderen Makro die Spaltennamen abfrage, wird die letzte Spalte immer noch mit dem Namen "Arbeitsgem." angezeigt.

Selbst "Speichern unter" sowie Beenden und Neustart von OOo ändern nichts. Wie kann ich dem Programm beibringen, dass der geänderte Spaltenname zu verwenden ist? Jürgen

/Nachtrag
Bei anderen Tabellen, bei denen ich gleiche Änderungen vorgenommen hatte, funktionierte es vorher und nachher, nur bei dieser Tabelle nicht.

Nach oben