Sql 从VBA调用excel公式
现在我有一个excel电子表格,其中有一个按钮分配给我构建的宏,该宏从SQL server提取数据。现在它只拉了我告诉它的整张桌子 我为其制作此命令的人希望它更进一步,以便他们可以在单元格B1中输入SQL命令,当按下按钮时,它将运行包含在单元格B1中的语句。因此,不仅能够运行宏中包含的语句并从SQL server中反复提取同一个表,该按钮还能够运行单元格B1中包含的任何语句,从而使宏易于更改Sql 从VBA调用excel公式,sql,excel,vba,Sql,Excel,Vba,现在我有一个excel电子表格,其中有一个按钮分配给我构建的宏,该宏从SQL server提取数据。现在它只拉了我告诉它的整张桌子 我为其制作此命令的人希望它更进一步,以便他们可以在单元格B1中输入SQL命令,当按下按钮时,它将运行包含在单元格B1中的语句。因此,不仅能够运行宏中包含的语句并从SQL server中反复提取同一个表,该按钮还能够运行单元格B1中包含的任何语句,从而使宏易于更改 例如:现在宏正在从employees表select*from employees中提取所有信息,但我想将
例如:现在宏正在从employees表select*from employees中提取所有信息,但我想将该语句更改为类似call cell B1的语句,然后它将运行cell B1中的任何内容,这些内容可以很容易地更改,而无需进入VBA。我将在您现在拥有的SQL命令的位置,我将注释为
Private Sub CommandButton1_Click()
'dim some objects and file paths, ect
With *some database*
DoCmd.RunSQL "SELECT * FROM Employees"
End With
End Sub
以下
Private Sub CommandButton1_Click()
'dim objects and file paths again
With *some database*
DoCmd.RunSQL(SQLSetup)
End with
End Sub
Public Function SQLSetup() as String
SQLSetup = Application.ThisWorkBook.Cells(X,Y).Value
End Sub
当然,有很多方法可以改进这一点。您可以将SQL语句的每个元素分解成一个新的单元格,并在函数中将这些单元格值合并在一起。但是,就访问单元格中的值并将其传递到变量中(您可以将其传递到SQL语句中)而言,这是对您所需内容的粗略估计。如果您的最终用户了解SQL,为什么不直接给他/她的SQL management studio呢?Excel似乎是一个糟糕的sql语句存储库。如果您将sql语句保存在数据库中并仅执行它们会怎么样?用户特别希望使用前端sql。别问我为什么。有很多其他更简单的方法可以将数据从sql抓取到excel中,但遗憾的是,我只是做了分配给我的事情;我有一些代码,如果你有时间,我想让你查一下。我试着将你的一些例子应用到它中,但没有任何运气。链接如下:无需担心!让它工作起来。开放范围B1。公式成功了;