robert-engel
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
Hallo Ubuntuuser, ich habe eine Base-Datenbank angelegt, mit der Übungen im Abfragen vorgenommen werden sollen. Dabei ist das Abfrageergebnis immer dann leer, wenn man ein Kriterium bei einem Feldtypen mit dem Datentyp Text einträgt. Was mache ich falsch? Ein funktionierendes Beispiel findet sich im Anhang. So bald ich z.B. bei Name in der Tabelle Bundesland z.B. Berlin eintrage, ist das Ergebnis leer. Besten Dank, Robert.
- Bilder
|
hakel2020
Anmeldungsdatum: 21. Januar 2021
Beiträge: Zähle...
|
Base hat eine SQL Ansicht. Da könntest du einfach deine Abfrage kopieren und hier veröffentlichen. Eine "nicht funktionierende" wäre ja ganz sinnvoll. 😎 Base hat eine etwas schräge Syntax, wenn ich mich erinnere. 'Berlin' oder "Berlin" z.B. Base muß auch nicht unbedingt funktionieren ...
|
sh4711
Anmeldungsdatum: 13. Februar 2011
Beiträge: 922
|
robert-engel schrieb: ... Feldtypen mit dem Datentyp Text einträgt. Was mache ich falsch?
Welchen? Es gibt mehrere Text Datentypen z.B.:
Text (fix) Char Text VarChar
...
Ein funktionierendes Beispiel findet sich im Anhang. So bald ich z.B. bei Name in der Tabelle Bundesland z.B. Berlin eintrage, ist das Ergebnis leer.
Die Ursachen können leider sehr vielfältig sein. Sie können in der Tabellen-Struktur, in den Daten oder in der Abfrage liegen. Beim letzteren wäre das SQL Statement wie bereits von hakel2020 beschrieben hilfreich. Das bekommt man in dem man die Abfrage bearbeitet und dann über das Menü Ansicht/Entwurfansicht ein/aus auswählt. Beim Testen hat es bei mir funktioniert. Mein SQL Statement lautet:
SELECT "Stadt"."Stadt", "Stadt"."Einwohnerzahl", "Bundesland"."Name" FROM "LiegtIn", "Stadt", "Bundesland" WHERE "LiegtIn"."Stadt" = "Stadt"."Stadt" AND "LiegtIn"."Kürzel" = "Bundesland"."Kürzel" AND "Bundesland"."Name" = 'Berlin' ORDER BY "Stadt"."Stadt" ASC Zur Fehlersuche kannst du mal die Abfrage vereinfachen und zunächst mit einer Tabelle, dann bei Erfolg mit der Zweiten und Dann mit der Dritten Tabelle testen. Vereinfachen heißt auch so wenig wie möglich Kriterien eingeben bzw. die Sortierung mal weglassen. Wie gesagt beim Testen hat es Funktioniert. Im Anhang habe ich dir meine Tabellen-Struktur, die Daten und die Abfrage hochgeladen.
Zu deinem Beispiel gehöhren die Anhänge _ohne_ID. Die Anhänge _mit_ID wurden hochgeladen, da das eine Empfehlung wäre wie man die Tabellen besser aufbauen kann.
- Bilder
|
robert-engel
(Themenstarter)
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
Hallo zusammen, die Abfrage sieht bei mir in SQL genauso aus ... | SELECT "Stadt"."Stadt", "Stadt"."Einwohnerzahl", "Bundesland"."Name" FROM "LiegtIn", "Stadt", "Bundesland" WHERE "LiegtIn"."Stadt" = "Stadt"."Stadt" AND "LiegtIn"."Kürzel" = "Bundesland"."Kürzel" AND "Stadt"."Einwohnerzahl" > 1000000 AND "Bundesland"."Name" = 'Berlin' ORDER BY "Stadt"."Stadt" ASC
|
Trotzdem ist die Ergebnistabelle leer (siehe Bild im Anhang). Die Version ist 6.4.7. Es handelt sich im Übrigen um Text VarChar. Ich habe aber auch die beiden anderen Sorten (mit dem gleichen Ergebnis) ausprobiert. Ich habe die Datenbank bewusst so aufgebaut, damit ich daran Vorteile von Normalisierung und künstlichen Primärschlüsseln behandeln kann. Gruß, Robert.
- Bilder
|
robert-engel
(Themenstarter)
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
Okay, es liegt offenbar daran, dass ich die Tabellendaten aus einem Textdokument importiert habe, immerhin 691 Städte. Ich bin dabei so vorgegangen, wie ich es im Netz gefunden habe. Tabellen im Textdokument markieren und kopieren, dann in Base einen Rechtsklick im Tabellenbereich und einfügen. Es wird gefragt, wie die Tabelle heißen soll. Anschließend kann man Datentypen ändern und die Tabellen verknüpfen. Ich habe eben die Tabellen normal angelegt und 2 Städte sowie 2 Bundesländer eingetragen. Dann funktionieren die Abfragen. Ich wollte aber eben nicht alle 691 Städte nebst EWZ und Kürzel von Hand eintragen. Leider fnktioniert das normale Einfügen von Daten in eine bereits existierende Datenbanktabelle in Base nicht. Mist. Trotzdem Danke, Robert.
|
robert-engel
(Themenstarter)
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
Also, beim Einfügen wurde offenbar vor jedem Texteintrag ein Leerzeichen gesetzt. So dumm kann man gar nicht denken, oder? Ich muss nun nur noch 2100 Leerzeichen entfernen, dann geht's. Gruß, Robert. Fertig.
|
sh4711
Anmeldungsdatum: 13. Februar 2011
Beiträge: 922
|
robert-engel schrieb: ... beim Einfügen wurde offenbar vor jedem Texteintrag ein Leerzeichen gesetzt. So dumm kann man gar nicht denken, oder? Ich muss nun nur noch 2100 Leerzeichen entfernen, dann geht's.
Das hört sich an als ob du das von Hand machst ... musst du nicht.
In der Regel kannst du die Vorarbeit in Calc machen. Hier gibts tolle Funktionen. D.h. Datenimport nach calc und wenn alles passt das Calc-Sheet in eine neue DB einbinden. Und von hier gehts via copy&paste in eine beliebige andere BaseDatenbanktabelle. Wichtig in Calc musst du die Tabellenüberschriften schon vorhalten siehe Anhang.
- calc_daten_nach_base.zip (251.7 KiB)
- Download calc_daten_nach_base.zip
|
robert-engel
(Themenstarter)
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
Hallo sh4711, ich habe die Daten aus Access exportiert, zum einen als xls-Datei, zum anderen als rtf-Datei. Die xls-Dateien hat LibreOffice als defekt angegeben, ich konnte sie nicht importieren. Konnte ja keiner ahnen, dass das Einfügen der Tabellen in Base dieses Problem hervorbringt. Das Einfügen hat pro Tabelle 30 s gedauert. Ich denke, das Verfahren ist so ähnlich wie das von dir beschriebene, nur ohne Assistent. https://help.libreoffice.org/3.3/Common/Importing_and_Exporting_Data_in_Base/de Gruß, Robert.
|
hakel2020
Anmeldungsdatum: 21. Januar 2021
Beiträge: 1169
|
Viele Wege führen nach Rom. Daß beim Hin-/Herschaukeln Probleme entstehen, ist völlig "normal". xls und rtf ist nun mal Teufelswerk von MS! Die Kunst diese Probleme zu meiden,ist dein know-how. Da muß jeder mal durch ... ☹ Bei so einfachen Krempel wie in deinem Fall, kann man einfach csv nutzen. Vielleicht helfen dir auch Anfügeabfragen.
Access
Anstatt mit Base würde ich dir eine VM empfehlen und bei Access bleiben, solange es diese schöne bunte Oberfläche noch gibt. BASE ist ein totes Pferd.
|
sh4711
Anmeldungsdatum: 13. Februar 2011
Beiträge: 922
|
hakel2020 schrieb: ...
Anstatt mit Base würde ich dir eine VM empfehlen und bei Access bleiben, solange es diese schöne bunte Oberfläche noch gibt. BASE ist ein totes Pferd.
Welche FLOSS-Alternative, welche kein totes Pferd ist, gibt es denn zu Base wenn man mit einer Tabellenkalkulation auf Datenbanken zugreifen möchte?
|
hakel2020
Anmeldungsdatum: 21. Januar 2021
Beiträge: 1169
|
Übungen im Abfragen vorgenommen werden sollen.
Gegenfrage, nenn' mir eine "bequeme" Alternativ Lösung für Access ... ☹ . Wieviel Zeit hat der TS jetzt mit so einem "Quatsch" vergeudet? Hier geht es ja um "Übungen". Access ist wie ein paar alter Schuhe.
|
sh4711
Anmeldungsdatum: 13. Februar 2011
Beiträge: 922
|
hakel2020 schrieb: Übungen im Abfragen vorgenommen werden sollen.
Gegenfrage, nenn' mir eine "bequeme" Alternativ Lösung für Access ... ☹ . Wieviel Zeit hat der TS jetzt mit so einem "Quatsch" vergeudet?
D.h. Office-FLOSS ist ein totes Pferd wenn es darum geht Linux + Tabellenkalkulation + Zugriff auf SQL Datenbank. ...
Access ist wie ein paar alter Schuhe.
Ausgetreten und mir tun die Füße weh wenn ich zu lange damit laufe. 😛 Meine Frage war ernstgemeint, wenn du eine bessere Alternative kennst Linux + Tabellenkalkulation + Zugriff auf SQL Datenbank dann bin ich da sehr interessiert.
|
hakel2020
Anmeldungsdatum: 21. Januar 2021
Beiträge: 1169
|
D.h. Office-FLOSS ist ein totes Pferd
Libre ist ziemlich alternativlos meiner Meinung nach, und/aber die einzelnen Module haben doch recht unterschiedliche Wertigkeiten. Base sehe ich ganz kritisch, das würde ich maximal für Serienbriefe etc. nutzen! Der TS sollte sich dieser Tatsache bewußt sein.
mir tun die Füße weh wenn ich zu lange damit laufe.
Access soll/wird deshalb ja auch irgendwann verschwinden. ☹ P.S. diese Diskussion ist aber im Grunde schon seit vielen Jahre vorbei.
|
robert-engel
(Themenstarter)
Anmeldungsdatum: 30. Oktober 2015
Beiträge: 1972
|
Hallo, ich habe nun eine weit umfangreichere Datenbank über unser Sonnensystem (Planeten, Monde, Missionen usw.) konvertiert. Dazu habe ich die Tabellen von Access nach xls exportieren lassen (zuvor war es xlsx). Das konnte Calc korrekt anzeigen. Der Import hat dann auch ohne Leerzeicheneinfügung durch Base funktioniert. Lediglich das Datumsformat ist inkompatibel. csv hat Access nicht als Exportformat angeboten, sonst hätte ich es genommen. Zweck der Konvertierung ist es, den Schülern daheim das Üben von Abfragen zu ermöglichen. In der Schule verwenden wir für Texte, Tabellenkalkulationen und Präsentationen LibreOffice (7.0.5). Einzig für die Datenbanken verwenden wir noch Access. Wenn die Schüler im Wechselunterricht daheim Abfragen üben sollen, dann kann ich nicht das Format mdb einsetzen, da dies Access voraussetzt. Dieses Programm ist aber nicht einmal bei jedem MS-Office-Paket dabei. Zudem müssten die Schüler bzw. deren Eltern Geld dafür ausgeben. Wenn ich hingegen ein freies Format wähle, können alle Schüler üben, die einen PC zu Hause haben. In Klassenstufe 9 ist dies bei 100% meiner Schüler der Fall. Base ist aber das hässlichste aller LibreOffice-Programme. Da wird wohl wirklich nicht mehr viel weiter entwickelt. Softmaker Office oder OnlyOffice haben keine Datenbank im Paket. Da fällt mir keine Alternative ein. Wir arbeiten in unserer Schule und Online beinahe ausschließlich mit freien Anwendungsprogrammen und Diensten, damit die Schüler diese zu Hause auch nutzen können. Gruß, Robert.
|
hakel2020
Anmeldungsdatum: 21. Januar 2021
Beiträge: 1169
|
Da hast du natürlich völlig Recht, für "Schüler" reicht BASE völlig aus. Die sollen ja nur an das Prinzip herangeführt werden. (Tabelle, Abfrage, Formular, Bericht) Bei DB ist eine IDE natürlich sehr wichtig, aber nicht hier im Kontext. Access wäre da "blöd". mdb ist uralt, accdb ist "enVogue" (seit 14 Jahren! 🤣 ) Natürlich kannst du "problemlos" accdb einsetzen. Es hat doch sicher keiner deiner Schüler "Linux" im Einsatz. Access ist nur eine bunte Oberfläche die DB -Engine und Zugriffsobjekte- sind im Windows OS vergraben.
Base ist aber das hässlichste aller LibreOffice-Programme.
Darüber kann man diskutieren, eher ein Vergleich (gedit/MS-Word max.) Impress finde ich "häßlicher", weil wackelig. BASE kann einfach nicht viel. Egal, wenn man Windows hat, geht Libre/accdb sicher "problemlos" - an guten Tagen ohne große Ansprüche! 👍 P.S. Access bietet eine sehr schöne Runtime, da könnte man eine Spielkiste konstruieren und verteilen.
|