根据不同的命令按钮被单击执行不同的存储过程

xzwyl 2009-05-31 09:56:58
运用实例和场景:
excel中的用户窗体,根据窗体中输入的共用参数,提供n个不同的命令按钮,所有这些命令按钮都调用不同的存储过程,但这些存储均携带参数,而这些参数都来源于窗体中的共用参数。
要求是当命令1按钮被单击执行时,调用的连接mysql=存储过程1
当命令2按钮被单击执行时,调用的连接mysql=存储过程2
当命令3按钮被单击执行时,调用的连接mysql=存储过程3
依此类推。

代码区中,如何准确判断各个命令按钮是否被单击,以及单击后执行mysql的连接并将结果返回呢?

代码:

Function 提取合同数据查询(ByVal tbdydm, ByVal tbordernum, ByVal tbconnum, ByVal tbcustname, ByVal dtkssj, ByVal dtjssj) As Boolean
提取合同数据查询 = True
Dim mycn As New ADODB.Connection
Dim myrst As New ADODB.Recordset
Dim cwR, cwC, cwF, cwi, ii As Integer
Dim mysql
mycn.CursorLocation = adUseClient
mycn.Open Sheets("sys").Range("B43") '连接数据库

mysql = "" '定义查询
If cmdrzymatching = 1 Then
mysql = "exec fsrzymatching '" & tbdydm & "','" & tbconnum & "','" & dtkssj & "','" & dtjssj & "'"
End If


'MsgBox mysql

myrst.Open mysql, mycn, adOpenStatic, adLockBatchOptimistic '执行查询

Sheets("xtmp").Visible = True
Sheets("xtmp").Activate
Cells.Select
Selection.Delete Shift:=xlUp


cwR = 2
cwC = 1 'Excel中目的区域的起始列号
cwi = 0 'SQL-fskucun-fsxall 中的字段序号
cwF = myrst.Fields.Count - 1 '查询返回的记录的字段数

ii = myrst.Fields.Count
For i = 1 To ii
Sheets("xtmp").Cells(1, i) = myrst.Fields(i - 1).Name
Next i

While Not myrst.EOF
For cwi = 0 To cwF
Sheets("xtmp").Cells(cwR, cwi + cwC).Rows.Value = myrst.Fields(cwi).Value
Next cwi
cwR = cwR + 1
myrst.MoveNext
Wend

myrst.Close '关闭结果集
mycn.Close '关闭连接
Set mycn = Nothing

Sheets("xtmp").Cells.EntireColumn.AutoFit

End Function


...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2009-05-31
  • 打赏
  • 举报
回复
命令1按钮_Click 执行 RunSql(1)
命令2按钮_Click 执行 RunSql(2)

runsql函数
根据传入的参数判断执行什么sql

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

http://feiyun0112.cnblogs.com/
chenyubo1977 2009-05-31
  • 打赏
  • 举报
回复
直接将存储进程写入对应的按钮中
xzwyl 2009-05-31
  • 打赏
  • 举报
回复
提供这一段的代码:
mysql = "" '定义查询
If cmdrzymatching = 1 Then
mysql = "exec fsrzymatching '" & tbdydm & "','" & tbconnum & "','" & dtkssj & "','" & dtjssj & "'"
End If


修改成这样的类似结构:
mysql=""
if 命令1被单击 then
mysql=存储过程1
endif
if 命令2被单击 then
mywql=存储过程2
endif
。。。。。。。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧