Tag Archive: ADO

Oct 02

解决用 VB 中用 ADO 访问 Access 数据库时 SQL 查询处理 Null 值的问题

程序的环境是 VB6 + ADO + Access,在用 SQL 语句查询时,希望把两个字段合并成一个字段,但其中一个字段 Null 值直接导致两个字段合并后也变成了 Null 值。之前只能用 VB 中的 IsNull 分别处理两个字段的值,前段时间想尝试用 SQL 语句直接解决,确一直未能成功, 差点放弃之际找到了答案,总结如下: 目的: 实现 Select ( 字段1 +  字段2 ) As A 问题: 字段2 如果为空值 (Null),则 不论字段1 的值是否为空,A 的值为空值 (Null) 解决: 1、在 Access 中,可使用 Nz(字段, 为空时的值) 来处理 2、在 VB6 + ADO + Access 中,则使用 iff(isNull(字段), 为空时的值,不为空时的值) 来处理

Sep 11

解决 ADO 打开 RecordSet 的 80004005 错误

整整折腾了一天,终于搞定了 ADO 的 80004005 错误,特写出来做个分享。 错误描述: 在程序中使用 ADO 对象连接 Access 数据库进行查询时,Recordset 的 Open 方法 Select 查询报错,显示为 Run-time error ‘-2147467259(80004005)’: Method ‘Open’ of object ‘_Recordset’ failed 换用 Command 的 Execute 方法同样报错。 检查 Select 语句未发现错误,在 MDB 文件中测试 Select 语句一切正常,程序中其他使用同样方法的语句都运行正常,联机帮助没有相关问题说明。 错误解决: 在网上搜索了半天,有说是权限、连接设置等问题的,但对我的问题均没有帮助。最后在一个论坛的一条回复中注意到提问者自己修改了某个字段的名称后问题解决,突然想到是不是 ADO 对象有保留的关键字。我的 Select 语句涉及到 PositionID 和 Position 两个字段,将 Position 字段改名为 PositionName 后,问题解决。 结论: ADO 对象中有一些关键字,如果在 Select …

Continue reading »