Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

Re: Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

von F3K Total » Do, 31.03.2011 18:46

Nein, nicht dass ich wüßte.
Es lag nur nahe, dass es sich bei dem Feld um ein numerisches Feld handelt, weil es in deinem Makro "oNumField1" heißt.
Dann wäre .Text verkehrt und müßte .CurrentValue heißen.
Aber gerade habe ich vermutlich den Fehler gefunden:
Ersetze mal

Code: Alles auswählen

nValue = oView.Model.text
durch

Code: Alles auswählen

nValue = oView.text
Gruß R

Re: Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

von F3K Total » Mi, 30.03.2011 18:04

Hallo,
um welchen Typ von Kontrollfeld handelt es sich bei "Fach"?

G R

Re: Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

von F3K Total » Mo, 28.03.2011 16:59

Hi, Du suchst sicherlich die Syntax?
Hier ein Beispiel, ist wirklich etwas verzwickt, mit den Gänsefüsschen.
gänsefüsschen.png
Das 1. und 4. Gänsefüsschen umrahmt den String vor oder hinter der Variable, das 2. und 3. bildet dann das eine Gänsefüsschen, was im SQL benötigt wird, wenn Kleinbuchstaben vorkommen, bei Großbuchstaben kannst Du sie weglassen.

Dann geht das also so:

Code: Alles auswählen

sub create_table
dim TABLE_NAME as string

DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatabaseContext.getByName(ThisDatabaseDocument.getLocation())'Hier wird der aktuelle Datenbankname ermittelt.
Verbindung = Datenquelle.GetConnection("","")' ("Benutzername","Passwort")
SQL_Anweisung = Verbindung.createStatement()

TABLE_NAME="Name_der_Tabelle"

Sql ="CREATE CACHED TABLE """+TABLE_NAME+""" (ID integer not null identity, PILOTID integer, F1 integer, NAME varchar(50))"
SQL_Anweisung.executeUpdate(Sql)

end Sub
Gruß R

Re: Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

von komma4 » Mo, 28.03.2011 11:40

Gast hat geschrieben:dass ich die Tabelle nach den Variablenwert benenne und nicht die Tabelle nach der Variable genannt wird?

Indem Du den Inhalt der Variablen verwendest und nicht den Namen der Variablen.

Re: Für jeden Datensatz aus Tabelle eigene Tabelle erstellen

von F3K Total » Mi, 23.03.2011 20:53

Hallo,
das geht recht einfach:

Code: Alles auswählen

DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatabaseContext.getByName(ThisDatabaseDocument.getLocation())'Hier wird der aktuelle Datenbankname ermittelt. 
Verbindung = Datenquelle.GetConnection("","")' ("Benutzername","Passwort")
SQL_Anweisung = Verbindung.createStatement()
Jetzt den SQL-Befehl zum Erzeugen einer Tabelle, dabei wichtig, nur Großbuchstaben wie PILOTID brauchen nicht in doppelte "" eingepackt werden, sind auch Kleinbuchstaben dabei, dann wie Name_der_Tabelle:

Code: Alles auswählen

Sql ="CREATE CACHED TABLE ""Name_der_Tabelle"" (ID integer not null identity, PILOTID integer, F1 integer, NAME varchar(50))"
SQL_Anweisung.executeUpdate(Sql)
Jetzt noch in Base Ansicht/Tabellen aktualisieren und schon ist sie da.
Willst Du Werte in die Tabelle schreiben dann hier ein Beispiel:

Code: Alles auswählen

Sql ="INSERT INTO ""Name_der_Tabelle""  VALUES (12,13,126,'Max Mustermann')"
SQL_Anweisung.executeUpdate(Sql)
Und Abfragen gehen so:

Code: Alles auswählen

Sql="select ID, PILOTID, F1, NAME  from  ""Name_der_Tabelle"""
Sql_Abfrage=SQL_Anweisung.executeQuery(Sql)
und das Auslesen der Abfrage:

Code: Alles auswählen

While Sql_Abfrage.next
oID=Sql_Abfrage.getint(1)
oPILOTID=Sql_Abfrage.getint(2)
oF1=Sql_Abfrage.getint(3)
oNAME=Sql_Abfrage.getstring(4)
Wend
G R

Nach oben