![]() Mailinglisten-Archive |
Hallo allerseits, folgendes Problem: Die Abfrage1 (siehe unten) in Access2K (Microsoft-SQL) funktioniert (sorry f�r diesen langen Salat, aber so sieht sie halt aus...). Die ganzen Klammern bei WHERE werden von Access eingef�gt. Zum Verst�ndnis: es werden f�r einen Serienbrief Personen selektiert, nebst den damit verkn�pften Adressen. Dazu noch Firma-Anrede und Person-Anrede sowie Land jeweils aus verkn�pften Tabellen. Die Selektion wird dann noch nach einem Kriterium "Vorgang" (wiederum aus einer verkn�pften Tabelle) eingeschr�nkt. Wenn ich die Abfrage nun bei WHERE noch um eine weitere Einschr�nkung erg�nze (siehe unten als "Abfrage2") funktioniert sie _nicht_ mehr. Es kommt folgende Fehlermeldung von myODBC: "Unbekannte Tabelle 'firma_anrede' in field list. (#1109)" (Logfile-Auszug siehe unten) Bei manchen Aufrufen (Abfrage unver�ndert!) wird auch beanstandet, da� die Tabelle 'personen' unbekannt ist. Ich steh hier auf dem Schlauch. Die bem�kelten Tabellen existieren. => Wer hat eine Idee, woran es liegen k�nnte, d.h. warum die Tabellen nicht gefunden werden? Ulrich ### Abfrage 1 (funktioniert) SELECT personen.PersonNr, personen.PersonAnredeNr, person_anrede.PersonAnrede, person_anrede.personanrede2, person_anrede.personanredekurz, personen.Titel, personen.Vorname, IIf ([personen].[nachname]="*","",[personen].[nachname]) AS Nachname, personen.Serienbrief_Sperre, personen.LoeschVM, personen.Bemerkungen, personen.Serienbrief_Zusatz, Adressen.AdrNr, firma_anrede.Firma_Anrede, Adressen.Firma1, Adressen.Firma2, IIf([firma_anrede.Firma_Anrede] ="Herr","Herrn",[firma_anrede.Firma_Anrede]) & IIf(IsNull ([firma_anrede.Firma_Anrede]),""," ") & [Firma1] & " " & [Firma2] AS Firma, IIf(IsNull([Sammel_PLZ]),IIf(IsNull([PF_PLZ]),[Strasse],"Postfach " & [Postfach]),"") AS STR, [Regionen].[StaatKfz] & "-" & IIf(IsNull ([Sammel_PLZ]),IIf(IsNull([PF_PLZ]),[StrPLZ],[PF_PLZ]),[Sammel_PLZ]) AS PLZ, regionen.StaatKfz, Adressen.Ort, IIf(IsNull([PF_PLZ]) Or IsNull ([Sammel_PLZ]),"",[Ortsteil]) AS Ortsteil2, Adressen.Serienbrief_Sperre, Adressen.LoeschVM, Person_Vorgang.LoeschVM, [person_anrede].[personanrede2] & " " & IIf((IsNull([Titel])),"",[Titel] & " ") & IIf((IsNull ([Vorname])),"",[Vorname] & " ") & [Nachname] & IIf((IsNull ([Serienbrief_Zusatz])),""," " & [Serienbrief_Zusatz]) AS NameAufbereitet, [person_anrede].[personanrede] & " " & IIf((IsNull([Titel])),"",[Titel] & " ") & IIf((IsNull([Vorname])),"",[Vorname] & " ") & [Nachname] & IIf ((IsNull([Serienbrief_Zusatz])),""," " & [Serienbrief_Zusatz]) AS NameAufbereitet2, [person_anrede].[personanrede2] & " " & IIf((IsNull ([Titel])),"",[Titel] & " ") & IIf((IsNull([Vorname])),"",[Vorname] & " ") & [Nachname] AS NameAufbereitetOhneZusatz, [person_anrede].[personanrede] & " " & IIf((IsNull([Titel])),"",[Titel] & " ") & IIf((IsNull ([Vorname])),"",[Vorname] & " ") & [Nachname] AS NameAufbereitetOhneZusatz2, Person_Vorgang.VorgangsNr, IIf ([firma_anrede.Firma_Anrede]="Herr","Herrn",[firma_anrede.Firma_Anrede]) & IIf(IsNull([firma_anrede.Firma_Anrede]),""," ") & [Firma1] AS Firma1_aufbereitet FROM person_anrede RIGHT JOIN (firma_anrede RIGHT JOIN (regionen INNER JOIN (Person_Vorgang INNER JOIN (Adressen INNER JOIN personen ON Adressen.AdrNr = personen.AdrNr) ON Person_Vorgang.PersonNr = personen.PersonNr) ON regionen.RegionNr = Adressen.RegionNr) ON firma_anrede.Firma_Anrede_Nr = Adressen.Firma_Anrede) ON person_anrede.PersonAnredeNr = personen.PersonAnredeNr WHERE (((personen.Serienbrief_Sperre)=False) AND ((personen.LoeschVM) =False) AND ((Adressen.Serienbrief_Sperre)=False) AND ((Adressen.LoeschVM) =False) AND ((Person_Vorgang.LoeschVM)=False)); ### Abfrage 2 (funktioniert nicht mehr): SELECT personen.PersonNr, personen.PersonAnredeNr, person_anrede.PersonAnrede, person_anrede.personanrede2, person_anrede.personanredekurz, personen.Titel, personen.Vorname, IIf ([personen].[nachname]="*","",[personen].[nachname]) AS Nachname, personen.Serienbrief_Sperre, personen.LoeschVM, personen.Bemerkungen, personen.Serienbrief_Zusatz, Adressen.AdrNr, firma_anrede.Firma_Anrede, Adressen.Firma1, Adressen.Firma2, IIf([firma_anrede.Firma_Anrede] ="Herr","Herrn",[firma_anrede.Firma_Anrede]) & IIf(IsNull ([firma_anrede.Firma_Anrede]),""," ") & [Firma1] & " " & [Firma2] AS Firma, IIf(IsNull([Sammel_PLZ]),IIf(IsNull([PF_PLZ]),[Strasse],"Postfach " & [Postfach]),"") AS STR, [Regionen].[StaatKfz] & "-" & IIf(IsNull ([Sammel_PLZ]),IIf(IsNull([PF_PLZ]),[StrPLZ],[PF_PLZ]),[Sammel_PLZ]) AS PLZ, regionen.StaatKfz, Adressen.Ort, IIf(IsNull([PF_PLZ]) Or IsNull ([Sammel_PLZ]),"",[Ortsteil]) AS Ortsteil2, Adressen.Serienbrief_Sperre, Adressen.LoeschVM, Person_Vorgang.LoeschVM, [person_anrede].[personanrede2] & " " & IIf((IsNull([Titel])),"",[Titel] & " ") & IIf((IsNull ([Vorname])),"",[Vorname] & " ") & [Nachname] & IIf((IsNull ([Serienbrief_Zusatz])),""," " & [Serienbrief_Zusatz]) AS NameAufbereitet, [person_anrede].[personanrede] & " " & IIf((IsNull([Titel])),"",[Titel] & " ") & IIf((IsNull([Vorname])),"",[Vorname] & " ") & [Nachname] & IIf ((IsNull([Serienbrief_Zusatz])),""," " & [Serienbrief_Zusatz]) AS NameAufbereitet2, [person_anrede].[personanrede2] & " " & IIf((IsNull ([Titel])),"",[Titel] & " ") & IIf((IsNull([Vorname])),"",[Vorname] & " ") & [Nachname] AS NameAufbereitetOhneZusatz, [person_anrede].[personanrede] & " " & IIf((IsNull([Titel])),"",[Titel] & " ") & IIf((IsNull ([Vorname])),"",[Vorname] & " ") & [Nachname] AS NameAufbereitetOhneZusatz2, Person_Vorgang.VorgangsNr, IIf ([firma_anrede.Firma_Anrede]="Herr","Herrn",[firma_anrede.Firma_Anrede]) & IIf(IsNull([firma_anrede.Firma_Anrede]),""," ") & [Firma1] AS Firma1_aufbereitet FROM person_anrede RIGHT JOIN (firma_anrede RIGHT JOIN (regionen INNER JOIN (Person_Vorgang INNER JOIN (Adressen INNER JOIN personen ON Adressen.AdrNr = personen.AdrNr) ON Person_Vorgang.PersonNr = personen.PersonNr) ON regionen.RegionNr = Adressen.RegionNr) ON firma_anrede.Firma_Anrede_Nr = Adressen.Firma_Anrede) ON person_anrede.PersonAnredeNr = personen.PersonAnredeNr WHERE (((personen.Serienbrief_Sperre)=False) AND ((personen.LoeschVM) =False) AND ((Adressen.Serienbrief_Sperre)=False) AND ((Adressen.LoeschVM) =False) AND ((Person_Vorgang.LoeschVM)=False) AND ((Person_Vorgang.VorgangsNr)=800)); #### Auszug aus dem Logfile von myODBC: MSACCESS 101-111 ENTER SQLExecDirectW HSTMT 090C5078 WCHAR * 0x15F93E18 [ -3] "SELECT `person_anrede`.`PersonAnrede` ,`person_anrede`.`personanrede2` ,`person_anr ede`.`personanredekurz` ,`firma_anrede`.`Firma_Anrede` ,`regionen`.`StaatKfz ` ,`person_vorgang`.`VorgangsNr` ,`person_vorgang`.`LoeschVM` ,`adressen`.`A drNr` ,`adressen`.`Firma1` ,`adressen`.`Firma2` ,`adressen`.`Strasse` ,`adre ssen`.`StrPLZ` ,`adressen`.`Ortsteil` ,`adressen`.`Ort` ,`adressen`.`Postfac h` ,`adressen`.`PF_PLZ` ,`adressen`.`Sammel_PLZ` ,`adressen`.`Serienbrief_Sp erre` ,`adressen`.`LoeschVM` ,`personen`.`PersonNr` ,`personen`.`Vorname` ,` personen`.`Nachname` ,`personen`.`PersonAnredeNr` ,`personen`.`Titel` ,`pers onen`.`Serienbrief_Sperre` ,`personen`.`LoeschVM` ,`personen`.`Bemerkungen` ,`personen`.`Serienbrief_Zusatz` FROM `person_vorgang`,`regionen`,{oj `adressen` LEFT OUTER JOIN `person_anrede` ON (`adressen`.`Firma_Anrede` = `firma_anrede`.`Firma_Anrede_Nr` ) } WHERE (((((`adressen`.`Serienbrief_Sperre` = 0) AND (`adressen`.`LoeschVM` = 0) ) AND (`adressen`.`AdrNr` = `personen`.`AdrNr` ) ) AND ((((`person_vorgang`.`LoeschVM` = 0) AND (`person_vorgang`.`VorgangsNr` = 800 ) ) AND (`person_vorgang`.`PersonNr` = `personen`.`PersonNr` ) ) AND ((`personen`.`Serienbrief_Sperre` = 0) AND (`personen`.`LoeschVM` = 0) ) ) ) AND (`regionen`.`RegionNr` = `adressen`.`RegionNr` ) ) \ 0" SDWORD -3 MSACCESS 101-111 EXIT SQLExecDirectW with return code -1 (SQL_ERROR) HSTMT 090C5078 WCHAR * 0x15F93E18 [ -3] "SELECT `person_anrede`.`PersonAnrede` ,`person_anrede`.`personanrede2` ,`person_anr ede`.`personanredekurz` ,`firma_anrede`.`Firma_Anrede` ,`regionen`.`StaatKfz ` ,`person_vorgang`.`VorgangsNr` ,`person_vorgang`.`LoeschVM` ,`adressen`.`A drNr` ,`adressen`.`Firma1` ,`adressen`.`Firma2` ,`adressen`.`Strasse` ,`adre ssen`.`StrPLZ` ,`adressen`.`Ortsteil` ,`adressen`.`Ort` ,`adressen`.`Postfac h` ,`adressen`.`PF_PLZ` ,`adressen`.`Sammel_PLZ` ,`adressen`.`Serienbrief_Sp erre` ,`adressen`.`LoeschVM` ,`personen`.`PersonNr` ,`personen`.`Vorname` ,` personen`.`Nachname` ,`personen`.`PersonAnredeNr` ,`personen`.`Titel` ,`pers onen`.`Serienbrief_Sperre` ,`personen`.`LoeschVM` ,`personen`.`Bemerkungen` ,`personen`.`Serienbrief_Zusatz` FROM `person_vorgang`,`regionen`,{oj `adressen` LEFT OUTER JOIN `person_anrede` ON (`adressen`.`Firma_Anrede` = `firma_anrede`.`Firma_Anrede_Nr` ) } WHERE (((((`adressen`.`Serienbrief_Sperre` = 0) AND (`adressen`.`LoeschVM` = 0) ) AND (`adressen`.`AdrNr` = `personen`.`AdrNr` ) ) AND ((((`person_vorgang`.`LoeschVM` = 0) AND (`person_vorgang`.`VorgangsNr` = 800 ) ) AND (`person_vorgang`.`PersonNr` = `personen`.`PersonNr` ) ) AND ((`personen`.`Serienbrief_Sperre` = 0) AND (`personen`.`LoeschVM` = 0) ) ) ) AND (`regionen`.`RegionNr` = `adressen`.`RegionNr` ) ) \ 0" SDWORD -3 DIAG [S1000] [TCX][MyODBC]Unbekannte Tabelle 'firma_anrede' in field list. (1109) -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive