powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как при помощи АДО заполнить первый столбец в экселе данными
3 сообщений из 3, страница 1 из 1
как при помощи АДО заполнить первый столбец в экселе данными
    #32410370
vlad_707
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как при помощи АДО заполнить первый столбец в экселе данными запроса из Аксесса
Соединения я делаю так

Dim cnn As ADODB.Connection

Set cnn = New ADODB.Connection
cnn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & _
"C:\БАЗА ДАННЫХ\LOGISNIC\UUK1_23_10_03.MDB"
cnn.Open

Dim varData As Variant
Dim intCount As Integer
Dim intI As Integer
Dim SQL As String
SQL = "SELECT тЗнач.значТ FROM тЗнач;"
'------------------------------------------------
' здесь мы объявляем и делаем рекордсет
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
Note that we can't move backwards through
' this recordset.
Set rst.ActiveConnection = cnn
rst.Open (SQL)

' закрываем рекордсет
'------------------------------------------------
rst.Close
Set rst = Nothing
' окончание коннекта
'------------------------------------------------
cnn.Close
Set cnn = Nothing

Как теперь сделать, чтоб первому столбцу был присвоен мой рекордсет!??

Или мне нужно пройтись по рекордсету и каждой ячейке в цикле присвоить очередное значение!?????????
(примерно так) или есть решение попрроще????

' ' Get all the rows, but only the CompanyName
' and ContactName fields.
varData = rst.GetRows(Fields:=Array("значТ"))

' How many rows did it actually send back?
intCount = UBound(varData, 2) + 1
' Loop through all the rows, printing out the
' data
For intI = 0 To intCount - 1 Step 1

' Debug.Print intI, varData(0, intI)
и как то далее......
...
Рейтинг: 0 / 0
как при помощи АДО заполнить первый столбец в экселе данными
    #32410386
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. хелп к методу Excel.Range.CopyFromRecordset
...
Рейтинг: 0 / 0
как при помощи АДО заполнить первый столбец в экселе данными
    #32412675
2L8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2L8
Гость
Думаю разеорешься


Public Function excel_Price()

Dim s As String
Dim Lastend, rc, i, j As Integer

Set XL = CreateObject("Excel.Application")
'XL.Workbooks.Add ("C:\Книга1.xls")
XL.Workbooks.Add ("")
XL.Visible = True



Lastend = 20
'Set MainRst = CurrentDb.OpenRecordset("SELECT Distinct MKart.SupplierID FROM MKart order by 1;", dbOpenSnapshot, dbReadOnly, dbReadOnly)
Set MainRst = CurrentDb.OpenRecordset("Groups", dbOpenSnapshot, dbReadOnly, dbReadOnly)

MainRst.MoveFirst
While Not MainRst.EOF
's = "SELECT TNomObj.Cd, TNomObj.Nm, TNomObj.NoMax, TNomObj.NoMin, TSklkrtObj.Cn, TSklkrtObj.Grp FROM TNomObj INNER JOIN TSklkrtObj ON TNomObj.Rcd = TSklkrtObj.RcdNom Where TSklkrtObj.Grp = 28" ' + CStr(MainRst.Fields(1).Value)

Set rst = CurrentDb.OpenRecordset("SELECT TNomObj.Cd, TNomObj.Nm, TNomObj.NoMax, TNomObj.NoMin, TSklkrtObj.Cn, TSklkrtObj.Grp FROM TNomObj INNER JOIN TSklkrtObj ON TNomObj.Rcd = TSklkrtObj.RcdNom Where (TSklkrtObj.Grp = """ + CStr(MainRst.Fields(1).Value) + """)", dbOpenSnapshot, dbReadOnly, dbReadOnly)

'Set Rst = CurrentDb.OpenRecordset("Таблица2")
If rst.RecordCount > 0 Then
rst.MoveLast
rst.MoveFirst
rc = rst.Fields.Count

j = 1

ReDim ar(1 To rst.RecordCount, 1 To rst.Fields.Count) As Variant

While Not rst.EOF
For i = 0 To rc - 1
ar(j, i + 1) = rst.Fields(i).Value
Next i
j = j + 1
rst.MoveNext
Wend
'Вывод на экран
Call OutPut(Array(MainRst.Fields(1).Value, MainRst.Fields(2).Value, "", "", "", "", ""), adres(Lastend, 1, 1, 7), "Times New Roman", 12, False, False, True, True, False)
Lastend = Lastend + 1

Call OutPut(ar, adres(Lastend, 1, rst.RecordCount, rst.Fields.Count), "Times New Roman", 10, True, True, Flase, False, False)
Lastend = Lastend + rst.RecordCount
'отступ между группами
Lastend = Lastend + 2
rst.Close
End If
MainRst.MoveNext
Wend
End Function


Public Sub OutPut(ar, adrstr, FontName, FontSize, Abris, AutFit, Bold, Italic, Under)
XL.ActiveWorkbook.Worksheets(1).Range(adrstr).Value = ar
XL.ActiveWorkbook.Worksheets(1).Range(adrstr).Select
If Abris = True Then
XL.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
XL.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With XL.Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With XL.Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With XL.Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With XL.Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
If XL.Selection.Columns.Count > 1 Then
With XL.Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
If XL.Selection.rows.Count > 1 Then
With XL.Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End If
End If
XL.Selection.Font.Name = FontName
XL.Selection.Font.Size = FontSize
If AutFit = True Then
Call XL.Selection.Columns.AutoFit
End If
XL.Selection.Font.Bold = Bold
XL.Selection.Font.Italic = Italic
If Under = True Then
XL.Selection.Font.Underline = 2
End If
End Sub
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как при помощи АДО заполнить первый столбец в экселе данными
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]