Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

回复 加入收藏帖  复制
我要提问 帖子上移

如何使用sql的存储过程

汪武龍 等级: 普通会员 积分:38 金币:0 来自:广州Access交流中心 发表于:2009-05-07 11:36:25   已结帖
楼主

查到以前有人問過以下問題,因看不到答案,老師能否再解答一次?

 

在ACCESS中如何使用使用SQL SEVER中的存储过程?并将存储过程作为输入窗体的数据来源(即存储过程返回的记录集可以追加新记录也可以修改已经存在的记录)!

 

access培训  诚聘access开发人员

    汪武龍
      获得社区协助:请教问题(即发帖)21篇,其中获得解决的13篇;
      协助社区成员:协助他人(即回帖)78篇,其中被设为【最佳答案】的21篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

竹笛 等级:管理员★★★★★ 积分:115613 金币:43880 来自:上海Access交流中心 发表于2009/5/12 10:58:33 最佳答案
1楼 得分: 2

以下为朱亦文提供的回复,代为上传:
以下示例使用 CreateQueryDef 和 OpenRecordset 方法以及 SQL 属性,查询 Microsoft SQL Server 示例数据库 Pubs 中的书名表,并返回最畅销书籍的书名和书名标识符。然后查询作者表,并指示用户根据每个作者的版税份额向其发送红利支票(总红利为 ¥1,000,每个作者应收到该金额的一定份额)。

Visual Basic for Applications
Sub ClientServerX2()

   Dim dbsCurrent As Database
   Dim qdfBestSellers As QueryDef
   Dim qdfBonusEarners As QueryDef
   Dim rstTopSeller As Recordset
   Dim rstBonusRecipients As Recordset
   Dim strAuthorList As String

   ' Open a database from which QueryDef objects can be
   ' created.
   Set dbsCurrent = OpenDatabase("DB1.mdb")

   ' Create a temporary QueryDef object to retrieve
   ' data from a Microsoft SQL Server database.
   Set qdfBestSellers = dbsCurrent.CreateQueryDef("")
   With qdfBestSellers
      ' Note: The DSN referenced below must be configured to
      '       use Microsoft Windows NT Authentication Mode to
      '       authorize user access to the Microsoft SQL Server.
      .Connect = "ODBC;DATABASE=pubs;DSN=Publishers"
      .SQL = "SELECT title, title_id FROM titles " & _
         "ORDER BY ytd_sales DESC"
      Set rstTopSeller = .OpenRecordset()
      rstTopSeller.MoveFirst
   End With

   ' Create a temporary QueryDef to retrieve data from
   ' a Microsoft SQL Server database based on the results from
   ' the first query.
   Set qdfBonusEarners = dbsCurrent.CreateQueryDef("")
   With qdfBonusEarners
      ' Note: The DSN referenced below must be configured to
      '       use Microsoft Windows NT Authentication Mode to
      '       authorize user access to the Microsoft SQL Server.
      .Connect = "ODBC;DATABASE=pubs;DSN=Publishers"
      .SQL = "SELECT * FROM titleauthor " & _
         "WHERE title_id = '" & _
         rstTopSeller!title_id & "'"
      Set rstBonusRecipients = .OpenRecordset()
   End With

   ' Build the output string.
   With rstBonusRecipients
      Do While Not .EOF
         strAuthorList = strAuthorList & "  " & _
            !au_id & ":  $" & (10 * !royaltyper) & vbCr
         .MoveNext
      Loop
   End With

   ' Display results.
   MsgBox "Please send a check to the following " & _
      "authors in the amounts shown:" & vbCr & _
      strAuthorList & "for outstanding sales of " & _
      rstTopSeller!Title & "."

   rstTopSeller.Close
   dbsCurrent.Close

End Sub



    希望我的回答能解决了您的问题,或者所附上的这些信息对您有所帮助!如有任何疑问或需要进一步帮助,请您直接在本站发贴,我们非常乐意帮助您解决问题!
    如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,以方便大家对那些正在等待解决的帖子给予关注!
    张志  [协助社区成员回帖2979篇,其中【最佳答案】1176篇;发布技术文章1097篇。]
    UMVSoft在线支持工程师
    http://www.umvsoft.com
    QQ:2851379730 点击这里给张志发消息
    如果您没有注册这个论坛,请单击下面的链接进行注册,与我在论坛进行交流:
    http://www.accessoft.com/reg/reg.asp?userid=8
    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。
竹笛 等级:管理员★★★★★ 积分:115613 金币:43880 来自:上海Access交流中心 发表于2009/5/12 10:58:54 
2楼 得分: 0

朱亦文(23699869)  10:40:45
如果在窗体中使用,并绑定窗体的话
可以在窗体的加载事件中来处理这个
 
朱亦文(23699869)  10:46:14
Private Sub Form_Load()
   Dim sql As String
   sql = "exec " & "yourProcedure " & _
      "参数1, 参数2, ..."
  
   Dim qry As DAO.Qurey
   Set qry=CurrentDB().CreateQueryDef("")
   qry.Connect = "ODBC;DATABASE=yourDatabase;DSN=yourDNS"
   qry.SQL = sql
   Set Me.Recordset = qry.OpenRecordset()
End Sub


朱亦文(23699869)  10:47:21
这样就可以执行存储过程并返回记录集,同时绑定到窗体

 

朱亦文(23699869)  10:50:44
其中的关键
Set qry = CurrentDB().CreateQueryDef("")
表示创建一个临时查询
而通过
qry.Connect="ODBC;..."
表示是一个传递查询



    希望我的回答能解决了您的问题,或者所附上的这些信息对您有所帮助!如有任何疑问或需要进一步帮助,请您直接在本站发贴,我们非常乐意帮助您解决问题!
    如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,以方便大家对那些正在等待解决的帖子给予关注!
    张志  [协助社区成员回帖2979篇,其中【最佳答案】1176篇;发布技术文章1097篇。]
    UMVSoft在线支持工程师
    http://www.umvsoft.com
    QQ:2851379730 点击这里给张志发消息
    如果您没有注册这个论坛,请单击下面的链接进行注册,与我在论坛进行交流:
    http://www.accessoft.com/reg/reg.asp?userid=8
    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。
总记录:2篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。