运用实例和场景:
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

解决方案 »

  1.   

    提供这一段的代码:
      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
     。
      

  2.   

    命令1按钮_Click 执行 RunSql(1)
    命令2按钮_Click 执行 RunSql(2)runsql函数
    根据传入的参数判断执行什么sql
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/