0
この単純な問題は、数日間私のトラックで止まってしまった。OpenRecordsetでクエリ内のフォーム参照を解決する
私のプログラムの一般的な説明:
- 私は日付範囲でクエリをフィルタリングするためにインタラクティブなアクセス形態をもつ 2017年8月1日と終了日(日EXを起動する))EX 2017年8月31日)
- 次に、私のクエリは単一の 値を返します。例)12345.23
- VBA機能を実行します。
問題:パラメータを明示的に指定することはできません。次の行が赤で強調表示されます。
strSQL = strSQL & "AND [dbo_SO_SalesHistory].[InvoiceDate] Between #"_
&[Forms]![RUN]![textBeginOrderDate] & "#And#"_
&[Forms]![RUN]![textendorderdate]&"#"
私のSQLコード:
SELECT Sum(dbo_SO_SalesHistory.DollarsSold) AS SumOfDollarsSold
FROM dbo_SO_SalesHistory
While (((dbo_SO_SalesHistory.InvoiceDate) Between [Forms]![RUN]![textBeginOrderDate] And [Forms]![RUN]![textendorderdate]));
フルコード:
Option Compare Database
Option Explicit
Public Function TRANS2()
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim xlWS As Excel.Worksheet
Dim acRng As Variant
Dim xlRow As Integer
Dim qry As QueryDef
Dim rst As Recordset
Dim prm As DAO.Parameter
Dim strSQL As String
Set xlApp = New Excel.Application
Set xlWB = xlApp.Workbooks.Open("C:\Users\April.CAROBAPLASTICS\Desktop\August 2017.xlsx")
Set xlWS = xlWB.Worksheets("Totals")
xlRow = (xlWS.Columns("K").End(xlDown).Row)
Set qry = CurrentDb.QueryDefs("2_Total")
strSQL = strSQL & "AND [dbo_SO_SalesHistory].[InvoiceDate] Between #"_
& [Forms]![RUN]![textBeginOrderDate] & "# And #"_
& [Forms]![RUN]![textendorderdate] & "#"
qry.SQL = strSQL
Set rst = CurrentDb.OpenRecordset("2_Total", dbOpenDynaset)
Dim c As Integer
c = 11 'C is the one that stores column number, in which c=1 means column A, 11 is for column K, 12 for Column L
xlRow = xlRow + 11
Do Until rst.EOF
For Each acRng In rst.Fields
xlWS.Cells(xlRow, c).Formula = acRng
c = c + 1
Next acRng
xlRow = xlRow + 1
c = 1
rst.MoveNext
If xlRow > 25 Then GoTo rq_Exit
Loop
rq_Exit:
rst.Close
Set rst = Nothing
Set xlWS = Nothing
xlWB.Close acSaveYes
Set xlWB = Nothing
xlApp.Quit
Set xlApp = Nothing
Exit Function
End Function
'ます。strSQL =ます。strSQL&「AND [dbo_SO_SalesHistory] 。[InvoiceDate]# "_"の間に問題があるようですが、この時点までは 'strSQL'は割り当てられません。 kingクエリSQLは 'Where'節の一部にすぎません。これは永久に "2_Total"のSQLコードを変更するのでしょうか?よく分かりません。また、あなたのSQLコードが正しく表示されない、 'While'は' Where'でなければなりません。 'strSQL'変数に' AND'の前にスペースを入れることもできます。 @ChristopherD。 – MoondogsMaDawg
あなたのコメントをありがとうございました。あなたのコメントのおかげでうまくいきます。あなたの助けを高く評価しました –