Abfrage enthält keine gültige Tabelle

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: Abfrage enthält keine gültige Tabelle

Re: Abfrage enthält keine gültige Tabelle

von F3K Total » Mi, 21.09.2011 19:59

Hallo Sprechlaut,
habe mal Dein Makro zum Laufen gebracht:

Code: Alles auswählen

Sub Listenfeld_PN

Dim sSQL(0) As String
   
oForm = ThisComponent.drawpage.forms.getByName("Formular")
oFeld_Kunde = oForm.getByName("Listenfeld2")
'Aktuelle Kunden ID auslesen
Id = oFeld_Kunde.ValueItemList(oFeld_Kunde.SelectedItems(0))

'Abfrage vorbereiten
sSQL(0) = "SELECT ""num_PN"" FROM ""PN"" WHERE ""id_Kunde"" = "+ID+" AND ""ja_aktiv"" = 1"
'Listenfeld Projektnummer füllen
oFeld_PN = oForm.getByName("Listenfeld3")
oFeld_PN.ListSourceType=3
oFeld_PN.ListSource=sSql
oFeld_PN.refresh

End Sub
Gruß R

Re: Abfrage enthält keine gültige Tabelle

von sprechlaut » Mi, 21.09.2011 14:41

Hallo miteinander,

ich entschuldige mich, bin zur Zeit wieder viel unterwegs. Und bin nicht zum programmieren gekommen.


Vielen Dank,
und Grüße,

Julian
Dateianhänge
tld.odb
(33.92 KiB) 24-mal heruntergeladen

Re: Abfrage enthält keine gültige Tabelle

von F3K Total » So, 18.09.2011 18:59

Hallo Sprechlaut,
na dann scheint es in der Datenbank TLD keine Tabelle PN zu geben. Vielleicht lädst Du die DB mal hier hoch?
Gruß R

Re: Abfrage enthält keine gültige Tabelle

von sprechlaut » Sa, 17.09.2011 09:06

Vielen Dank R,

aber es kommt immernoch die wie oben beschriebene Fehlermeldung.
"... keine gültige Tabelle."

Re: Abfrage enthält keine gültige Tabelle

von F3K Total » Fr, 16.09.2011 20:20

Hallo sprechlaut,
Du hast sID per Makro ausgelesen und musst sie nun in den String einbauen:

Code: Alles auswählen

sSQL = "SELECT ""num_PN"", ""txt_Bezeichnung"", ""id_Kunden"" FROM ""PN"" WHERE ""id_Kunden"" = "+sID+" AND ""ja_aktiv"" = 1"
Gruß R

Re: Abfrage enthält keine gültige Tabelle

von sprechlaut » Fr, 16.09.2011 15:33

Hier meine angaben:

Windows 7
OpenOffice 3.3.0
und in Statusleiste steht nur HSQL Datenbank-Engine. (ich weiß nicht, welche version diese ist)

PN enthält:
ID_PN (Primärschlüssel)
num_PN (6stellige Zahl)
txt_Bezeichnung (sollte klar sein)
id_Kunden (zugehörigkeit von Kundendatenbank)
ja_aktiv (boolean ob noch zur bearbeitung oder nicht)
num_sollstunden (fürs Projekt vorgegebene StundenanZAHL)

Zur letzten Frage: dieser Weg schien mir (als anfänger in base) am sinnvollsten zu sein. Ich will eine sehr sehr einfache Eingabemaske für die Mitarbeiter bauen. Je einfacher desto besser. Und dadurch nur Kürzel, Kunde und Projekt über listbox auswählen und Stunden reinschreiben. Falls das besser, schneller und schöner geht, bin ich für neue wege offen.

Vielen Dank schon mal.

Re: Abfrage enthält keine gültige Tabelle

von komma4 » Fr, 16.09.2011 14:45

Willkommen im Forum
sprechlaut hat geschrieben:Message: Die Abfrage kann nicht ausgeführt werden. Sie enthält keine gültige Tabelle.
Welche OOo-Version?
Welches Betriebssystem?
Welche Datenbank (embedded HSQLDB)? Angabe steht in der Statuszeile der ODB)

Die Abfragesyntax ist von der verwendeten Datenbank abhängig!

Welche Spalten hat die Tabelle PN?

Und warum benutzt Du eine eigene Abfrage und nimmst nicht die Datenauswahl des Formulars bzw. einen Formularfilter?

Abfrage enthält keine gültige Tabelle

von sprechlaut » Fr, 16.09.2011 12:43

Hallo zusammen,

erstmal vielen Dank für dieses Forum. Hat mir schon oft weitergeholfen.
Bin relativ neu in Base und ganz neu im Forum.

Ich habe jetzt ein neues Problem:
Eine einfache Zeiterfassung für verschiedene Projekte von verschiedenen Kunden.
Es gibt 4 Tabellen:
Mitarbeiter
Kunden
PN (für Projektnummer)
Erfassung

Der Mitarbeiter bekommt ein Formular in dem er sein Kürzel über das Listenfeld1 auswählt. In diesem Formular gibts weiter das Listenfeld2 in dem der Kunde ausgewählt wird. Das Listenfeld3 sollte dann nur die Projekte des vorher ausgewählten Kunden anzeigen.
Und da liegt das Problem:
Ich habe die ID_Kunden aus Listbox2 schön ausgelesen: sID
jetzt will ich eine Abfrage starten und diese ID als Kriterium setzten.
Ich probier seit Tagen rum, aber bekomm die Abfrage nicht hin.
Fehlermeldung wird nach der Abfrage gezeigt:
Basic Laufzeitfehler
Es ist eine Exception aufgetreten.
Type: com.sun.star.sdbc.SQLException
Message: Die Abfrage kann nicht ausgeführt werden. Sie enthält keine gültige Tabelle.

Hier der Code:

Code: Alles auswählen

Sub Listenfeld_PN
    dim oDoc as Object
    dim oForm as Object
    dim oFeld as Object
    dim sID as string
    dim oStatement As Object
    dim oDatenbankKontext As Object
    dim oDatenquelle As Object
    dim oVerbindung As Object
    dim sSQL As String
   
oDoc = ThisComponent
oForm = oDoc.drawpage.forms.getByName("Formular")
oFeld = oForm.getByName("Listenfeld2")
sID = oFeld.ValueItemList(oFeld.SelectedItems(0))
msgbox sID                'nur zur prüfung ob ID_Kunden von Listenfeld2 stimmt. (diese msgbox kommt in endlösung nicht vor)

oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "TLD" )
oVerbindung = oDatenquelle.getConnection( "" , "" )
oStatement = oVerbindung.createStatement()
sSQL = "SELECT ""num_PN"", ""txt_Bezeichnung"", ""id_Kunden"" FROM ""PN"" WHERE ""id_Kunden"" = ""sID"" AND ""ja_aktiv"" = 1"
SQLErg = oStatement.executequery(sSQL)          'Hier gibts ne Fehlermeldung: "...Die Abfrage kann nicht ausgeführt werden. Sie enthält keine gültige Tabelle"
oVerbindung.close()
oStatement.close()

End Sub
Ich glaube ich bin zu dumm, das Kommando richtig zu schreiben und hoffe ihr könnt mir hier helfen.



Moderation,4: Betreff angepasst

Nach oben