Hallo zusammen,
ich möchte einen SQL-Befehl für eine Abfrage schreiben, welche etwa folgendermaßen aussehen soll:
SELECT Bez FROM Artikel AS A WHERE A.Art-Nr = "Eintrag eines Kombinationsfeldes eines Formulares"
Das Ergebniss dieser Abfrage soll wiederum Daten-Grundlage für ein neues Kombinationsfeld im Formular sein.
Wie muß ich vorgehen.
mfg
Stefan
SQL Abfrage
Moderator: Moderatoren
Hey Stefan,
na, im Grunde hast du doch schon alles geschrieben. Du kannst die SQL Sequenz der Methode executeQuery() als String übergeben, dann erhälst du die Ergebnisse. Die liest du in einenArray ein und übergibst es dem Formularfeld.
Auch hier schliesse ich meine Frage an:
Wieviel Ahnung hast du denn vom Programmierern? Wie hast du dein bisheriges Formular erzeugt und mit Leben erfüllt? Wie arbeitest du überhaupt?
Base hat eine einfache Struktur, die in den meisten Fällen ausreichend ist. Willst du mehr, geht das alles über die API - also direkte Programmierung zum Beispiel per Basic.
Also, ich nehme nicht an, dass du hier von jemanden eine fertige Lösung erwartest - andererseits lieferst du viel zu wenig Informationen, wie weit du schon bist.
Kurz: Per Mausklick und mit Drag&Drop ist das nicht zu realisieren. Über Programmierung jederzeit - bedarf aber entsprechender Vorkenntnisse und Vorarbeiten.
Gruss
Thomas
na, im Grunde hast du doch schon alles geschrieben. Du kannst die SQL Sequenz der Methode executeQuery() als String übergeben, dann erhälst du die Ergebnisse. Die liest du in einenArray ein und übergibst es dem Formularfeld.
Auch hier schliesse ich meine Frage an:
Wieviel Ahnung hast du denn vom Programmierern? Wie hast du dein bisheriges Formular erzeugt und mit Leben erfüllt? Wie arbeitest du überhaupt?
Base hat eine einfache Struktur, die in den meisten Fällen ausreichend ist. Willst du mehr, geht das alles über die API - also direkte Programmierung zum Beispiel per Basic.
Also, ich nehme nicht an, dass du hier von jemanden eine fertige Lösung erwartest - andererseits lieferst du viel zu wenig Informationen, wie weit du schon bist.
Kurz: Per Mausklick und mit Drag&Drop ist das nicht zu realisieren. Über Programmierung jederzeit - bedarf aber entsprechender Vorkenntnisse und Vorarbeiten.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Toxitom,
ich will erstmal auf Deine Frage antworten.
Vor OO habe ich mit SO52 gearbeitet. Bin ungern gewechselt, da ich die "alles in einem Desktop" Sache, wie bei Mozilla oder Opera, viiiel besser fand. Meißtens mit Calc, dort aber auch mit Macro-Programmierung, welche schon Umfangreich war (aus meiner Sicht), jedoch die Grundlage (der Beginn) nicht auf meinen Mißt gewachsen ist. Ich habe immer Probleme mit dem Beginn.
Ich verstehe einige Fragen der objektorientierten Programmierung, aber bei vielen Themen hier im Forum kann ich einfach nicht folgen.
z.B. hier: viewtopic.php?t=4711&highlight=abfrage
Ich glaube, daß es in etwa in die Richtung meines Problems geht.
Mir ist aber einfach nicht klar, woher und wie ich die Bedingung für WHERE bekomme.
Ich habe ein KOMBI-Feld, in dem eine Auswahl vorgegeben ist. Ich wähle einen Punkt aus. Was mache ich damit? Ich kann dieses Ergebnis in eine Daten-Tabelle schreiben lassen. Soweit OK. Wie Muß die Datentabelle aussehen, da es ja immer nur ein Eintrag sein wird?
Jetzt muß eine Abfrage geschrieben werden, eben wie oben. Jedoch weiß ich jetzt nicht, wie ich die Bedingung benennen soll.?
Diese Abfrage soll eine Auswahl für ein anderes KOMBI-Feld bedingen und somit eingrenzen.
Kann ich diese Abfrage nun gleich ins KOMBI-Feld schreiben oder muß ich erst eine OO-Base-Abfrage erstellen?
Ich verstehe Deine Antwort nicht.
Was meinst Du mit "SQL Sequenz"? Ist "executeQuery()" ein Befehlsteil des SQL-Befehles? Das lese ich in ein Array, heißt ich soll es an eine Variable übergeben?
Hoffe weiterhin auf Deine Hilfe.
Stefan
ich will erstmal auf Deine Frage antworten.
Vor OO habe ich mit SO52 gearbeitet. Bin ungern gewechselt, da ich die "alles in einem Desktop" Sache, wie bei Mozilla oder Opera, viiiel besser fand. Meißtens mit Calc, dort aber auch mit Macro-Programmierung, welche schon Umfangreich war (aus meiner Sicht), jedoch die Grundlage (der Beginn) nicht auf meinen Mißt gewachsen ist. Ich habe immer Probleme mit dem Beginn.
Ich verstehe einige Fragen der objektorientierten Programmierung, aber bei vielen Themen hier im Forum kann ich einfach nicht folgen.
z.B. hier: viewtopic.php?t=4711&highlight=abfrage
Ich glaube, daß es in etwa in die Richtung meines Problems geht.
Mir ist aber einfach nicht klar, woher und wie ich die Bedingung für WHERE bekomme.
Ich habe ein KOMBI-Feld, in dem eine Auswahl vorgegeben ist. Ich wähle einen Punkt aus. Was mache ich damit? Ich kann dieses Ergebnis in eine Daten-Tabelle schreiben lassen. Soweit OK. Wie Muß die Datentabelle aussehen, da es ja immer nur ein Eintrag sein wird?
Jetzt muß eine Abfrage geschrieben werden, eben wie oben. Jedoch weiß ich jetzt nicht, wie ich die Bedingung benennen soll.?
Diese Abfrage soll eine Auswahl für ein anderes KOMBI-Feld bedingen und somit eingrenzen.
Kann ich diese Abfrage nun gleich ins KOMBI-Feld schreiben oder muß ich erst eine OO-Base-Abfrage erstellen?
Ich verstehe Deine Antwort nicht.
Was meinst Du mit "SQL Sequenz"? Ist "executeQuery()" ein Befehlsteil des SQL-Befehles? Das lese ich in ein Array, heißt ich soll es an eine Variable übergeben?
Hoffe weiterhin auf Deine Hilfe.
Stefan
Hey Stefan,
viele Fragen, wenig Antworten...
OOo Base ist noch nicht so benutzerfreundlich, dass alles automatisch funktioniert. Per API - also zum Beispiel mit Basic - kannst du natürlich alles programmieren. Doch stück für stück:
Intern arbeitet auch Base mit SQL Befehlen. Damit kannst du alle Daten aus einer Datenbank herausholen. Dafür benötigst du zunächst eine Verbindung, diese Verbindung hast du nun als Objekt. Dieses Objekt versteht verschiedene Methoden, unter anderem die folgende: "executeQuery()"
oResultSet = oConnection.executeQuery("SELECT * FROM MeineTabelle WHERE ID = '4''")
Das Resultset-Objekt enthält nun das Ergebnis der SQL Abfrage - und kann entsprechend ausgewertet und weiterverarbeitet werden.
Deine Listbox im formular ist nun ein völlig andere Baustelle. Auch diese ist ein Objekt, deren Inhalt (also die einzelnen Eintäge) als Array (also eine Liste) übergeben werden. Diese Liste muss ich natürlich vorher aufbauen.
Und so, wie ich eine Liste übergenen kann, kann ich auch auslesen, welcher Listeneintrag markeirt wurde - tia, und aus all diesen Informationen kann ich dann meine Appikation zusammenbauen.
Immer dann, wenn du von den "einfachen" Formularen abweichst, belibt nur noch die manuelle Programmierung - und die ist aufwendig.
Gruss
Thomas
Das lese ich in ein Array, heißt ich soll es an eine Variable übergeben?
viele Fragen, wenig Antworten...
OOo Base ist noch nicht so benutzerfreundlich, dass alles automatisch funktioniert. Per API - also zum Beispiel mit Basic - kannst du natürlich alles programmieren. Doch stück für stück:
Was meinst Du mit "SQL Sequenz"?
Intern arbeitet auch Base mit SQL Befehlen. Damit kannst du alle Daten aus einer Datenbank herausholen. Dafür benötigst du zunächst eine Verbindung, diese Verbindung hast du nun als Objekt. Dieses Objekt versteht verschiedene Methoden, unter anderem die folgende: "executeQuery()"
Nein, sondern eine Methode des Verbindungsobjektes. Dieser Methode übergebe ich eine SQL Befehl - oder eine SQL-Befehlssequenz - als String. Also so in der Form:Ist "executeQuery()" ein Befehlsteil des SQL-Befehles?
oResultSet = oConnection.executeQuery("SELECT * FROM MeineTabelle WHERE ID = '4''")
Das Resultset-Objekt enthält nun das Ergebnis der SQL Abfrage - und kann entsprechend ausgewertet und weiterverarbeitet werden.
Deine Listbox im formular ist nun ein völlig andere Baustelle. Auch diese ist ein Objekt, deren Inhalt (also die einzelnen Eintäge) als Array (also eine Liste) übergeben werden. Diese Liste muss ich natürlich vorher aufbauen.
Und so, wie ich eine Liste übergenen kann, kann ich auch auslesen, welcher Listeneintrag markeirt wurde - tia, und aus all diesen Informationen kann ich dann meine Appikation zusammenbauen.
Immer dann, wenn du von den "einfachen" Formularen abweichst, belibt nur noch die manuelle Programmierung - und die ist aufwendig.
Gruss
Thomas
Das lese ich in ein Array, heißt ich soll es an eine Variable übergeben?
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic