设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2785|回复: 2
打印 上一主题 下一主题

excel调用access里面的数据报错?请看看什么原因?谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2019-12-19 23:58:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位老师看看我使用excel调用access数据,但是提示我有字段有误,
run time error '2147217900(80040e14)':
undefined function 'nz' in excpression


Sub CreateQuery()
'引用Microsoft ActiveX Data Objects 2.x Library
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim SQL As String
    Dim i As Integer
    cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.accdb"
    SQL = "SELECT * FROM qrySO_Linked_WO_Tag_Detail" '是由这个查询数据

    rst.Open SQL, cnn, adOpenKeyset, adLockOptimistic
    Cells.ClearContents
    For i = 0 To rst.Fields.Count - 1
        Cells(1, i + 1) = rst.Fields(i).Name
    Next
    Range("A2").CopyFromRecordset rst
    rst.Close
    cnn.Close
    Set rst = Nothing
    Set cnn = Nothing
End Sub

我的access里面有一个查询”qrySO_Linked_WO_Tag_Detail”里面是由两个其他查询建立起来的
这两个查询:里面使用了NZ()这个函数。 附件中的access里面的表暂时我断了链接(原数据是链接excel表的),所以这两个表的结构是不可以修改的,请在这个附件例子上进行修改,谢谢
请帮助看看什么原因?谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2019-12-24 17:57:21 | 只看该作者
ADO用的是T-SQL语法,Access用的是Jet-SQL语法,有所区别的。例如,Access的模糊查询是“like *yan*”,如果用了ADO,不好意思,你得改成:“like %yan%”。
所以一般情况下不太建议在ADO里使用查询。而你这个Nz恰恰也是Access独有的,所以就出错了。如果改为ADO的话,可以用IsNull(数值,0)来处理,cdbl则可以改成convert(float,字段),iif改成case when then……这里就不一一列举了。
3#
 楼主| 发表于 2019-12-25 11:29:25 | 只看该作者
roych 发表于 2019-12-24 17:57
ADO用的是T-SQL语法,Access用的是Jet-SQL语法,有所区别的。例如,Access的模糊查询是“like *yan*”,如 ...

感谢老师的帮助,!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-2 01:53 , Processed in 0.077030 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表