Access组合框RowSource查询无记录时弹出参数输入框问题求助
解决Access组合框无记录时弹出参数输入的问题
你可以通过修改行来源的SQL语句,让查询在无记录时返回一个空行,避免触发参数输入请求,同时不影响手动输入地址的功能。推荐使用以下两种写法:
写法一:仅在无记录时添加空行
这种写法会在原查询有记录时正常返回地址列表,无记录时返回一个空选项:
SELECT DISTINCT qryRecentBookings.[DropAddress] FROM qryRecentBookings UNION ALL SELECT NULL AS DropAddress FROM (SELECT TOP 1 * FROM MSysObjects) AS Dummy WHERE NOT EXISTS (SELECT * FROM qryRecentBookings)
原理:通过NOT EXISTS判断原查询是否有记录,无记录时从系统表MSysObjects取一条虚拟记录生成空地址,确保组合框始终有数据源,不会弹出参数框。
写法二:始终保留空行(简化版)
如果不介意列表里始终显示一个空选项,也可以用更简洁的写法:
SELECT DISTINCT qryRecentBookings.[DropAddress] FROM qryRecentBookings UNION ALL SELECT NULL AS DropAddress FROM (SELECT TOP 1 * FROM MSysObjects) AS Dummy
这种写法不管原查询有没有记录,都会在列表末尾加一个空选项,同样能避免参数输入问题,且不影响手动输入。
注意:MSysObjects是Access自带的系统表,用来确保UNION部分能返回至少一行,如果你不想用系统表,也可以自己创建一个只有一行的临时表替代。
内容的提问来源于stack exchange,提问作者Apriumben
相关产品推荐
相关产品推荐

