Vb.net 检查MS Access中是否存在已保存的查询
我需要使用OleDb在VB.net程序中创建一个已保存的MS Access查询。但在创建查询之前,我需要检查数据库中是否已经存在该查询。如果它确实存在,我想更新它。如何使用OleDb在MS Access中检查现有查询?“如果确实存在查询,我想更新它。” 根据评论讨论,我知道您将在OleDB连接上执行一条语句来创建查询。(在Access术语中,是Vb.net 检查MS Access中是否存在已保存的查询,vb.net,ms-access,oledb,Vb.net,Ms Access,Oledb,我需要使用OleDb在VB.net程序中创建一个已保存的MS Access查询。但在创建查询之前,我需要检查数据库中是否已经存在该查询。如果它确实存在,我想更新它。如何使用OleDb在MS Access中检查现有查询?“如果确实存在查询,我想更新它。” 根据评论讨论,我知道您将在OleDB连接上执行一条语句来创建查询。(在Access术语中,是QueryDef对象。) 当查询不存在时,执行成功,您就完成了 如果查询确实存在,执行尝试将抛出一个错误,您将在VB.Net代码中捕获该错误。此时,您需要
QueryDef
对象。)
当查询不存在时,执行成功,您就完成了
如果查询确实存在,执行尝试将抛出一个错误,您将在VB.Net
代码中捕获该错误。此时,您需要修改现有查询。不幸的是,我不知道用OleDb修改现有查询的任何方法。但是,您可以放弃现有查询并重新执行语句以创建新版本
您可以执行Access DDL语句以放弃现有查询。这两个版本中的一个可以满足您的需要:
在此处下拉查看您的查询名称代码>
将过程YourQueryName放到此处代码>
SELECT
查询。第二种是Access所称的“操作查询”:INSERT
<代码>更新<代码>删除。我记得,“生成表”查询(从…
选择到新表)也属于第二类(过程)(检查以确认是否需要)。我认为带有参数的SELECT
查询也属于第二类(如果需要,请检查)
注意:这只是一个建议的方向。我不能为你提供VB.Net
code。我希望您知道或能够想出如何在VB.Net
中执行所需的错误处理。您是否排除了尝试创建Access查询并在错误已经存在时捕获错误的可能性?如果您要在VBA中创建查询,您可以始终在查询定义之前的行上放置On error Resume Next
。然后在查询之后,将放在Error上转到Err\u Handler
。显然,Err_Handler可以用不同的名称命名。这只会在查询不存在时创建查询,如果查询确实存在,则不会生成错误。@HansUp我从未做过任何错误捕获。你能举个简单的例子吗?对不起,我不懂VB.Net。你试过林格的建议吗?我看过.Net
使用try
和catch
的代码。据我所知,视图和过程都是select
语句。Access如果不使用任何参数(如表单控件的值),则称其为视图,如果使用,则称其为过程。我喜欢放弃现有查询并创建新查询的想法。解决可能出现的“不存在”错误要比找出如何更改查询更容易。@HansUp这看起来是一个解决方法!我要开始做了!谢谢