设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 求助:从SQL SERVER 视图中获取数据

[复制链接]
跳转到指定楼层
1#
发表于 2016-1-15 15:12:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用access 2007做前端,后台是sql server。sqlserver 中有 视图(view),我试图从 view 中获取数据,失败,不知什么原因。

窗体的open事件代码如下:

Private Sub Form_Open(Cancel As Integer)
    Dim rs As ADODB.Recordset
    Dim sql As String

'   CN 是一个模块级变量
'   ConnStr 是全局变量 = "Provider=SQLOLEDB;data source=192.168.159.128,1449; "Initial Catalog='Std-DEV'; user id='sa';password='sa';Network=DBMSSOCN"
   
     With CN
       .ConnectionString = ConnStr
       .Open
    End With

    Set rs = New ADODB.Recordset
   
    ' v_RMInOut 是定义在SQLSERER中的视图  
    sql = "SELECT 我方公司,供应商,品名,批号,MIN(日期) AS '首次', MAX(日期) AS '末次',SUM(数量) AS '数量' FROM v_RMInOut WHERE 我方公司='" & _
                   CompanyList(SelectedCompanyID) & "' GROUP BY 我方公司,供应商,品名,批号 "
    If Not chkShowAll Then
        sql = sql & "HAVING SUM(数量)<>0 "
    End If
    sql = sql & "ORDER BY MIN(日期) DESC"

    rs.Open sql, CN

    Set Me.Recordset = rs

    Set rs = Nothing

End Sub


以上程序执行到 set me.recordset=rs 时出错,错误说明是 rs 不是正确的recordset属性。
我这段程序在不同窗体的open事件中都用过,其他都是从表里面取数据,都没问题,唯有这个是从视图中取数据,就怎么也过不去。
我debug.print 过sql,将其粘贴到sql server management studio中去执行,也没问题。
我甚至简化sql="SELECT * FROM v_RMInOut",也不成功,同样的错误

求大神指点。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2016-1-15 15:16:40 | 只看该作者
Me.Recordset 是DAO的Recordset
rs是ADO的Recordset

两者是不同的记录集,需要进一步转换。
3#
 楼主| 发表于 2016-1-15 15:25:05 | 只看该作者
可是我其他窗体这样做,没问题啊
4#
 楼主| 发表于 2016-1-15 15:27:54 | 只看该作者
关键是 rs 根本没有取到数据,recordcount=-1
5#
发表于 2016-1-15 16:25:30 | 只看该作者
吴雨青 发表于 2016-1-15 15:27
关键是 rs 根本没有取到数据,recordcount=-1

估计你没有设置好connection吧?
  1.      With cn
  2.        .ConnectionString = ConnStr
  3.        .Open
  4.        .CursorLocation = adUseClient '加上这一句
  5.     End With
复制代码

目前我这里测试没问题的。
6#
 楼主| 发表于 2016-1-15 17:48:42 | 只看该作者
果然是的,成功了。
谢谢 Roych啦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-23 22:31 , Processed in 0.102937 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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