相关疑难解决方法(0)

为什么对于新的非空记录集,bof/eof 之一偶尔会成立

 set recordsetname = databasename.openrecordset(SQLString)
    if recordsetname.bof <> true and recordsetname.eof <> true then
    'do something
    end if
Run Code Online (Sandbox Code Playgroud)

2个问题:

  1. 上面的测试可能会错误地评估为 false,但只有极少数(我的代码中潜伏着一个测试,今天它失败了,我相信这是 5 年日常使用中的第一次 - 这就是我发现它的方式)。为什么对于非空记录集,bof/eof 之一偶尔会成立。这种情况似乎非常罕见,我想知道为什么会发生这种情况。

  2. 这是一个万无一失的替代品吗:

    if recordsetname.bof <> true or recordsetname.eof <> true then
    
    Run Code Online (Sandbox Code Playgroud)

编辑以添加代码详细信息:

客户有订单,每个订单以一个BeginOrder商品开始,以一个商品结束EndOrder,中间是订单中的商品。

SQL 是:

' ids are autoincrement long integers '
SQLString = "select * from Orders where type = OrderBegin or type = OrderEnd"           

Dim OrderOpen as Boolean
OrderOpen = False

Set rs = db.Openrecordset(SQLString)
If rs.bof <> True And …
Run Code Online (Sandbox Code Playgroud)

ms-access dao ado

3
推荐指数
1
解决办法
4244
查看次数

在MS Access中,是否可以执行多个查询?

我正在尝试执行如下语句:

UPDATE table1 SET name="Joe" WHERE id='1'; UPDATE table2 SET name="Bob" WHERE id='2'

但是,在执行查询时,我得到:

Microsoft JET数据库引擎错误'80040e14'在SQL语句结束后找到的字符.

但是,当我单独执行语句时,它可以工作.

所以我猜在使用Microsoft Access/JET数据库引擎时,绝对没有办法在单个SQL语句中执行多个查询?

database jet

1
推荐指数
1
解决办法
3529
查看次数

标签 统计

ado ×1

dao ×1

database ×1

jet ×1

ms-access ×1