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