0

这可能是一个非常奇怪的问题,但我正在尝试“获取”SQL 命令以进行报告。

所以说我的 Microsoft Access 数据库有一个查询,在执行时会运行以下 SQL 语句:

SELECT Staff.SurName, Staff.ID, Staff.Salary, Staff.StartDate, Staff.JobTitle,
Manager.SurName AS [Manager Surname], Department.DeptName AS [Department Name]
FROM Employee AS Staff, Employee AS Manager, Department
WHERE (((Staff.ManagerID)=[Manager].[ID]) AND
           ((Staff.DeptID)=[Department].[DeptID]));

我希望我的 Visual Basic 应用程序能够“获取”任何给定数据库的 SQL 语句,前提是要获取一条语句(即,如果数据库有任何查询,获取该语句并将其返回给应用程序),如果数据库没有查询,则通过消息通知用户。

这真的可能吗?

更新:

我正在尝试通过使用“GetSchema()”函数来完成此操作:

Dim schema As DataTable = con.GetSchema("PROCEDURES")

但是“PROCEDURES”导致错误,有人熟悉 GetSchema() 函数吗?

我已经尝试了各种搜索工作,但我没有任何运气,所以我来到了这里。

提前致谢

4

2 回答 2

0

每个查询都有一个.SQL属性。

此代码将遍历当前数据库,并为您找到的每个查询提供 SQL:

Dim db As Database
Dim qr As QueryDef

Set db = CurrentDb

For Each qr In db.QueryDefs
    MsgBox qr.SQL
Next
于 2012-08-22T18:44:28.260 回答
0

假设您有一个文本框TextBox1和一个名为 的命令按钮Command2,您可以使用:

私有子 Command2_Click()

    Me.TextBox1 = CurrentDB.QueryDefs("qryScores").Sql

结束子
于 2012-08-22T19:46:01.053 回答