请帮我解释一下,为什么会发生这种情况,之后解决方案应该很简单:)
我有两种形式,显示不同的数据。
Form_1:有一个组合框(其中有名称),您可以在其中选择要查看的公司,更新后的宏搜索记录([ID]
字段),并显示信息。 (更复杂的是,此[ID]
字段被隐藏,并用于显示实际信息的子表单。)
表单_2:这是一个连续的表单,每个记录与Form_1中显示的公司有关,但是几个记录可以属于一个公司。每个记录都有一个按钮,用于打开Form_1,并连接信息。按钮的vba代码是:
Private Sub Button_Click()
DoCmd.OpenForm "Form_1", , , "[ID] = " & Me![ID]
End Sub
在代码中,使用相同的[ID]
字段,如上所述:隐藏并用于子表单。
两种形式都按需工作,我很满意。
但是在使用按钮从Form_2打开Form_1后,组合框仍然为空(实际上我不需要填充它),如果我想用它来搜索其他项目,它就不会#39 ;工作,好像没有加载宏。显示名称列表,我可以单击它们中的任何一个,但[ID]
字段不会刷新(当然也不会刷新子表单)。我必须关闭表单,然后从侧面列表再次打开它。
为什么宏停止工作? 我应该改变什么才能使它发挥作用?
感谢您的帮助!
答案 0 :(得分:0)
Form1已将过滤器设置为特定键值,因此尝试查找并重新定位表单的当前记录将失败,而不会显式重置过滤器。
OpenForm命令的Where条件不会更改表单的Record Source属性,也不会执行简单的搜索/重新定位。相反,它应用表单过滤器:
class ApplicationSecurity extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource source;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/uploadfiles/**").access("hasRole('ADMIN')");
http.authorizeRequests().antMatchers("/fonts/**").permitAll();
http.authorizeRequests().antMatchers("/").permitAll();
http.authorizeRequests().anyRequest().fullyAuthenticated().and()
.formLogin().loginPage("/login").defaultSuccessUrl("/").failureUrl("/login?error").permitAll().and()
.logout().permitAll();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(source).
usersByUsernameQuery("select username,password,enabled from users where username=?").
authoritiesByUsernameQuery("select username, role from user_roles where username=?");
}
}
此状态以多种方式表示
当然,所有这些指标都是隐藏的,所以你只需要知道每个命令和参数的作用。
可能的解决方案: