Discussion:
Abfrage
(zu alt für eine Antwort)
Christian Biland
2005-04-25 21:59:12 UTC
Permalink
Guten Abend

Ich habe dieses Problem schon einmal in die Runde gebracht, ev. habe ich mich
nicht richtig ausgedrückt. Hier nochmals mein Problem. Ich habe eine Abfrage

SELECT Tabelle1.Feld1, Tabelle1.Feld2
FROM Tabelle1
WHERE (((Tabelle1.Feld2)="2003"));

nun möchte ich das Kriterium 2003 aus einer Tabelle3 holen. Das heist, der User
kann z.B. in der Tabelle3 die Zahl 2003 durch 2000 ersetzen, anschliessend sollte
die Abfrage nach 2000 suchen.

Ich habe folgende Vorschläge erhalten

SELECT Feld1
FROM Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.Feld1 = Tabelle2.Feld1;

oder

Public Function GibKriterium() As Long

'Hier Dein Code für die
'Ermittlung des Wertes
GibKriterium = 5

End Function

In der Abfrage verwendest Du dann das Ergebnis der Funktion als Kriterium,
z.B. so:

SELECT *
FROM Tabelle
WHERE DeinFeld=GibKriterium();

oder

DLookUp

oder

Dim strSQL As String
strSQL = " ... hier das kopierte einfügen, allenfalls mehrere Zeilen
konkatenieren"
'lösche im obigen Statement die Where-Bedingung weg, da Du die hier nun
einfügen wirst.
strSQL = strSQL & " WHERE " DeinFeld='Me!DeinSuchFeld'"

So, nun hast Du im VBA Code eine Variable strSQL, welche genau das SQL
Statement beinhaltet, dass Du exportieren willst. Dieses SQL Statement
kannst Du nun ganz einfach der Query unterjubeln, indem Du einfach:

CurrentDB.QueryDefs("ExportAbfrage").SQL = strSQL

Ich habe diese Vorschläge ausprobiert, leider ohne Erfolg. Daher bin ich nicht
sicher, ob ich auf dem richtigen Weg bin. Könnte mir jemand ein bischen weiter
helfen? Damit ich dieses Problem lösen kann. Vorausgesetzt, dass man dies so
lösen kann.

Schöne Grüss Chrigi
Mark Doerbandt
2005-04-25 22:03:57 UTC
Permalink
Hallo, Christian,
Post by Christian Biland
Ich habe diese Vorschläge ausprobiert, leider ohne Erfolg.
Was /genau/ hast Du wie probiert und was /genau/ heisst "ohne Erfolg"?

Es nutzt wenig, wenn Du Loesungsvorschlaege wiedergibst, ohne zu
sagen, was Du gemacht hast. Fehlermeldungen?

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Christian Biland
2005-04-26 19:44:10 UTC
Permalink
Hallo Mark

Ich habe in der Abfrage, (ich arbeite mit Auswahlabfrage und nicht in der SQL Ansicht),
bei Kriterien versucht eine dieser Formeln einzutragen. Da ich nicht programmieren kann, suche
ich vermutlich am falschen Ort. Ich bin nicht sicher wie ich diese Formeln anwenden soll.
Eigentlich möchte ich im Feld Kriterien "2003" diese Jahrzahl über eine Tabelle wechseln.
Wenn der User in der Tabelle die Zahl 2000 eingibt sollte die Abfrage mit der Zahl 2000 suchen.
Ist so etwas überhaupt lösbar, ohne Kenntnisse in der Programmierung?

Gruss Chrigi
Post by Mark Doerbandt
Was /genau/ hast Du wie probiert und was /genau/ heisst "ohne Erfolg"?
Es nutzt wenig, wenn Du Loesungsvorschlaege wiedergibst, ohne zu
sagen, was Du gemacht hast. Fehlermeldungen?
Gruss - Mark
Mark Doerbandt
2005-04-26 19:52:00 UTC
Permalink
Hallo, Christian,
Post by Christian Biland
ich arbeite mit Auswahlabfrage und nicht in der SQL Ansicht
Was hindert Dich daran, in die SQL-Ansich zu wechseln und dort etwas
Post by Christian Biland
Post by Christian Biland
SELECT Tabelle1.Feld1, Tabelle1.Feld2
FROM Tabelle1
WHERE (((Tabelle1.Feld2)="2003"));
Versuche mal

SELECT Tabelle1.Feld1, Tabelle1.Feld2
FROM Tabelle1 INNER JOIN Tabelle2
ON Tabelle1.Feld2 = Tabelle2.Feld1;

(wenn in Tabelle2 in Feld1 in der einzigen Zeile 2003 steht.

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Christian Biland
2005-04-27 10:00:18 UTC
Permalink
Hallo Mark

Mit dieser Anweisung funktioniert meine Abfrage bestens. Ich habe folgenden Fehler
gemacht, ich wollte

INNER JOIN Tabelle2 ON Tabelle1.Feld2 = Tabelle2.Feld1

im Feld Kriterien einfügen, dies geht natürlich nicht

Besten Dank für Deinen Tip

Eine abschliessende Frage noch. Wie erlernt man die Programmierung mit VBA oder ähnliches,
ist dazu ein Studium nötig? Das was ich erlernt habe, beziehe ich aus dem Internet oder aus
Büchern. Leider ist dies sehr komplex. Am besten geht es mit Beispielen.

Schöne Grüsse Chrigi
Post by Mark Doerbandt
Versuche mal
SELECT Tabelle1.Feld1, Tabelle1.Feld2
FROM Tabelle1 INNER JOIN Tabelle2
ON Tabelle1.Feld2 = Tabelle2.Feld1;
Mark Doerbandt
2005-04-27 14:06:04 UTC
Permalink
Hallo, Christian,
Post by Christian Biland
Wie erlernt man die Programmierung mit VBA oder ähnliches,
Das hast Du unten schon beschrieben.
Post by Christian Biland
ist dazu ein Studium nötig?
Nein!
Post by Christian Biland
Das was ich erlernt habe, beziehe ich aus dem Internet oder aus
Büchern. Leider ist dies sehr komplex. Am besten geht es mit Beispielen.
Genau so. Mache Dir die drei Grundlagen von Algorithmen klar:

- Anweisung
- Schleife
- Verzweigung

und lerne, wie man Variablen und Prozeduren nutzen kann um zu abstrahieren.

Und dann: ueben, ueben, ueben. Versuche, bei Beispielen Schritt fuer
Schritt zu verstehen, was passiert, ruhig auch mit dem Debugger - da sieht
man genau, was abgeht.

Gruss - Mark

Loading...