Allgemeine Erklärung:MS Access OpenRedcordset Lesen falsche Zeichenfolge
meiner Anfrage 2_Total einen einzelnen Wert zurückgibt:
Führen Sie die VBA-Funktion, die die Abfrage in eine Excel exportiert Datei:
Problem:OpenRecordset
liest nicht die richtige Abfrage. Meine Abfrage sollte in meine Excel-Datei exportiert werden. Doch mein VBA zeigt auf falsches Zeug.
Meine Vermutung ist, dass die Zeile qry.SQL = "SELECT * FROM [dbo_SO_SalesHistory]"
nicht genügend Informationen liefert?
SQL
SELECT Sum(dbo_SO_SalesHistory.DollarsSold) AS SumOfDollarsSold
FROM dbo_SO_SalesHistory
WHERE (((dbo_SO_SalesHistory.InvoiceDate)
BETWEEN [Forms]![RUN]![textBeginOrderDate] AND [Forms]![RUN]![textendorderdate]));
VBA
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 db As DAO.Database
Dim qry As QueryDef
Dim rst As Recordset
Dim prm As DAO.Parameter
Dim strSQL As String
Set db = CurrentDb
Set xlApp = New Excel.Application
Set xlWB = xlApp.Workbooks.Open("C:\Users\J\Desktop\August 2017.xlsx")
Set xlWS = xlWB.Worksheets("Totals")
xlRow = (xlWS.Columns("K").End(xlDown).Row)
Set qry = db.QueryDefs("2_Total")
strSQL = strSQL & " [dbo_SO_SalesHistory].[InvoiceDate] Between #" _
& [Forms]![Run]![textBeginOrderDate] & "# And #" _
& [Forms]![Run]![textendorderdate] & "#"
qry.SQL = "SELECT * FROM [dbo_SO_SalesHistory]"
Set rst = db.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
Ihr Code ist extrem verwirrend: 1. Sie bereiten eine Abfrage in der Zeichenfolge 'strSQL' vor, die nirgends verwendet wird. 2. Sie definieren ein QueryDef 'qry', das nirgends verwendet wird. 3. Das einzige, was Sie in Ihrer Excel-Datei ausgeben, ist der Inhalt Ihres ersten Datensatzes, der das Ergebnis Ihrer 2_Total-Abfrage erfasst, die nur eine Zeile und Spalte zurückgibt, die also nichts mit der von Ihnen angezeigten Excel-Datei zu tun hat . All das ist ein Mysterium für mich. –
@ThomasG No.3 ist das Problem/Problem, das ich jetzt habe. Meine 2_Total-Abfrage gibt einen einzelnen Wert zurück, den ich in meine Excel-Datei exportieren möchte. Aber es druckt irrelevante Zeichenfolge in der Excel-Datei. –
@ThomasG Jeder Rat zu diesem Thema würde sehr geschätzt werden. Ich bin ein Neuling für VBA. Schätzen Sie, dass Sie auf einige Probleme in meinem Code hingewiesen haben –