Я новичок в использовании Recordsets
и мне нужна некоторая помощь, чтобы выяснить, почему данные переносятся из базы данных в Excel.Я верю в следующий код, но не уверен.
For iRow = 0 To intNumReturned - 1
For iCol = 0 To intNumColumns - 1
Debug.Print rsRecords(iCol, iRow)
Next iCol
Next iRow
Результат из строки SQL, что ожидается:
PROCESSOR | ACCOUNT NUMBER | LOAN AMOUNT | ORIGNATION DATE
ZJE xxxxxxx XXXXXX.XX 2018-01-01
ZJE xxxxxxx XXXXXX.XX 2018-02-06
Как данные помещаются в лист Excel:
PROCESSOR | ACCOUNT NUMBER | LOAN AMOUNT | ORIGNATION DATE
ZJE ZJE ZJE ZJE
acct no acct no acct no acct no
loan amt loan amt loan amt loan amt
Org Date Org Date Org Date org date
Ниже приведен код, который я сейчас использую, за исключением строк подключения и SQL:
Sub RunSearch()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim connStr As String, strSQL As String
Dim begQ1 As String, endQ1 As String, begQ2 As String, endQ2 As String, begQ3 As String, endQ3 As String, begQ4 As String, endQ4 As String
Dim ctrl As Control
Dim rsRecords As Variant
Dim intNumReturned As Long, intNumColumns As Long, iCol As Long, iRow As Long, fldCount As Long, i As Long, rsCount As Long
Set wb = ThisWorkbook
Set wsVol = wb.Sheets("Volume By Processor")
Set wsDE = wb.Sheets("DE")
Set quarterYear = wsDE.Range("Quarter_Year")
Set Q = wsDE.Range("Quarter")
Set fDate = wsDE.Range("From_Date")
Set tDate = wsDE.Range("To_Date")
Do While Not rs.EOF
rs.MoveNext
rsRecords = rs.GetRows
intNumReturned = UBound(rsRecords, 2) + 1
intNumColumns = UBound(rsRecords, 1) + 1
Loop
For iRow = 0 To intNumReturned - 1
For iCol = 0 To intNumColumns - 1
Debug.Print rsRecords(iCol, iRow)
Next iCol
Next iRow
'\\\NEED TO FIGURE OUT NUMBER OF RECORDS TO
'\\\DEFINE LAST ROW/COLUMN OF RANGE???? PROBABLY A
'\\\SEPARATE QUESTION ON SO
wsVol.Range("B3:E1800") = rsRecords
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
Я ожидаю, что результат в листе Excel будет соответствовать выводу строки SQLлюбая помощь очень ценится.