ADO Recordset-Problem

ronaldo84

Erfahrenes Mitglied
Hallo
Ich bin nochn relativ neu in der VB-Programmierung. Ihc möchte mit hilfe eines redordset eine Tabelle auslesen. Der recordset heißt rst. Dann habe ich folgende SQL Anweisung:
Code:
 SELECT TD.TD_ProdNr, TD.Man_ProdNr, EAN, Manufakturer, Listprice FROM TD WHERE TD.Manufakturer Like 'lexware'
Diese Anweisung steht in meinem String ersatzsql.
Nun möchte ich mittels rst.open ersatzsql die Tabelle mit der SQL Abfrage auslesen. Nun kommt aber immer der Fehler
Für mindest einen erforderlichen Parameter wurde kein Wert angegeben
Ich weiß aber nicht warum. Wenn ich das SQL Statement in
Code:
SELECT * FROM TD
und dann rst.open ersastzsql klappt alles. Brauche wirklich hilfe.
Vielen Dank.
 
Hallo ronaldo84

ronaldo84 hat gesagt.:
Code:
SELECT TD.TD_ProdNr, TD.Man_ProdNr, EAN, Manufakturer, Listprice
FROM TD WHERE TD.Manufakturer Like 'lexware'

Ändere es doch mal in
Code:
SELECT TD_ProdNr, Man_ProdNr, EAN, Manufakturer, Listprice
FROM TD WHERE Manufakturer Like 'lexware'

Desweiteren würde ich noch mal alle Feldnamen auf korrekte Schreibweise prüfen.

Gruß
Das Orakel
 
Moin,

sag mal, hast du vorher deine DB geöffnet?
Passiert mir auch ständig!

Code:
rst.Open("d:\Ordner\access_db.mdb")
 
@Orakel. Okay werde ich machen. Dürfte meiner Meinung aber eigentlich nicht daran liegen.
DAs mit den Spaltenbezeichnungen habe ich schon gemacht. Werde es aber nochmal machen.
@Yoah Ja das habe ich gemacht. Sonst würde SELECT * FROM TD ja auch nicht funktionieren.
 
Hallo Ronaldo,

Oracle hat ganz sicher Recht.
Das ist ganz normales SQL Wissen.

Wenn du einem SQL Statement einen Alias verwenden würdest wie zum Bsp.

Select T.Spalte1 from Table1 as T where T.Spalte1 = 1
dann funktioniert das.
Deine Table heißt aber TD ohne Angabe eines Alias also musst du TD. auch weglassen
und nur die Spaltennamen benutzen. Woher soll das DBMS wissen was TD. ist ?

Jens
 
Hat sich erledigt. Hatte doch einen Schreibfehler in der Spaltenbezeichnung.
@jensG. Das mit dem Td.ArtNr hat nicht mit einem Alias zu tun. Wenn du einen Join über zwei Tabellen machst und eine Spalte in beiden Tabellen vorkommt zeigst du damit an welche aus welcher Tabelle du die Spalte verwendest. Das kann man auch anwenden wenn man nur eine Tabelle hat. Was zwar eigentlich Schwachsinn ist. Habe es hier nur so gemacht, das sich mein SQL-Statement aus mehreren String zusammensetz, deren Teile einzeln schon verwendet werden.
 
Hallo Ronaldo,

Sorry das stimmt. War wohl etwas zu spät gestern Abend. Wenn der vorangestellte Name TD. mit dem Tabellenname übereinstimmt ist kein as ... notwendig und man kann das natürlich verwenden auch wenns eine einfache Abfrage auf eine Tabelle ist.

Jens
 
Zurück