Tabellenspalte löschen

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: Tabellenspalte löschen

Re: Tabellenspalte löschen

von Stancer » Mi, 18.07.2007 11:40

Hey Winfried,
meine obere Frage hat sich grad von selbst geklärt.
Das löschen der Spalte wird nur nicht sofort angezeigt. Wenn man einmal nach unten und wieder hochscrollt ist alles weg(so wie es sein soll).
Vielen Dank nochmal für deine Hilfe und Geduld. :mrgreen:

mfg Stancer

Re: Tabellenspalte löschen

von Stancer » Mi, 18.07.2007 10:05

Das Statement objekt hatte ich auch an meins angepasst.
Der Fehler war danach auch weg aber als ich das Makro dann an den Button gebunden hatte und ihn betätigte
passierte gar nichts. Deshalb hab ich dann wieder die ursprüngliche Version reingeschrieben.
Fehlt vielleicht noch irgendwas?

Habs noch mal probiert und es funktioniert, allerdings erst wenn ich wenn ich das Formular schließe und wieder öffne.
Habe bereits einen anderen Button der das ganze aktualisiert. Das Problem ist aber, das in meinem Formular das Subformular(Tabelle Stückzahlen) an die Abfrage für die Produkte gebunden ist. Wenn ich nun die Spalte lösche und aktualisiere sind Haupt und Subformular leer und man kann keine Produkte mehr auswählen um die Stückzahl anzugeben.
Gibt es da eine Möglichkeit die Spalte im Formular zu löschen ohne das gesamte Dokument zu aktualisieren.

Re: Tabellenspalte löschen

von komma4 » Mi, 18.07.2007 09:40

Stancer,

ne - Du bist nicht zu blöd (nur etwas blind).

Das Beispiel von Andrew musst Du so anpassen, dass Du auch "Dein" statement-Objekt nimmst.

Code: Alles auswählen

Sub zurueck()

Dim DatenbankKontext as Object
Dim Datenquelle as Object
Dim Verbindung as Object
Dim Statement as Object
Dim Resultset as Object


DatenbankKontext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatenbankKontext.getByName("Datenbank") 'Datenbank")
Verbindung = Datenquelle.getConnection( "", "" )
Statement = Verbindung.createStatement()
sSQL = "SELECT" & CHR(34) & "Stueckzahl" & CHR(34) & " FROM " & CHR(34) & "Stueckzahlen" & CHR(34)

s ="update ""Stueckzahlen"" Set ""Stueckzahl""= 0"
Statement.executeQuery(s)
end sub
Geht es so?

P.S: Beim Posten von Code: die Anweisungen im Editor markieren und dann die Code-Schaltfläche am oberen Rand nutzen

Re: Tabellenspalte löschen

von Stancer » Mi, 18.07.2007 09:13

Hey Winfried vielen Dank für deine Hilfe, aber ich glaub ich bin echt zu blöd dazu.
Stancer hat geschrieben:oStmt.executeQuery(s)
Diese Zeile wirft für mich mal wieder einen Fehler auf(Objektvariable nicht belegt),
den ich nicht lösen kann.
Was muss ich denn noch verändern damit mein Code endlich funktioniert. :(
Hier noch mal der jetzige Stand:

Sub zurueck()

Dim DatenbankKontext as Object
Dim Datenquelle as Object
Dim Verbindung as Object
Dim Statement as Object
Dim Resultset as Object


DatenbankKontext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatenbankKontext.getByName("Datenbank") 'Datenbank")
Verbindung = Datenquelle.getConnection( "", "" )
Statement = Verbindung.createStatement()
sSQL = "SELECT" & CHR(34) & "Stueckzahl" & CHR(34) & " FROM " & CHR(34) & "Stueckzahlen" & CHR(34)

s ="update ""Stueckzahlen"" Set ""Stueckzahl""= 0"
oStmt.executeQuery(s)
end sub

Danke schon mal im Voraus

Re: Tabellenspalte löschen

von komma4 » Di, 17.07.2007 17:02

Stancer hat geschrieben:Jetzt habe ich nur noch das problem mit der Update Anweisung.
Kann ich die direkt drunter setzen oder klappt das nicht, weil nämlich wieder der Fehler kommt,das Stueckzahl eine ungültige Objektreferenz ist.
Dein Code?

bei Andrew:

Code: Alles auswählen

s = "update ""Numbers"" Set ""Number2""=1234567890123456789.1234 Where ID=3"
oStmt.executeQuery(s)

Re: Tabellenspalte löschen

von Stancer » Di, 17.07.2007 12:34

Ja hab ich mir geholt und auch einiges nützliches gefunden aber den Fehler hab ich bis jetzt damit auch nicht wegbekommen. Mit deiner Anweisung hats jetzt aber prima geklappt.
Jetzt habe ich nur noch das problem mit der Update Anweisung.
Kann ich die direkt drunter setzen oder klappt das nicht, weil nämlich wieder der Fehler kommt,das Stueckzahl eine ungültige Objektreferenz ist.

Re: Tabellenspalte löschen

von komma4 » Di, 17.07.2007 12:26

Quoting!

Code: Alles auswählen

sSQL = "SELECT" & CHR(34) & "Stueckzahl" & CHR(34) & " FROM " & CHR(34) & "Stueckzahlen" & CHR(34) 
Hast Du Dir Andrews DataBase.odt geholt?

Re: Tabellenspalte löschen

von Stancer » Di, 17.07.2007 11:13

hallo nochmal,
hab das ganze noch mal überarbeitet und hoffe einfach mal das mir noch mal weiter hilfst (..Bitte.. :oops: ).

Sub zurueck
Dim DatenbankKontext as Object
Dim Datenquelle as Object
Dim Verbindung as Object
Dim Statement as Object
Dim Resultset as Object

DatenbankKontext = createUnoService("com.sun.star.sdb.DatabaseContext")
Datenquelle = DatenbankKontext.getByName("Datenbank") 'Datenbank")
Verbindung = Datenquelle.getConnection( "", "" )
Statement = Verbindung.createStatement()
Resultset = Statement.executeQuery("SELECT Stueckzahl FROM Stueckzahlen") 'Datenbank")

Also so sieht der Anfang aus.
Darunter wollte ich dann die Update anweisung stellen, aber schon in diesem Teil kommt ein Fehler(bei Select...) das er die Tabelle nicht finden kann.

Re: Tabellenspalte löschen

von komma4 » Mo, 16.07.2007 12:44

* Du hast keinen Datenbankkontext erzeugt.
* Du hast kein statement erzeugt
* Du hast die SQL-Anweisung nicht korrekt beschrieben

Re: Tabellenspalte löschen

von Stancer » Mo, 16.07.2007 10:17

Morgen,
Hab noch mal nen bissl weiter probiert und mein code sieht jetzt so aus:

Sub SpaltenLoeschen()

UPDATE "Stückzahlen_2"

SET "Stückzahl" = [0]

END Sub

Allerdings gibt er mir bei meinem Spaltennamen(Stückzahl) immer noch einen Fehler aus. ("Kein Zugriff auf Objekt. Ungültige Objektreferenz").
Hab leider keine ahnung warum ihm das jetzt schon wieder nicht passt.

Re: Tabellenspalte löschen

von komma4 » Fr, 13.07.2007 12:42

wie: nicht fündig geworden? In Andrews Base-Dokument sind doch massig Beispiele...?

Habe gerade nur das Beispiel vorliegen, wie per Makro eine in BASE vorhandene Abfrage ausgeführt wird:

Code: Alles auswählen

' Kontext holen
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DataBaseContext" )

' Datenquelle auswählen
' DBName: Dein Name der registrierten Datenquelle
oDatenquelle = oDatenbankKontext.getByName( "DBName" )

sQuery = "rechnung"

' Abfragen
oAbfragen = oDatenquelle.QueryDefinitions 
' gewünschte Abfrage vorhanden?
if ( oAbfragen.hasByName( sQuery) ) Then
' Abfrage holen
oAbfrage = oAbfragen.getByName( sQuery )
' SQL-Ausdruck von Abfrage entnehmen
 sQuery = oAbfrage.Command
 ' Verbindung zur DB herstellen
 oVerbindung = oDatenquelle.getConnection( ,)
 ' Statement erzeugen
 oStatement = oVerbindung.createStatement
 ' Abfrage absetzen
 oResultSet = oStatement.executeQuery( oAbfrage.Command )
UPDATE-Abfragen bedürfen einer anderen Syntax - habe aber dafür gerade kein Beispiel zur Hand.
Und hier auf der Arbeit brennt heute mal wieder die Luft .... :-/

Re: Tabellenspalte löschen

von Stancer » Fr, 13.07.2007 08:10

Morgen,
hab gestern noch mal rumprobiert aber nicht wirklich was auf die Reihe bekommen.
Im Forum und auf deinem Link bin ich auch nicht wirklich fündig geworden.
Wäre echt dankbar wenn du mir noch mal weiter helfen könntest.

Re: Tabellenspalte löschen

von komma4 » Do, 12.07.2007 14:39

Du musst wohl erst mal einen Datenbank-Kontext herstellen und den SQL-Befehl aufbereiten.
Beispiele hier im Forum, oder bei Andrew im Datenbank-Dokument, über: http://www.pitonyak.org

Re: Tabellenspalte löschen

von Stancer » Do, 12.07.2007 13:03

Also alles was ich bisher zusammen bekommen habe ist das hier.

Private Sub CommandButton1_Click()

update tabelle set spalte = 0

End Sub

Der Fehler der auftaucht bezieht sich auf die Zeile mit update tabelle....
und ist ein basic Syntaxfehler.
Hab aber leider keine Ahnung wo und ob ich Hochkommas und oder Klammern setzen muss.

Re: Tabellenspalte löschen

von komma4 » Do, 12.07.2007 12:19

...zeige uns bitte mehr Code... und beschreibe die Fehlermeldung genauer.

Nach dem ersten Anschein fehlen Dir die quotes um Tabellenname und Spaltename (siehe SQL-Beispiele in diesem Forumsbereich)

Nach oben