Discussion:
Variable übergeben bei einer Abfrage?
(zu alt für eine Antwort)
Thomas Himmelmann
2003-08-05 00:53:16 UTC
Permalink
Hallo!

Diesen Ausdruck habe ich Abrage Test definiert

SELECT Mitarbeiter.Vorname, Mitarbeiter.Name
FROM Mitarbeiter
WHERE (((Mitarbeiter.Name)=[Suchname]));

Wie müsste der SQL Ausdruck aussehen, wenn ich beim Aufruf über ein SQL
Ausdruck die Variable Suchname übergeben will ohne das ich sie manuell
eingeben muss.

SELECT * FROM test ...?


MfG
Thomas

PS: Ich greife über Visual Basic.net auf die Datenbank über SQL Befehle zu.
Anette Becker
2003-08-05 03:28:02 UTC
Permalink
Hallo Thomas,
Post by Thomas Himmelmann
Diesen Ausdruck habe ich Abrage Test definiert
SELECT Mitarbeiter.Vorname, Mitarbeiter.Name
FROM Mitarbeiter
WHERE (((Mitarbeiter.Name)=[Suchname]));
Wie müsste der SQL Ausdruck aussehen, wenn ich beim Aufruf über ein
SQL Ausdruck die Variable Suchname übergeben will ohne das ich sie
manuell eingeben muss.
SELECT * FROM test ...?
z.B.:
Dim strSuchbegriff as string

strSuchbegriff = .... woher Du auch immer den Suchbegriff ziehst

SELECT Mitarbeiter.Vorname, Mitarbeiter.Name
FROM Mitarbeiter
WHERE (((Mitarbeiter.Name) = ' "& strSuchbegriff &" ' ));


Achte auf die Hochkomma, der Übersichtlichkeit wegen habe ich Leerzeichen
dazwischen gepackt.

HTH und Gruss Anette
--
==> Mails zu NG-Fragen werden ignoriert <==
Home: www.pc-creativ.de
FAQ: www.donkarl.com MVP: http://mvp.support.microsoft.com
Verein: www.dbdev.org
Thomas Himmelmann
2003-08-05 09:56:46 UTC
Permalink
Post by Anette Becker
Dim strSuchbegriff as string
strSuchbegriff = .... woher Du auch immer den Suchbegriff ziehst
SELECT Mitarbeiter.Vorname, Mitarbeiter.Name
FROM Mitarbeiter
WHERE (((Mitarbeiter.Name) = ' "& strSuchbegriff &" ' ));
Hallo Anette,
genau das wollte ich vermeiden. Weil die Abfragen um die geht 4 bis 5fach so
lang sind,.deshalb habe ich aus der langen Abfragen eine kurze gemacht die
in Access abgespeichert ist. Also aus der Abfrage das oben habe ich die
Abfrage Test generiert und beim Aufruf von test wird immer strSuchbegriff
verlangt. Den wollte ich jetzt über ein SQL Anweisung mitgeben. Ist das
möglich?

MfG
Thomas
Peter Steimann[MVP Access]
2003-08-05 14:45:46 UTC
Permalink
Hallo Thomas
Post by Thomas Himmelmann
Post by Anette Becker
Dim strSuchbegriff as string
strSuchbegriff = .... woher Du auch immer den Suchbegriff ziehst
SELECT Mitarbeiter.Vorname, Mitarbeiter.Name
FROM Mitarbeiter
WHERE (((Mitarbeiter.Name) = ' "& strSuchbegriff &" ' ));
Hallo Anette,
genau das wollte ich vermeiden.
Nee, das wolltest Du doch?
Post by Thomas Himmelmann
Weil die Abfragen um die geht 4 bis 5fach so
lang sind,.deshalb habe ich aus der langen Abfragen eine kurze gemacht die
in Access abgespeichert ist. Also aus der Abfrage das oben habe ich die
Abfrage Test generiert und beim Aufruf von test wird immer strSuchbegriff
verlangt. Den wollte ich jetzt über ein SQL Anweisung mitgeben. Ist das
möglich?
Genau das passiert doch in dem Code. Dei Variable strSuchbegriff muss
natürlich gefüllt werden.....Nix Abfrage, sondern Aufruf des SQL mit dem
Parameter!

Gruss

Peter
Thomas Himmelmann
2003-08-05 15:06:07 UTC
Permalink
Post by Peter Steimann[MVP Access]
Post by Peter Steimann[MVP Access]
Genau das passiert doch in dem Code. Dei Variable strSuchbegriff muss
natürlich gefüllt werden.....Nix Abfrage, sondern Aufruf des SQL mit dem
Parameter!
Hallo Peter,

schade das es nicht anders geht. So mit den langen SQL Aufruf hatte ich es
schon gemacht. Ich wollte mir nur Schreibarbeit sparen.

Gruß
Thomas
Juergen Frieling
2003-08-05 16:32:51 UTC
Permalink
Hallo Thomas
Post by Thomas Himmelmann
SELECT Mitarbeiter.Vorname, Mitarbeiter.Name
FROM Mitarbeiter
WHERE (((Mitarbeiter.Name)=[Suchname]));
Ich glaub, Du suchst nach Abfrage-Parametern.
In Access sähe das ungefähr so aus:

dim qdf as querydef, rst as recordset
set qdf=currentdb.querydefs("Test")
qdf.parameters("Suchname")="Piepenbrink"
set rst=qdf.openrecordset()
Post by Thomas Himmelmann
PS: Ich greife über Visual Basic.net auf die Datenbank über SQL Befehle zu.
Dann frag lieber in m.p.d.g.e.d.vb :-)
In C# für den SQL-Server sieht das z.B. so aus (habe leider keine Ahnung
vom Zugriff auf JET-DB von .NET aus...):

SqlCommand cmdToExecute = new SqlCommand();
cmdToExecute.CommandText = "Test";
cmdToExecute.CommandType = CommandType.StoredProcedure;
...
cmdToExecute.Parameters.Add(new SqlParameter("@Suchname",
SqlDbType.Char,30));
...

Gruss,
Juergen

Lesen Sie weiter auf narkive:
Loading...