Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从VBA调用excel公式_Sql_Excel_Vba - Fatal编程技术网

Sql 从VBA调用excel公式

Sql 从VBA调用excel公式,sql,excel,vba,Sql,Excel,Vba,现在我有一个excel电子表格,其中有一个按钮分配给我构建的宏,该宏从SQL server提取数据。现在它只拉了我告诉它的整张桌子 我为其制作此命令的人希望它更进一步,以便他们可以在单元格B1中输入SQL命令,当按下按钮时,它将运行包含在单元格B1中的语句。因此,不仅能够运行宏中包含的语句并从SQL server中反复提取同一个表,该按钮还能够运行单元格B1中包含的任何语句,从而使宏易于更改 例如:现在宏正在从employees表select*from employees中提取所有信息,但我想将

现在我有一个excel电子表格,其中有一个按钮分配给我构建的宏,该宏从SQL server提取数据。现在它只拉了我告诉它的整张桌子

我为其制作此命令的人希望它更进一步,以便他们可以在单元格B1中输入SQL命令,当按下按钮时,它将运行包含在单元格B1中的语句。因此,不仅能够运行宏中包含的语句并从SQL server中反复提取同一个表,该按钮还能够运行单元格B1中包含的任何语句,从而使宏易于更改


例如:现在宏正在从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。公式成功了;