使用VBA从Excel电子表格中的SQL SP中提取数据

时间:2017-06-15 16:42:04

标签: excel vba button activex

这是一个奇怪的,我事先道歉 - 我在一个名为'刷新':

的ActiveX按钮中有以下VBA代码
Sub Refresh_Click()

With ActiveWorkbook.Connections("Lender Pipeline").OLEDBConnection
.CommandText = "EXECUTE dbo.sp_Lender_Pipeline " & Range("Q2").Value
End With

ActiveWorkbook.Connections("Lender Pipeline").Refresh

End Sub

它基本上做的是,根据Q2单元格的值从SQL SP中提取数据,并根据该值刷新SP表 - 这是我在单元格中手动添加的数字。此数字通常介于1和120之间(基于SP中的ID)。

问题:

  • 似乎只在输入某些数字时输入数据。即29
  • 对于其他号码,我必须手动点击“全部刷新”。
  • 如果我在SQL Server Management中手动执行SP,它可以正常工作,因此问题似乎存在于VBA中。
  • 如果我在Excel电子表格中手动执行SP,它也可以正常工作......

有没有人知道为什么会这样?可能是VBA还是其他什么?如果需要进一步澄清,请与我们联系。

感谢,你。

2 个答案:

答案 0 :(得分:0)

奇怪的是,我的一位同事之前也遇到过同样的问题。尝试了各种各样的修复程序,似乎没有任何修复工作,但以完全相同的方式重建工作簿似乎纠正了它。

不是最好的解决方案,但过去一直有效。如果没有,请在更改命令文本后尝试使用VBA调用refreshall命令,看看是否有帮助。

答案 1 :(得分:0)

非常感谢您的建议 - 看起来连接属性中的禁用后台刷新可以解决问题。