(gelöst) bestimmte Felder per Makro (Schalter) leeren
Moderator: Moderatoren
(gelöst) bestimmte Felder per Makro (Schalter) leeren
Hallo !
Ich habe eine Adressdatenbank, in der zwei Suchfelder enthalten sind, die mit einer OK Taste gesteuert werden, wodurch ein gefundener Datensatz angezeigt wird. Nun möchte ich mit einem Schalter, evtl. gesteuert durch ein Makro, erreichen, dass diese Felder bei Knopfdruck auf leer gesetzt werden.
Gibt es eine einfache Lösung?
Gruß Andreas
Ich habe eine Adressdatenbank, in der zwei Suchfelder enthalten sind, die mit einer OK Taste gesteuert werden, wodurch ein gefundener Datensatz angezeigt wird. Nun möchte ich mit einem Schalter, evtl. gesteuert durch ein Makro, erreichen, dass diese Felder bei Knopfdruck auf leer gesetzt werden.
Gibt es eine einfache Lösung?
Gruß Andreas
Zuletzt geändert von schane65 am Mi, 08.08.2012 13:08, insgesamt 11-mal geändert.
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo,
das hängt von einigen Dingen ab.
1.) Welcher Typ von Kontrollelement ist das Suchfeld?
2.) Ist es an ein Tabellenfeld gebunden, wenn ja, welche Tabelle, welche Spalte?
3.) Wo befindet es sich (MainForm, Subform, oder ...)
Am besten die DB verfremdet hochladen, dann klappts auch mit 'nem Tipp.
Gruß R
das hängt von einigen Dingen ab.
1.) Welcher Typ von Kontrollelement ist das Suchfeld?
2.) Ist es an ein Tabellenfeld gebunden, wenn ja, welche Tabelle, welche Spalte?
3.) Wo befindet es sich (MainForm, Subform, oder ...)
Am besten die DB verfremdet hochladen, dann klappts auch mit 'nem Tipp.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: bestimmte Felder per Makro (Schalter) leeren
Hi!
No Problem, hier ist die Datenbank. Es geht im Formular "Adressen_Neu" oben um die Felder "Nachname" und "Stichwort".
Gruß Andreas
No Problem, hier ist die Datenbank. Es geht im Formular "Adressen_Neu" oben um die Felder "Nachname" und "Stichwort".
Gruß Andreas
- Dateianhänge
-
- AdressenNeu.odb
- (38.97 KiB) 192-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
das geht für 2 Felder mit einem Button nur über Makro. Ansonsten würde aber auch reichen, die beiden Felder direkt zu leeren und auf OK zu drücken.
Die Filtertabelle muss bearbeitet werden. Aus ihr zieht das Hauptformular seinen Filterbefehl. Anschließend müssen beide Formulare neu eingelesen werden.
Ich habe das einmal erstellt und hier angehängt.
Gruß
Robert
das geht für 2 Felder mit einem Button nur über Makro. Ansonsten würde aber auch reichen, die beiden Felder direkt zu leeren und auf OK zu drücken.
Code: Alles auswählen
SUB Filter_entfernen
oDoc=thisComponent
oDrawpage=oDoc.drawpage
oForm=oDrawpage.forms.getByName("Filter")
oForm2=oDrawpage.forms.getByName("MainForm")
REM Datenbankverbindung erzeugen
oDatenquelle = ThisComponent.Parent.DataSource
oVerbindung = oDatenquelle.GetConnection("","")
oSQL_Anweisung = oVerbindung.createStatement()
stSql = "UPDATE ""Filter"" SET ""Nachname"" = NULL, ""Stichwort"" = NULL"
oSQL_Anweisung.executeUpdate (stSql)
oForm.reload()
oForm2.reload()
End Sub
Ich habe das einmal erstellt und hier angehängt.
Gruß
Robert
- Dateianhänge
-
- AdressenNeu(2).odb
- (38.09 KiB) 184-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Danke schön, so habe ich es mir vorgestellt.
Gruß Andreas
Danke schön, so habe ich es mir vorgestellt.
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Robert !
Ich muss doch noch mal stören, da ich den die Schaltfläche samt Makro in die ansonsten funktionierende odt-Datei eingefügt habe. Die Formularverknüpfung auf die Datenbank habe ich auch durchgeführt, bekomme aber bei Betätigung des Buttons eine Fehlermeldung.
Kannst du da noch mal helfen?
Fehlermeldung ist als Bild angehängt.
Gruß Andreas
Ich muss doch noch mal stören, da ich den die Schaltfläche samt Makro in die ansonsten funktionierende odt-Datei eingefügt habe. Die Formularverknüpfung auf die Datenbank habe ich auch durchgeführt, bekomme aber bei Betätigung des Buttons eine Fehlermeldung.
Kannst du da noch mal helfen?
Fehlermeldung ist als Bild angehängt.
Gruß Andreas
- Dateianhänge
-
- Fehler.png (106.53 KiB) 5350 mal betrachtet
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo,
die Filterbuttons kenne ich doch, und den Code auch.
Aber zu deinem Probem:
Wenn Du die Datenquelle so suchst:
dann sucht das Makro den Vater des Formulares, in einer Base Datei ist dies das Datenbankdokument (.odb), da klappt der Befehl.
Bei einer .odt Datei geht das so nicht.
Ich empfehle:
ersetze die Zeilen
durch z.B.
Viel Erfolg
Gruß R
die Filterbuttons kenne ich doch, und den Code auch.

Aber zu deinem Probem:
Wenn Du die Datenquelle so suchst:
Code: Alles auswählen
oDatenquelle = ThisComponent.Parent.DataSource
Bei einer .odt Datei geht das so nicht.
Ich empfehle:
ersetze die Zeilen
Code: Alles auswählen
oDatenquelle = ThisComponent.Parent.DataSource
oVerbindung = oDatenquelle.GetConnection("","")
Code: Alles auswählen
oform = Thiscomponent.drawpage.forms(0)
oVerbindung = oform.activeConnection
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo R.
Leider funktioniert das nicht. Die beiden Felder "Nachname" und "Stichwort" werden nicht geleert. Es kommt allerdings keine Fehlermeldung mehr.
Gruß Andreas
Leider funktioniert das nicht. Die beiden Felder "Nachname" und "Stichwort" werden nicht geleert. Es kommt allerdings keine Fehlermeldung mehr.
Gruß Andreas
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
ich versuche einmal kurz auf den jetzigen Fehler einzugehen:
Code des ursprünglichen Makros von mir:
und der Code vermutlich jetzt:
Da Base auf Groß- und Kleinschreibung meines Wissens nicht reagiert benutzt Du die gleiche Variable einmal für das Formular "Filter" und dann Für das Formular, das an der ersten Stelle in der Drawpage steht. Da das Formular "Filter" aber später gegründet wurde steht es eigentlich an der 2. Stelle. Dadurch wird zum Schluss mit oForm.reload() und oForm2.reload() das gleiche Formular doppelt neu geladen.
Das kannst Du umgehen, indem Du statt "MainForm" für das 2. Formular "Filter" einträgst und die erste Definition von oForm heraus nimmst.
Gruß
Robert
ich versuche einmal kurz auf den jetzigen Fehler einzugehen:
Code des ursprünglichen Makros von mir:
Code: Alles auswählen
oForm=oDrawpage.forms.getByName("Filter")
oForm2=oDrawpage.forms.getByName("MainForm")
REM Datenbankverbindung erzeugen
oDatenquelle = ThisComponent.Parent.DataSource
oVerbindung = oDatenquelle.GetConnection("","")
oSQL_Anweisung = oVerbindung.createStatement()
Code: Alles auswählen
oForm=oDrawpage.forms.getByName("Filter")
oForm2=oDrawpage.forms.getByName("MainForm")
REM Datenbankverbindung erzeugen
oform = Thiscomponent.drawpage.forms(0)
oVerbindung = oform.activeConnection
oSQL_Anweisung = oVerbindung.createStatement()
Das kannst Du umgehen, indem Du statt "MainForm" für das 2. Formular "Filter" einträgst und die erste Definition von oForm heraus nimmst.
Gruß
Robert
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo R.
Genauso hat es funktioniert. Ich habe zwar noch einen kleinen Fehler begangen, in dem ich den reload des oForm() auch herausgenommen habe, aber ist jetzt wieder drin und funktioniert.
Danke schön
Gruß Andreas
Genauso hat es funktioniert. Ich habe zwar noch einen kleinen Fehler begangen, in dem ich den reload des oForm() auch herausgenommen habe, aber ist jetzt wieder drin und funktioniert.
Danke schön
Gruß Andreas
Re: (gelöst) bestimmte Felder per Makro (Schalter) leeren
Hallo zusammen,
für den geneigten "Filterer" gibt es hier http://user.services.openoffice.org/en/ ... 32#p214525 ein Beispiel, wo durch Eingabe mehrerer kommaseparierter Suchbegriffe in ein einziges Textfeld, durch alle Spalten der entsprechenden Tabelle gesucht wird.
Also "Bothe" wird genauso gefunden wie "Zoll" oder "Abschlepper" oder der "Wohnort" oder, oder ...
Gruß R
für den geneigten "Filterer" gibt es hier http://user.services.openoffice.org/en/ ... 32#p214525 ein Beispiel, wo durch Eingabe mehrerer kommaseparierter Suchbegriffe in ein einziges Textfeld, durch alle Spalten der entsprechenden Tabelle gesucht wird.
Also "Bothe" wird genauso gefunden wie "Zoll" oder "Abschlepper" oder der "Wohnort" oder, oder ...
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: (gelöst) bestimmte Felder per Makro (Schalter) leeren
Kleine Ergänzung:
während die obige Lösung auf Makros baut kommt die Lösung mit einem Suchfeld und nur einer einfachen Texteingabe ohne Makros aus. Der Text wird einfach in eine Tabelle geschrieben und die Abfrage für die andere Tabelle aktualisiert. Eine Abfrage, die ohne weiteres über alle Felder der gewünschten Tabelle gehen kann.
Zum Schluss waren nur Makros notwendig, weil es erwünscht war, dass mehrere Felder gleichzeitig auf NULL gesetzt werden sollten.
Gruß
Robert
während die obige Lösung auf Makros baut kommt die Lösung mit einem Suchfeld und nur einer einfachen Texteingabe ohne Makros aus. Der Text wird einfach in eine Tabelle geschrieben und die Abfrage für die andere Tabelle aktualisiert. Eine Abfrage, die ohne weiteres über alle Felder der gewünschten Tabelle gehen kann.
Zum Schluss waren nur Makros notwendig, weil es erwünscht war, dass mehrere Felder gleichzeitig auf NULL gesetzt werden sollten.
Gruß
Robert
Re: (gelöst) bestimmte Felder per Makro (Schalter) leeren
Hallo Robert,
was ist an Makros denn verwerflich?
Ein gepflegtes
ist mir persönlich z.B. lieber, als ständiges Update-Knöpfe drücken.
Gruß R
was ist an Makros denn verwerflich?
Ein gepflegtes
Code: Alles auswählen
oForm.reload
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo !
Ich glaube, ich habe Mist gebaut. Ich habe in der Tabelle "Adressen" weitere Felder eingebaut und diese dann auch im Formular übertragen. Desweiteren habe ich Telefonummer in Telefon und Handynummer in Handy umbenannt. Telefon 2, Handy 2 und Fax sind hinzugekommen. Nun kann ich kann ich diese Daten zwar zu einer Person hinzufügen, bekomme sie dann aber bei jeder Person im Formular angezeigt. Entscheidend ist das Formular Adressen_Neu.
Was habe ich denn nun wieder falsch gemacht?
R. oder Robert, kann einer von euch helfen?
Gruß Andreas
Ich glaube, ich habe Mist gebaut. Ich habe in der Tabelle "Adressen" weitere Felder eingebaut und diese dann auch im Formular übertragen. Desweiteren habe ich Telefonummer in Telefon und Handynummer in Handy umbenannt. Telefon 2, Handy 2 und Fax sind hinzugekommen. Nun kann ich kann ich diese Daten zwar zu einer Person hinzufügen, bekomme sie dann aber bei jeder Person im Formular angezeigt. Entscheidend ist das Formular Adressen_Neu.
Was habe ich denn nun wieder falsch gemacht?
R. oder Robert, kann einer von euch helfen?
Gruß Andreas
- Dateianhänge
-
- AdressenNeu.odb
- (40.13 KiB) 167-mal heruntergeladen
Re: bestimmte Felder per Makro (Schalter) leeren
Hallo Andreas,
es fehlen die Zuweisungen der Datenfelder zu den entsprechenden Tabellenfeldern. Ich gehe auf das Textfeld 'txtTelefonnummer' und lasse mir den Reiter 'Daten' anzeigen. Da steht dann: Datenfeld - 'Telefonnummer'. Betätige ich dann das Listfeld, so gibt es 'Telefonnummer' gar nicht, sondern z.B. 'Telefon', 'Handy' ...
Wenn Du die Felder korrekt verbindest wird's wohl klappen.
Gruß
Robert
es fehlen die Zuweisungen der Datenfelder zu den entsprechenden Tabellenfeldern. Ich gehe auf das Textfeld 'txtTelefonnummer' und lasse mir den Reiter 'Daten' anzeigen. Da steht dann: Datenfeld - 'Telefonnummer'. Betätige ich dann das Listfeld, so gibt es 'Telefonnummer' gar nicht, sondern z.B. 'Telefon', 'Handy' ...
Wenn Du die Felder korrekt verbindest wird's wohl klappen.
Gruß
Robert