这可能是一个非常奇怪的问题,但我正在尝试“获取”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()函数?
我在搜索工作中尝试了各种各样但我没有运气,所以我来到这里。
提前致谢
答案 0 :(得分:0)
每个查询都有.SQL
属性。
此代码将遍历当前的db,并为找到的每个查询提供SQL:
Dim db As Database
Dim qr As QueryDef
Set db = CurrentDb
For Each qr In db.QueryDefs
MsgBox qr.SQL
Next
答案 1 :(得分:0)
假设您有一个文本框TextBox1
和一个名为Command2
的命令按钮,您可以使用:
Private Sub Command2_Click() Me.TextBox1 = CurrentDB.QueryDefs("qryScores").Sql End Sub