Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Momo85 am April 01, 2011, 10:15:43

Titel: abfrage meldet typumwandlungsfehler
Beitrag von: Momo85 am April 01, 2011, 10:15:43
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;
Titel: Re: abfrage meldet typumwandlungsfehler
Beitrag von: Hondo am April 01, 2011, 10:32:07
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
Titel: Re: abfrage meldet typumwandlungsfehler
Beitrag von: database am April 01, 2011, 10:33:47
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

Titel: Re: abfrage meldet typumwandlungsfehler
Beitrag von: Momo85 am April 01, 2011, 11:04:54
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 :)
Titel: Re: abfrage meldet typumwandlungsfehler
Beitrag von: Hondo am April 01, 2011, 11:31:58
Hallo,
wenn du Dlookup aus der Abfrage herausnimmst, und statt dessen Joins verwendest, wirst du sehen dass dies wesentlich schneller gehen wird.

Andreas