Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

abfrage meldet typumwandlungsfehler

Begonnen von Momo85, April 01, 2011, 10:15:43

⏪ vorheriges - nächstes ⏩

Momo85

Hallo zusammen,

ich arbeite seit 2 Jahren mit einer Datenbank, die auch immer wunderbar funktioniert hat. Neuerdings bekomme ich bei einer Abfrage immer einen Typumwandlungsfehler gemeldet, auch wenn die beiden verknüpften Felder der Tabellen dieselben Typen haben (und es auch schon immer gehabt haben).
Tabelle 1 hat die "Rohdaten", aus Tabelle 2 "Intervalle" sollen dann Nummern auch jeweils einem Intervall gesucht werden und der dazugehörige Konzern eingetragen werden.

SELECT [00_tbl_Rohdaten].Monat, [00_tbl_Rohdaten].[Tag], [00_tbl_Rohdaten].[Nr], [00_tbl_Rohdaten].Empfänger, [00_tbl_Rohdaten].Straße, [00_tbl_Rohdaten].PLZ, [00_tbl_Rohdaten].Ort, DLookUp("Konzern","00_tbl_Intervalle",[Nr] & "between[Nrvon]and[Nrbis]") AS Konzern, DLookUp("Filiale","00_tbl_Intervalle",[Nr] & "between[Nrvon]and[Nrbis]") AS Filiale, [00_tbl_Rohdaten].Ware INTO 01_tbl_Zuordnung_Konzern
FROM 00_tbl_Rohdaten;

Hondo

#1
Hallo,
Aliase sorgen für bessere Leserlichkeit:

SELECT R.Monat, R.Tag, R.Nr, R.Empfänger, R.Straße, R.PLZ, R.Ort,
DLookUp("Konzern","00_tbl_Intervalle",[Nr] & "between[Nrvon]and[Nrbis]") AS Konzern,
DLookUp("Filiale","00_tbl_Intervalle",[Nr] & "between[Nrvon]and[Nrbis]") AS Filiale,
R.Ware
INTO 01_tbl_Zuordnung_Konzern
FROM 00_tbl_Rohdaten As R


Aber das macht den Code nicht besser.
1. Tag ist ein reserviertes Wort
2. Umlaute wie ä, ß sollte man vermeiden
3. Dlookup in einer Abfrage ist wirklich Sch... ade, diese sollten durch Joins auf 00_tbl_Intervalle ersetzt werden
4. Konsequent Aliase einsetzen wo notwendig um die Leserlichkeit zu erhöhen.

Wo es im einzelnen hakt kann ich nicht sagen, es würde mich sowieso wundern wenn dieses Kontrukt mal korrekt funktioniert haben sollte.

Gruß Andreas

database

Hallo,

könnte mir vorstellen, dass das nicht ganz richtig ist:
DLookUp("Konzern","00_tbl_Intervalle",[Nr] & "between[Nrvon]and[Nrbis]") AS Konzern

DLookUp("Konzern","00_tbl_Intervalle",[Nr] & " between " & [Nrvon] & " and " & [Nrbis]") AS Konzern

und

DLookUp("Filiale","00_tbl_Intervalle",[Nr] & "between[Nrvon]and[Nrbis]") AS Filiale

DLookUp("Filiale","00_tbl_Intervalle",[Nr] & " between " & [Nrvon] & " and " & [Nrbis]") AS Filiale


Momo85

Danke schon mal für die Antworten :)
@ Hondo: ja, es hat tatsächlich funktioniert *g*
@ database: habe den code so abgewandelt, wie beschrieben, hat nicht geklappt und dann ein bisschen ausprobiert... zumindest arbeitet er jetzt shcon seit 10 min daran... als die abfrage noch gefunzt hat, hat er dafür immer ca. ne stunde gebraucht... ich werde berichten :)

Hondo

Hallo,
wenn du Dlookup aus der Abfrage herausnimmst, und statt dessen Joins verwendest, wirst du sehen dass dies wesentlich schneller gehen wird.

Andreas