Variable in SQL-Statement verwenden

Schönen guten Abend!

Ich bin ein Amateur in Sachen VBA, ACCESS und SQl, aber vielleicht kann mir jemand helfen im Bezug auf Sichten(Views) und deren SQL-Anweisungen mit Access 2003. Also ich habe eine View die mir Kunden anzeigt die n Artikel bestellen können, nun möchte ich aber von der View nur eine bestimmte Anzahl Kunden in einer Tabelle speichern.
z.B möchte ich von 100 Kunden nur die ersten 10 in eine Tabelle speichern, mein Problem liegt darin das ich ein Formular habe welches mir die Anzahl in einer Variable speichert. Diese Variable möchte ich nun in meiner View benutzen…sieht dann in etwa so aus

SELECT TOP Anzahl PERCENT vw_Sicht

wie muss ich die Variable Anzahl deklarieren und wie kann ich sie im SQl-Statement mit dem Wert aus dem Formular belegen?

Hilfen im netz bringen mich leider nicht weiter mit DECLARE und SET usw.
Muss das leider so wie ich es beschrieben habe in einer View mit dem SQL-Statement umsetzen und kann das nicht mit VBA machen was mir etwas angenehmer wäre, aber jetzt möchte ich das eh wissen wie sowas funktioniert. :wink:

Danke schon mal im Voraus.
MfG
Christian

Hallo Christian,

Ich bin ein Amateur in Sachen VBA, ACCESS und SQl, aber
vielleicht kann mir jemand helfen im Bezug auf Sichten(Views)
und deren SQL-Anweisungen mit Access 2003.

Views heißen bei Access Abfragen
D.h. alles was du von Views kennst, kannst du mit den Abfragen erledigen, und das sogar durch Assistenten unterstützt.

Diese Variable möchte ich nun in meiner View

also hast du eine Abfrage erstellt?

in der SQL-Ansicht hast du das stehen?:

SELECT TOP Anzahl PERCENT vw_Sicht

wie muss ich die Variable Anzahl deklarieren

gar nicht, da sie über ein Formular kommt und somit deklariert ist.

und wie kann ich sie im SQl-Statement mit dem Wert aus dem Formular
belegen?

in VBA:
Anzahl = Forms!Formularname.Variable

in einer Abfrage:

  • klicke inder der Spalte der Variablen in die Zeile für Kriterien.
  • klicke nun in der Symbolleiste auf den Zauberstab
  • im nun öffnenden Fenster: wähle links das entsprechnde Formular aus der Liste.
  • in der mittleren Spalte wählst du dann die Variable
  • mit OK bestätigen und der entspechende String wird in den Kriterien eingetragen.

Hilfen im netz bringen mich leider nicht weiter mit DECLARE
und SET usw.

danach solltest du auch nicht suchen :frowning:
die Accesshilfe dürfte da ergiebiger sein.

Grüße aus Essen
Wolfgang

Guten Morgen Wolfgang,

also hast du eine Abfrage erstellt?

in der SQL-Ansicht hast du das stehen?:

SELECT TOP Anzahl PERCENT vw_Sicht

Ich habe jetzt eine Abfrage erstellt in der zwei Tabellen sind, eine ist ebenfalls Abfrage und die andere eine normale Tabelle.
Bis jetzt sieht meine Abfrage so aus:

SELECT TOP 100 PERCENT dbo.vw_Empfaenger_bestellen.EMPFÄNGER_ID, dbo.vw_Empfaenger_bestellen.KAMPAGNE_ID,Empfaenger_bestellen.LOVE_ID, dbo.EMPFAENGER.PLZ
FROM
dbo.vw_Empfaenger_bestellen
INNER JOIN
dbo.EMPFAENGER ON dbo.vw_Empfaenger_bestellen.EMPFÄNGER_ID = dbo.EMPFAENGER.ID
WHERE
((CONVERT(CHAR(36), dbo.vw_Empfaenger_bestellen.KAMPAGNE_ID) + ‚-‘ + CONVERT(CHAR(36), dbo.vw_Empfaenger_bestellen.EMPFÄNGER_ID))
NOT IN
(SELECT CONVERT(CHAR(36), KAMPAGNE_ID) + ‚-‘ + CONVERT(CHAR(36), EMPFÄNGER_ID)
FROM
dbo.vw_Empfaenger_verpacken)) AND ((CONVERT(CHAR(36), dbo.vw_Empfaenger_bestellen.KAMPAGNE_ID) + ‚-‘ + CONVERT(CHAR(36),
dbo.vw_Empfaenger_bestellen.EMPFÄNGER_ID))
NOT IN
(SELECT CONVERT(CHAR(36), KAMPAGNE_ID) + ‚-‘ + CONVERT(CHAR(36), EMPFÄNGER_ID)
FROM
dbo.vw_Empfaenger_geliefert))
GROUP BY dbo.vw_Empfaenger_bestellen.EMPFÄNGER_ID, dbo.vw_Empfaenger_bestellen.KAMPAGNE_ID, dbo.vw_Empfaenger_bestellen.LOVE_ID,
dbo.EMPFAENGER.PLZ
ORDER BY
dbo.EMPFAENGER.PLZ

Kunden sind jetzt hier Empfänger…hoffe das ist nicht zu verwirrend,habe mit einer Kollegin lange daran gesessen diese Abfrage hinzubekommen. Die Abfrage filtert mit die bestellten Artikel die NICHT in einer anderen Abfrage gepackt oder geliefert enthalten sind, deshalb NOT IN und die CONVERT zum vergleichen der Kampagne und des Empfängers in den anderen Abfragen. Die anderen Abfragen erkennst du mit dem vw_ am Anfang.

in einer Abfrage:

  • klicke inder der Spalte der Variablen in die Zeile für
    Kriterien.
  • klicke nun in der Symbolleiste auf den Zauberstab
  • im nun öffnenden Fenster: wähle links das entsprechnde
    Formular aus der Liste.
  • in der mittleren Spalte wählst du dann die Variable
  • mit OK bestätigen und der entspechende String wird in den
    Kriterien eingetragen.

Die Spalten liefern mir jetzt aber nur die Variablen die auch in den Tabellen enthalten sind. Habe jetzt eine Variable angelegt in einer Spalte, aber leider kann ich keinen Zauberstab sehen in der Symbolleiste…

Hallo Christian,

in einer Abfrage:

  • klicke inder der Spalte der Variablen in die Zeile für
    Kriterien.
  • klicke nun in der Symbolleiste auf den Zauberstab
  • im nun öffnenden Fenster: wähle links das entsprechnde
    Formular aus der Liste.
  • in der mittleren Spalte wählst du dann die Variable
  • mit OK bestätigen und der entspechende String wird in den
    Kriterien eingetragen.

Die Spalten liefern mir jetzt aber nur die Variablen die auch
in den Tabellen enthalten sind.

klar, denn SPALTE = Feld in der Tabelle

Habe jetzt eine Variable
angelegt in einer Spalte, aber leider kann ich keinen
Zauberstab sehen in der Symbolleiste…

nochmal wie oben beschrieben:

  • klicke in der der Spalte der Variablen in die Zeile für
    Kriterien.

wichtig: in die ZEILE für Kriterium klicken

  • klicke nun in der Symbolleiste auf den Zauberstab
    (nur dann kannst du den Zauberstab nutzen)

Beachte bitte die Unterscheidung zwischen Spalten und Zeilen !!

Die Quickinfo beim Zauberstab ist: AUFBAUEN

Grüße aus Essen
Wolfgang