0

いくつかのSQLクエリを実行するマクロがあります。これらのクエリの1つは、マクロ内のmsgboxに入力された日付に基づいて実行されます(入力された日付以降の会社のみが生成されます)。

マクロが単独でテーブルで実行されるときにmsgboxに入力された値を入れることは可能ですか?(私の最終的な目標は、表示される値が次の日付以降であることを示すために値をレポートに配置することです:変数)

以下は私のコードです:

Sub insertmsgboxvar()
Dim msgboxdate As Date
msgboxdate = InputBox("Enter a date. Accounts created AFTER the date will be returned.")
DoCmd.RunSQL "SELECT " & msgboxdate & " Into tblreqaccts ;"
End Sub

何らかの理由で、実行すると、(以前は存在しなかった)テーブルが作成され、Expr1000という列が作成され、数値5.96421471172962E-03が入力されます。私はすでにそれを日付形式に変更しようとしました、そして私は1899年から日付を取得します。ありがとう

4

2 に答える 2

0

できますよ。以下は、入力ボックスを取り、それを変数に割り当てます。これは、Sheet1 の Range("A1") に保存されます。

Dim formDate As Date

formDate = Application.InputBox("Input Date", "Date")

Sheet1.Range("A1").Value = formDate
于 2012-12-12T23:00:31.290 に答える
0

VBA から実行できる基本的な SQL クエリを次に示します。

SELECT C1,C2,C3 
FROM YourTable 
WHERE DateField > yourmsgboxvalue

これを行うこともできます:

SELECT yourmsgboxvalue as C23, C1,C2,C3 
FROM YourTable 
WHERE DateField > yourmsgboxvalue

これで、実際の結果セット内のメッセージ ボックスに値が入力されました。次に、ヘッダーに一度表示する方法を考え出すだけです。これは、すぐに使用できるすべてのレポート ツールにとって簡単なことであり、カスタム開発したレポート ツールを使用している場合は十分に簡単です。

さらに役立つには、コードの説明がさらに必要です。

于 2012-12-13T00:05:27.627 に答える