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]));

取得するステートメントがある場合 (つまり、データベースにクエリがある場合は、ステートメントを取得してアプリケーションに返す)、任意のデータベースの SQL ステートメントを Visual Basic アプリケーションで「取得」できるようにしたいと考えています。データベースにクエリがない場合は、メッセージでユーザーに通知します。

これは実際に可能ですか?

アップデート:

「GetSchema()」関数を使用してこれを完了しようとしています。

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

しかし、「PROCEDURES」がエラーを引き起こしています。 GetSchema() 関数に精通している人はいますか?

いろいろと探してみましたが、うまくいかなかったのでこちらにたどり着きました。

前もって感謝します

4

2 に答える 2

0

TextBox1テキストボックスと という名前のコマンド ボタンがあると仮定すると、次のCommand2ように使用できます。

プライベート サブ Command2_Click()

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

サブ終了
于 2012-08-22T19:46:01.053 に答える
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 に答える