von kilix » Do, 26.10.2023 17:43
Hallo,
die oben genannte Lösung funktioniert gut solange ich in der Abfrage kein Kriterium habe. Ich habe aber in der Abfrage ein Kriterium definiert. Im Makro öffnet sich auch das Kriterienfenster und wartet bis ich meine Eingabe gemacht und mit OK bestätigt habe. Allerdings wird dann nicht nach meiner Eingabe gefiltert.
Der manuelle Vorgang ist wie folgt:
1) Aufruf der Datenquelle mit Menü-Ansicht-Datenquelle: damit wird die früher verwendete Abfrage markiert
2) Frage nach der Eingabe des Kriteriums diese Frage beantworte ich mit Abbrechen (da sie später nochmals kommt)
3) ich markiere die Abfrage (im Explorerfenster) und ziehe sie mit der Maus in die Calc-Tabelle
4) dabei wird wieder nach der Eingabe des Kriteriums gefragt, nun mache ich die Eingabe
5) die gewünschte Selektion wird in die Calc-Tabelle übernommen.
Wenn ich diesen Vorgang aufzeichne werde ich nur einmal nach dem Kriterium gefragt aber danach nichts mehr gemacht. Ich nehme an, dass das Ziehen mit der Maus der Abfrage in die Calc-Tabelle nicht richtig aufgezeichnet wird. Wahrscheinlich dürfte ich nicht "ziehen" sondern müsste es mit "kopieren" und "einfügen". Allerdings erhalte ich dabei immer Fehlermeldungen, egal ob ich "kopieren" aus dem Menü oben oder dem DB-Menü nehme. Für "einfügen" habe ich keine alternativen Möglichkeiten gefunden.
Das aufgezeichnete Makro sieht so aus:
Code: Alles auswählen
sub DB_importieren
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ViewDataSourceBrowser"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ViewDataSourceBrowser"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ViewDataSourceBrowser"
args3(0).Value = false
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ViewDataSourceBrowser"
args4(0).Value = false
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args4())
end sub
Hallo,
die oben genannte Lösung funktioniert gut solange ich in der Abfrage kein Kriterium habe. Ich habe aber in der Abfrage ein Kriterium definiert. Im Makro öffnet sich auch das Kriterienfenster und wartet bis ich meine Eingabe gemacht und mit OK bestätigt habe. Allerdings wird dann nicht nach meiner Eingabe gefiltert.
Der manuelle Vorgang ist wie folgt:
1) Aufruf der Datenquelle mit Menü-Ansicht-Datenquelle: damit wird die früher verwendete Abfrage markiert
2) Frage nach der Eingabe des Kriteriums diese Frage beantworte ich mit Abbrechen (da sie später nochmals kommt)
3) ich markiere die Abfrage (im Explorerfenster) und ziehe sie mit der Maus in die Calc-Tabelle
4) dabei wird wieder nach der Eingabe des Kriteriums gefragt, nun mache ich die Eingabe
5) die gewünschte Selektion wird in die Calc-Tabelle übernommen.
Wenn ich diesen Vorgang aufzeichne werde ich nur einmal nach dem Kriterium gefragt aber danach nichts mehr gemacht. Ich nehme an, dass das Ziehen mit der Maus der Abfrage in die Calc-Tabelle nicht richtig aufgezeichnet wird. Wahrscheinlich dürfte ich nicht "ziehen" sondern müsste es mit "kopieren" und "einfügen". Allerdings erhalte ich dabei immer Fehlermeldungen, egal ob ich "kopieren" aus dem Menü oben oder dem DB-Menü nehme. Für "einfügen" habe ich keine alternativen Möglichkeiten gefunden.
Das aufgezeichnete Makro sieht so aus:
[code]
sub DB_importieren
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ViewDataSourceBrowser"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ViewDataSourceBrowser"
args2(0).Value = true
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ViewDataSourceBrowser"
args3(0).Value = false
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ViewDataSourceBrowser"
args4(0).Value = false
dispatcher.executeDispatch(document, ".uno:ViewDataSourceBrowser", "", 0, args4())
end sub
[/code]