При использовании запросов MS Access я сталкиваюсь с тем, что текст команды объекта запроса удаляется через произвольные интервалы.
Запрос может выполняться без перебоев в течение нескольких недель или месяцев. Пользователи получают к нему доступ только с помощью простой кнопки с базовыми функциями c DoCmd.TransferSreadsheet
.
Через случайные интервалы, предположительно при открытии базы данных, текст команды некоторых запросов сбрасывается до значения по умолчанию SELECT;
что вы получаете при создании нового запроса.
Во всех случаях общим является то, что
- sql довольно длинный
- запрос был написан в sql (= не создан с использованием GUI) или был создан в GUI и позднее изменен в sql
Короче
- запросы имеют правильный синтаксис
- никто не связывается с запросами в редакторе запросов
- это произошло в нескольких разных базах данных, так что это не похоже на спецификацию базы данных c проблема
- нет vba-кода, который бы вмешивался в определения запросов
Вот пример запроса (созданного через пользовательский интерфейс моими коллегами, возможно, с небольшими изменениями в коде sql ).
SELECT Population.StatusMA, Population.PNr, Population.BKey, Population.Nachname, Population.Vorname, d_Zuordnung.Konzernbereich, d_Zuordnung.Geschaeftsbereich, d_Zuordnung.Bereich, d_Zuordnung.Abteilung, d_Zuordnung.Team, Population.BG, Population.FS, d_Geld.Gehaltsart, d_Geld.Anz_Gehalt, d_Geld.Jahresgehalt, d_Geld.Monatslohn, d_Geld.Stundenlohn, d_Geld.Garantiertes_EK, d_Geld.Vereinbartes_EK, [Jahresgehalt]/[Wert] AS [Compa-Ratio], Population.Geburtsdatum, Population.Alter, Population.Altersklasse, Population.Nation, Population.Spr, Population.Geschlecht, Population.Eintritt, Population.DJ, Population.Austritt, Population.Austrittsgrund, Population.PerGru, Population.Vertragsarttext, Population.Jobtext, t_Position.POS_Langtext, d_Zuordnung.GA, d_Zuordnung.Generalagentur, d_Zuordnung.Haus, d_Zuordnung.Buero, d_Zuordnung.Arbeitsort, d_Zuordnung.VG_PNr, d_Zuordnung.Vorgesetzter, d_Zuordnung.BusinessPartner, Sum(IIf([LoA]="V0B" Or [LoA]="SBK",[TOT])) AS [SP/LE lfdJahr], Sum(IIf([LoA]="SJV",[TOT])) AS [LV lfdJahr], Sum(IIf([LoA]="SJP",[TOT])) AS [PP lfdJahr]
FROM (((((((Population LEFT JOIN d_Zuordnung ON Population.PNr = d_Zuordnung.Z_PNr) LEFT JOIN d_Adresse ON Population.PNr = d_Adresse.A_PNr) LEFT JOIN d_Geld ON Population.PNr = d_Geld.G_PNr) LEFT JOIN d_OrgPosJob ON Population.PNr = d_OrgPosJob.F_PNr) LEFT JOIN t_Position ON d_OrgPosJob.F_POS = t_Position.POS_Nummer) LEFT JOIN 0_bur_infopool ON d_Zuordnung.NL = [0_bur_infopool].BURNR) LEFT JOIN MedianFS ON (Population.SobaCH = MedianFS.SoBaCH) AND (Population.FS = MedianFS.FS)) LEFT JOIN PSIANE2_aktuell ON Population.PNr = PSIANE2_aktuell.Stammnr
WHERE (((IIf([Statusma]="Zukünftig",[z_Vertragsart],[vertragsart])) Like "a*" Or (IIf([Statusma]="Zukünftig",[z_Vertragsart],[vertragsart])) Like "d*" Or (IIf([Statusma]="Zukünftig",[z_Vertragsart],[vertragsart])) Like "m*" Or (IIf([Statusma]="Zukünftig",[z_Vertragsart],[vertragsart])) In ("H1","H2")) AND ((IIf([Z_Status]=2,"Zukünftig",IIf([StatusMA]="Aktiv","Aktiv","Inaktiv"))) Like [StatusMA]) AND ((IIf([A_Status]=2,"Zukünftig",IIf([StatusMA]="Aktiv","Aktiv","Inaktiv"))) Like [StatusMA]) AND ((IIf([F_Status]=2,"Zukünftig",IIf([StatusMA]="Aktiv","Aktiv","Inaktiv"))) Like [StatusMA]) AND ((IIf([G_Status]=2,"Zukünftig",IIf([StatusMA]="Aktiv","Aktiv","Inaktiv"))) Like [StatusMA]))
GROUP BY Population.StatusMA, Population.PNr, Population.BKey, Population.Nachname, Population.Vorname, d_Zuordnung.Konzernbereich, d_Zuordnung.Geschaeftsbereich, d_Zuordnung.Bereich, d_Zuordnung.Abteilung, d_Zuordnung.Team, Population.BG, Population.FS, d_Geld.Gehaltsart, d_Geld.Anz_Gehalt, d_Geld.Jahresgehalt, d_Geld.Monatslohn, d_Geld.Stundenlohn, d_Geld.Garantiertes_EK, d_Geld.Vereinbartes_EK, [Jahresgehalt]/[Wert], Population.Geburtsdatum, Population.Alter, Population.Altersklasse, Population.Nation, Population.Spr, Population.Geschlecht, Population.Eintritt, Population.DJ, Population.Austritt, Population.Austrittsgrund, Population.PerGru, Population.Vertragsarttext, Population.Jobtext, t_Position.POS_Langtext, d_Zuordnung.GA, d_Zuordnung.Generalagentur, d_Zuordnung.Haus, d_Zuordnung.Buero, d_Zuordnung.Arbeitsort, d_Zuordnung.VG_PNr, d_Zuordnung.Vorgesetzter, d_Zuordnung.BusinessPartner
ORDER BY Population.PNr;