サブフォーム (連続フォーム モード) にアクセスするメインフォームがあります。サブフォームのソースは、メインフォームのコンボボックスから値を取得する基準パラメーターを持つクエリです。
メインフォームを開くと、コンボボックスは空で、サブフォームにはすべてのレコードが表示されます。コンボボックスで値を選択し、次のコード行のみを含む更新ボタンをクリックするme.subformname.form.requery
と、正常に動作し、サブフォームが再クエリを実行して更新し、適切なレコードを表示します。コンボボックスの値を変更して更新ボタンを押すと、サブフォームが再クエリ/更新されます。
問題は、コンテキストメニューを使用し(Right Click > "Equals to...")
てサブフォームをフィルタリングすると、それに応じてサブフォームがフィルタリングされ、サブフォームがフィルタリングされていないフィルタを削除すること(Right Click > "Clear filter from...")
ですが、コンボボックスの値を変更して[更新]ボタンを押すと、サブフォームは更新も再クエリもしません。
バックグラウンドでクエリを開いても同じです。フィルタリングすると、更新が機能しなくなります。
これはサブフォーム クエリです。
SELECT qry_listatoatesesizarile.idsesizare,
branduri.numebrand,
locatii.fsname,
categoriiechipamente.categorieechipament,
echipamente.codechipament,
qry_listatoatesesizarile.nrsesizare,
qry_listatoatesesizarile.datasesizare,
qry_listatoatesesizarile.datasla,
qry_listatoatesesizarile.detalii,
qry_listatoatesesizarile.stare,
Dlookup("[stareraport]", "listastarirapoarte",
"[idstareraport]=" & [stare]) AS
StareS,
echipe.denumireechipa
AS EchipaLocatie,
qry_listarapoarte.nrraport,
qry_listarapoarte.datainceput,
qry_listarapoarte.datafinalizat,
qry_listarapoarte.lucrariefectuate,
qry_listarapoarte.cauzadefectiune,
qry_listasesizariprogramate.denumireechipa
AS EchipaProgramata,
Iif([stare] = 1
OR [stare] = 3
OR [stare] = 0, Datediff("s", Cdate([datasla]), Now()),
Datediff("s", Cdate([datasla]), Cdate([datafinalizat])))
AS DiferentaSLASecs,
Secs2dhms([diferentaslasecs])
AS DiferentaSLA,
Iif([diferentaslasecs] < 0, true, false)
AS InSLA,
Format([datasesizare], "mmmm yyyy")
AS [Month],
Iif([stare] = 2
OR [stare] = 4, Iif([diferentaslasecs] < 0, "inchis in sla",
"inchis in afara sla"),
Iif([diferentaslasecs] < 0, "deschis in sla", "deschis in afara sla"))
AS
Situatie,
locatii.clientfrigorifice,
clienti.client
FROM clienti
INNER JOIN (((((branduri
INNER JOIN ((qry_listatoatesesizarile
INNER JOIN echipamente
ON
qry_listatoatesesizarile.idechipament =
echipamente.idechipament)
INNER JOIN locatii
ON echipamente.idlocatie =
locatii.idlocatie)
ON branduri.idbrand = locatii.idbrand)
INNER JOIN categoriiechipamente
ON echipamente.idcategorieechipament =
categoriiechipamente.idcategorieechipament)
INNER JOIN echipe
ON qry_listatoatesesizarile.idechipa =
echipe.idechipa)
LEFT JOIN qry_listasesizariprogramate
ON qry_listatoatesesizarile.idsesizare =
qry_listasesizariprogramate.idsesizare)
LEFT JOIN qry_listarapoarte
ON qry_listatoatesesizarile.idraport =
qry_listarapoarte.idraport)
ON clienti.idclient = locatii.clientfrigorifice
WHERE ( ( ( Format([datasesizare], "mmmm yyyy") ) LIKE Iif(Nz(
[forms] ! [controlsla] ! [cb_lunaverificata], "") = "", "*",
[forms] ! [controlsla] ! [cb_lunaverificata]) )
AND ( ( locatii.clientfrigorifice ) LIKE Iif(Nz(
[forms] ! [controlsla] ! [cb_client]
,
"") = "", "*",
[forms] ! [controlsla] ! [cb_client]) ) );