Christian Biland
2005-04-25 21:59:12 UTC
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
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