selectierte Zeile aus geöffneter Base-Tabelle auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

selectierte Zeile aus geöffneter Base-Tabelle auslesen

Beitrag von Stephan »

Hallo,

Ausgangssituation:
ich habe eine *.odb-Datei geöffnet, bin in den Bereich "Tabellen" gewechselt und habe dort eine der Tabellen doppelgeklickt, so das sie angezeigt wird.
Ich kann nun nit der Maus den Cursor in ein Feld bzw. Spalte einer bestimmten Zeile setzen, wodurch diuese Zeile die aktive Zeile wird, erkenntlich am kleinen größen Dreieck, das am linken Rand angezeigt wird.

Wie ermittle ich per Makro in welcher Zeile ich gerade bin?


Per Code ginge das Anzeigen der Tabelle z.B. so, was ich erwähne weil ich mutmaße die Lösung meiner FRage könnte vielleicht etwas mit "DataSourceBrowser" zu tun haben:

Code: Alles auswählen

Sub Beispiel()
	datentabelle_zeigen("beispiel", "auf")
End Sub


Sub datentabelle_zeigen(welche As String, sortierung As String)
	'sortierung: auf-aufsteigend, ab-absteigend
	'welche: f-Firmen, p-Personen 
	
	Dim URL as New com.sun.star.util.URL
	Dim Args(5) as New com.sun.star.beans.PropertyValue
	Dim Dispatch As Object
	
	DatabaseContext1 = createUnoService("com.sun.star.sdb.DatabaseContext")
	Datenquelle1=DatabaseContext1.getByName(ThisDatabaseDocument.URL)
	Verbindung = Datenquelle1.GetConnection("","")
	
	If welche = "beispiel" And sortierung = "auf" Then
			sql="Select * FROM ""Kunden"""
		Else
			Msgbox "Fehler"
			Exit Sub
	End If
	
    URL.Complete = ".component:DB/DataSourceBrowser"
    Dispatch = StarDesktop.queryDispatch(URL,"_Blank",8)

    Args(0).Name = "ActiveConnection"
    Args(0).Value = Verbindung
    Args(1).Name = "CommandType"
    Args(1).Value = 2
    Args(2).Name = "Command"
    Args(2).Value = sql
    Args(3).Name = "ShowMenu"
    Args(3).Value = True
    Args(4).Name = "ShowTreeView"
    Args(4).Value = False
    Args(5).Name = "ShowTreeViewButton"
    Args(5).Value = False

    Dispatch.dispatch(URL, Args)
End Sub



Mir ist bekannt das ich die Datentabelle in einem Grid-Steuierelement anzeigen könnte, dort könnte ich dann per Cursor eine Zeile markieren und per Basic bestimen welche Zeile markiert ist ... das ist aber nicht die Frage.



Gruß
Stephan