Seite 1 von 1
[gelöst] Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Mi 7. Mai 2014, 15:03
von alice80
Hallo,
brauch Hilfe bei einem Makro.
Habe ein Makro für eine Suchfunktion geschrieben und bin dabei eine Schleife zu intergrieren.
Meine Auswertungsergebnisse sollen in einem Formular in einem Tabellenmodul oder Table Control angezeigt werden.
Momentan sieht die Schleife so aus:
While Ergebnis.next()
dim Dokumentart as string
dim Zuordnung as string
dim Nummer as Integer
dim Anlagennummer as Integer
dim Versionsnummer as Integer
dim Titel as string
dim Autor as string
dim gültig_ab as Date
dim gültig_bis as Date
Dokumentart = Ergebnis.getString(1)
Zuordnung = Ergebnis.getString(2)
Nummer = Ergebnis.getInt(3)
Anlagennummer = Ergebnis.getInt(4)
Versionsnummer = Ergebnis.getInt(5)
Titel = Ergebnis.getString(6)
Autor = Ergebnis.getString(7)
gültig_ab = Ergebnis.getDate(8)
gültig_bis = Ergebnis.getDate(9)
Tabelle_Ergebnis.?
ich möchte dass ins Table Control eine Zeile eingetragen wird.
Ich kenne nur die Funktion addRow, aber die funktioniert hier nicht. Weiss auch noch nicht ob die Nummern für die Spaltenreihenfolge so angegeben wird.
Sorry bin Anfängerin. Konnte auch keinerlei Dokumentation hierzu gefunden.
Sogar im Handbuch von Andrew Pitonyak finde ich unter den Steuerelementen nichts über Tabellen.
Könnte mir bitte jemand auf den richtigen Weg helfen? Und weiss jemand wo ich hierzu richtig gute Lektüre finde? Bitte eine die auch jemand wie ich versteht.
Vielen Dank
Alice
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Mi 7. Mai 2014, 16:36
von Pit Zyclade
Bist in "Programmierung" besser als hier unter "base" aufgehoben.
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Mi 7. Mai 2014, 19:50
von RobertG
Hallo Alice,
aus dem Handbuch 4.2, S. 290f. :
Für einen neuen Datensatz gibt es eine spezielle Methode (vergleichbar mit dem Wechsel in eine neue Zeile im Tabellenkontrollfeld). Es werden also folgende Maßnahmen benötigt:
1. Bereite einen neuen Datensatz vor: oForm.moveToInsertRow()
2. Trage alle vorgesehenen und benötigten Werte ein. Dies geht ebenfalls mit den updateXxx-Methoden, wie im vorigen Abschnitt beschrieben.
3. Bestätige die Neuaufnahme mit folgendem Befehl: oForm.insertRow()
Gruß
Robert
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Do 8. Mai 2014, 11:39
von alice80
Hallo Robert,
danke für die schnelle Antwort, aber ich glaube Du hast mich falsch verstanden.
Ich will mit dem Makro in das Table Control Daten reinschreiben, ohne die Tabellen in der Datenbank zu verändern.
Dieses Table Control dient allein dem Zweck Suchergebnisse anzuzeigen.
Code: Alles auswählen
Sub Suchfunktion
dim Datenquelle as object
Datenquelle = thisComponent.Parent.CurrentController
if not (Datenquelle.isConnected()) then Datenquelle.connect()
dim Verbindung as object
Verbindung = Datenquelle.ActiveConnection()
dim Dokument, Seite, Formular, Tabelle_Ergebnis, Dokumentart_fld, Zuordnung_fld, Nummer_fld, Versionsnummer_fld, Titel_fld, Status_fld as object
Dokument = thisComponent
Seite = Dokument.drawPage
Formular = Seite.forms.getByName ("F_Suchfunktion")
Tabelle_Ergebnis = Formular.getByName ("F_Ergebnis").getByName ("F_Dokumentenverwaltung")
Dokumentart_fld = Formular.getByName ("LF_Dokumentart")
Zuordnung_fld = Formular.getByName ("LF_Zuordnung")
Nummer_fld = Formular.getByName ("TF_Nummer")
Versionsnummer_fld = Formular.getByName ("TF_Versionsnummer")
Titel_fld = Formular.getByName ("TF_Titel")
Status_fld = Formular.getByName ("LF_Status")
dim sql as string, stmt as object
sql = "select ""Dokumentart"", ""Zuordnung"", ""Nummer"", ""Anlagennummer"", ""Versionsnummer"", ""Titel"", ""Autor"", ""gültig ab"", ""gültig bis"" "&_
"from ""Dokumentenverwaltung"" "&_
"where ""Dokumentart""= 'A' and ""Zuordnung""= 'QS' and ""Nummer""= ? and ""Versionsnummer""= ? and ""Titel"" like '%" & Titel_fld.Text & "%'"
stmt = Verbindung.prepareStatement (sql)
'stmt.setString(1,Dokumentart.Text)
'stmt.setString(2,Zuordnung.Text)
stmt.setInt(1,Nummer_fld.Text)
stmt.setInt(2,Versionsnummer_fld.Text)
dim Ergebnis as object
Ergebnis = stmt.executeQuery()
While Ergebnis.next()
dim Dokumentart as string
dim Zuordnung as string
dim Nummer as Integer
dim Anlagennummer as Integer
dim Versionsnummer as Integer
dim Titel as string
dim Autor as string
dim gueltig_ab as String
dim gueltig_bis as String
Dokumentart = Ergebnis.getString(1)
Zuordnung = Ergebnis.getString(2)
Nummer = Ergebnis.getInt(3)
Anlagennummer = Ergebnis.getInt(4)
Versionsnummer = Ergebnis.getInt(5)
Titel = Ergebnis.getString(6)
Autor = Ergebnis.getString(7)
gueltig_ab = Ergebnis.getString(8)
gueltig_bis = Ergebnis.getString(9)
dim Spalte_1 as object
Formular.getByName ("F_Ergebnis").moveToInsertRow()
Spalte_1 = Tabelle_Ergebnis.getByName("Dokumentart")
Spalte_1.Text = Dokumentart
Wend
End Sub
Das ist der bisherige Code und ich Suche eine Möglichkeit zeilenweise Daten in das Table Control zu schreiben.
Hoffentlich kannst Du mir helfen.
Danke
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Do 8. Mai 2014, 19:05
von RobertG
Hallo Alice,
darauf wäre ich nie gekommen, dass Du tatsächlich ohne Datenbankanbindung Suchergebnisse in ein Tabellenkontrollfeld schreiben willst.
Nein, über so etwas habe ich mir noch nie Gedanken gemacht. Du machst doch auch eine Abfrage, die zu dem darzustellenden Ergebnis führen soll. Warum lässt Du nicht einfach das Tabellenkontrollfeld auf diese Abfrage Bezug nehmen? Welche Funktion bietet Dir das Makro, die Base nicht sowieso schon (ohne Makros) bietet?
Gruß
Robert
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Mo 12. Mai 2014, 10:02
von alice80
Hallo Robert,
ich habe es mit den Abfragen probiert allerdings das mit den Suchfeldern im Formular nicht hinbekommen.
In meinem Formular gibt es 6 verschiedene Suchmöglichkeiten, die aber optional gewählt werden können.
In der Abfrage hingegen muss man alle 6 eingeben.
Weiss also nicht genau wie ich das hinbekommen soll. Hinzu kommt das bei den Suchfeldern eins ein Listenfeld sein muss, da in der Haupttabelle nur eine ID gespeichert wird.
Ich habe mir gerade die Beispieldatenbanken 4.2 runtergeladen und hoffe mir dort noch etliche Tipps zu holen.
Aber zum Thema dass mit der Abfrage hab ich nicht hinbekommen, da mir immer noch das Abfragefeld erschien.
Übrigens weisst Du vllt. eine Möglichkeit sich einen Tutor für Base zu suchen oder wo es gute Seminare gibt?
Liebe Grüsse
Alice
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Mo 12. Mai 2014, 17:08
von RobertG
Hallo Alice,
wenn Du eine Beispieldatenbank hier hochladen könntest oder, falls Du das lieber willst, per privater Mail schicken könntest, dann würde ich mir die fehlgeschlagene Abfrage einmal ansehen.
Ich wüsste wirklich nicht, ob es irgendwo jemanden gibt, der Seminare zu Base veranstaltet. Meine Wissensquelle sind dazu Mailinglisten, Foren (neben diesem das OpenOffice-Forum) und das Buch "Datenbanken mit OpenOffice.org 3" von Thomas Krumbein. Wenn Du also Hilfe bei der Zusammenstellung von einer Datenbank brauchst, dann bist Du hier mit Sicherheit richtig.
Gruß
Robert
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Di 13. Mai 2014, 18:25
von alice80
Hallo Robert,
sorry bin noch nicht dazu gekommen.
Vielen Dank für Dein Angebot, ich würde es gerne annehmen.
Wenn ich morgen dazu komme meine Änderungen wieder rückgängig zu machen, schicke ich sie Dir privat zu.
Vielen Dank
Liebe Grüsse
Alice
Re: Makroergebnisse in einem Tabellenmodul anzeigen
Verfasst: Fr 16. Mai 2014, 17:40
von RobertG
Hallo Alice,
ich habe Dir die DB in geänderter Fassung wieder zugeschickt. Weiß nicht, ob die Mail überhaupt angekommen ist ...
Gruß
Robert