|
"vlookup" Funktion in Access Abfragen
|
| Autor |
Nachricht |
MP_Trixi
Im Profil kannst Du frei den Rang ändern
Verfasst am: 06. März 2010, 19:14 Rufname:
|
|
| Version: Office 2007 |
|
Hallo,
ich suche eine ähnliche Funktionen in Access Abfragen wie die Excel vlookup. Diese hätte ich schon mehrmals gebraucht um z.B. aus anderen Tabellen einen Parameter auszulesen, der dann für Kalkulationen benutzt werden kann. Im Prinzip wär mir auch geholfen wenn man z.B. in einem Abfragefeld ein eigenständiges SQL-Statement unterbringen könnte. Damit wäre das Feld für jeden Datensatz erstmal gleich als ob ich eine Konstante angegeben hätte (z.B. Preis:5,9), mit diesem könnte dann aber gerechnet werden (z.B. Summe:[Menge]*[Preis]).
Beispiel: Ich hab eine Parameter-Abfrage die die Wasserverbräuche von Mietern für ein Jahr ermittelt (über mehrere Abfragen hinweg aufgebaut). Nun sollte hier aus einer anderen Tabelle der m³-Preis eingefügt/ausgelesen werden damit auf dieser Basis die Kosten ermittelt werden können. Geht das mit Bordmitteln ohne zu programmieren?
Eine weitere Frage: Das geschieht dann auch für andere Kostenarten. Ist es möglich dann auf Basis verschiedener Abfragen eine neue Tabelle aufzubauen in der nicht nur Datensätze (Anfügeabfrage) sondern auch die Felder aufgebaut werden (quasi die ganzen in Abfragen gesammelten Informationen in eine Tabelle und einen Datensatz zu konsolidieren)?
Danke für Feedback.
Gruss
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 06. März 2010, 20:42 Rufname:
Wohnort: NRW
|
| |
| Version: Office 2007 |
|
Hallo,
in Access gibt es die DLookUp-Methode - die Access-Hilfe erzählt dir mehr darüber.
_________________ Gruß MissPh!
(HTH - hope to help)
|
|
MP_Trixi
Im Profil kannst Du frei den Rang ändern
Verfasst am: 07. März 2010, 13:33 Rufname:
|
|
| Version: Office 2007 |
|
Hallo,
danke für die Antwort. Nach ein bischen Trial & Error habe ich es hinbekommen. Damit sieht die Abfrage nun so aus:
| Code: | SELECT [FK Wohneinheit], Mietername, Wasserverbrauch, Abrechnungszeitraum,
DLookUp("[Ab-/Wasser]","[Jahreskosten]"
,"[Abrechnungsjahr]="+[Abrechnungszeitraum]) AS Gesamtkosten
FROM [Q-aWasserErmittlungVerbraeucheProMieter]; | Damit habe ich den Verbrauch pro Mieter und die Gesamtkosten in der Tabelle. Um nun die Kosten pro Mieter ermitteln kann müsste ich die Gesamtkosten durch den Gesamtverbrauch (Summer aller Datensätze über das Feld [Wasserverbrauch]) teilen.
Diese habe ich sowohl über eine neue Abfrage als auch mit der DomSumme Funktion versucht. Das Problem ist wohl dass die Abfrage, in der die Summe gebildet werden soll auf weiterren Abfragen basiert von denen die erste eine Parameterabfrage ist (hier wird der Abrechnungzeitraum (z.B. 2009) eingegeben wobei dann die Ablesedaten mit der Funktion Jahr darauf gefiltert werden. An diesem scheint es zu hängen. Bei
| Code: | SELECT [FK Wohneinheit], Mietername, Wasserverbrauch,
DLookUp("[Ab-/Wasser]","[Jahreskosten]"
,"[Abrechnungsjahr]="+[Abrechnungszeitraum]) AS Gesamtkosten,
DSum("[Wasserverbrauch]","[Q-sWasserErmittlungVerbraeucheProMieter]") AS Gesamtverbrauch
FROM [Q-sWasserErmittlungVerbraeucheProMieter]; | kommt der Hinweis "Der Ausdruck, den Sie als Abfrageparameter eingegeben haben, hat folgenden Fehler verursacht: ' Microsoft Office Access kann den eingegebenen Namen 'Abrechnungszeitraum' nicht finden'" einmal direkt bei der Ausführung, danach werd ich für den anderen Teil aufgefordert den Parameter einzugeben und dann kommt der gleiche Fehler noch 2x.
Lass ich den DSum Teil weg funktionierts.
Ändere ich ihn in:
| Code: | SELECT [FK Wohneinheit], Mietername, Wasserverbrauch,
DLookUp("[Ab-/Wasser]","[Jahreskosten]"
,"[Abrechnungsjahr]="+[Abrechnungszeitraum]) AS Gesamtkosten,
DSum("[Wasserverbrauch]","[Q-sWasserErmittlungVerbraeucheProMieter]"
,[Abrechnungszeitraum]) AS Gesamtverbrauch
FROM [Q-sWasserErmittlungVerbraeucheProMieter]; | kommt der Fehler nur noch einmal nach der Abfrage des Parameters. Alle Felder sind gefüllt bis auf den Gesamtverbrauch.
| Code: | SELECT [FK Wohneinheit], Mietername, Wasserverbrauch,
DLookUp("[Ab-/Wasser]","[Jahreskosten]"
,"[Abrechnungsjahr]="+[Abrechnungszeitraum]) AS Gesamtkosten,
DSum("[Wasserverbrauch]","[Q-sWasserErmittlungVerbraeucheProMieter]"
,"[Abrechnungszeitraum]="+[Abrechnungszeitraum]) AS Gesamtverbrauch
FROM [Q-sWasserErmittlungVerbraeucheProMieter]; | bringt das gleiche Ergebnis.
Die Abfrage auf der DSum sich bezieht hat nur die Felder die im ersten Select Statement aufgeführt sind, basiert aber eben auch auf einer Reihe von Abfragen von denen die zweiten den Parameter haben.
(Bin mir nicht sicher ob ich hierzu ein neue Thema aufmachen sollte)
Danke
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 07. März 2010, 23:24 Rufname:
Wohnort: NRW
|
|
| Version: Office 2007 |
|
Hallo,
ich sehe nicht, warum Abfrage-2 den Fehler "Microsoft Office Access kann den eingegebenen Namen 'Abrechnungszeitraum' nicht finden" bringt und Abfrage-1 dagegen problemlos laufen sollte.
Um die Fehlerursache finden zu können, bräuchte man zumindest den Code sämtlicher daran beteiligten Abfragen, besser aber gleich eine Test-DB.
_________________ Gruß MissPh!
(HTH - hope to help)
|
|
MP_Trixi
Im Profil kannst Du frei den Rang ändern
Verfasst am: 09. März 2010, 10:59 Rufname:
|
| |
| Version: Office 2007 |
|
Hallo,
es geht um die Abfrage "Q-aWasserErmittlungKostenProMieter". Mittlerweile hab ich es so gelöst, bitte nicht schlagen, dass ich den Parameter in eine Parameter Tabelle geschrieben habe (z.Zt. eine Tabelle mit einem Wert ) den ich mit domwert auslese. Anbei der Stand vor dem Workaround.
Merke gerade ich muss mich erst für den Datei-Upload anmelden. Update folgt. --> So, nun mit Anhang
Gruss
| Beschreibung: |
|
 Download |
| Dateiname: |
S-Mieter - Kopie.zip |
| Dateigröße: |
27.76 KB |
| Heruntergeladen: |
3 mal |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|
|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Access Tabellen & Abfragen: Abfragen schuld? sehr lange Zeit beim öffnen eines Formulars |
2 |
ichweissnicht |
250 |
06. Sep 2010, 08:58 ichweissnicht  |
 |
Access Tabellen & Abfragen: Tabellen und Abfragen im Frontend schützen/sichern |
21 |
Marina_Arida |
381 |
27. Jun 2010, 23:21 derArb  |
 |
Access Programmierung / VBA: Ausgeführte Abfragen protokollieren |
9 |
Vika |
216 |
02. Sep 2009, 14:05 Vika  |
 |
Access Formulare: Wie Funktion in Wenn Funktion schachteln |
4 |
Pumpanickel |
314 |
26. März 2009, 14:02 Gast  |
 |
Access Programmierung / VBA: Bericht über Formular aufrufen: Parameter für 4 Abfragen |
15 |
Kaji |
6516 |
14. Aug 2008, 13:46 Perrick  |
 |
Access Tabellen & Abfragen: 2 Abfragen verknüpfen |
7 |
Nik32 |
1224 |
15. Feb 2008, 17:47 Nik32  |
 |
Access Tabellen & Abfragen: Anzahl / Count funktion |
1 |
Alca |
1232 |
12. Feb 2008, 16:22 KlausMz  |
 |
Access Berichte: Wenn Funktion mit mehreren Textfeldern. |
2 |
Gast |
317 |
14. Aug 2007, 09:59 Gast  |
 |
Access Formulare: Abfragen / Filter über das Kombinationsfeld auswählen |
0 |
Fergy |
513 |
01. Mai 2007, 13:28 Fergy  |
 |
Access Formulare: Globale Funktion + Textfeld im aktiven Formular |
9 |
Stefan1982 |
2252 |
03. Nov 2006, 17:22 rita2008  |
 |
Access Programmierung / VBA: Einen String Case-Sensitive abfragen (Groß-/Kleinschreibung) |
2 |
Hyphistos |
4233 |
07. Aug 2006, 14:02 Hyphistos  |
 |
Access Tabellen & Abfragen: Fallunterscheidungen in Abfragen |
1 |
JimmyT |
412 |
20. Jul 2006, 17:23 Schweinswal  |
| |
|