Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Почему у меня тут rs.recordcount =-1??? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Почему у меня тут rs.recordcount =-1??? (Макросы/Sub)
Почему у меня тут rs.recordcount =-1???
PYCTAM Дата: Понедельник, 23.06.2014, 10:41 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 60% ±

Excel 2010
[vba]
Код
Public cn As ADODB.Connection
Public rs As ADODB.Recordset

Sub workbookopen()
' This demo requires a reference to
' the Microsoft ActiveX Data Objects 2.x Library

Dim sql As String
Cells.Clear

' Open the connection
Set cn = New ADODB.Connection
If cn.State = 1 Then Connection.Close
cn.Open ConnectionString:="Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "/tst.accdb" & ";"

' Create RecordSet
Set rs = New ADODB.Recordset
If rs.State = 1 Then rs.Close
sql = "select * from omuzgoron"
rs.Open Source:=sql, ActiveConnection:=cn
MsgBox rs.RecordCount
MsgBox rs.Fields.Count
' Write the field names
For i = 0 To rs.Fields.Count - 1
Range("A1").Offset(0, i).Value = rs.Fields(i).Name
Next i
' Write the recordset
Range("A1").Offset(1, 0).CopyFromRecordset rs
' For i = 0 To rs.RecordCount - 1
' For j = 0 To rs.Fields.Count - 1
' If i = 0 Then i = i + 2
'
' Next j
' Next i

End Sub
[/vba]
[moder]Для оформления поста пользуйтесь спецтегами (для кода VBA - кнопка #)
К сообщению приложен файл: Documents.rar (44.5 Kb)


Сообщение отредактировал PYCTAM - Понедельник, 23.06.2014, 10:44
 
Ответить
Сообщение[vba]
Код
Public cn As ADODB.Connection
Public rs As ADODB.Recordset

Sub workbookopen()
' This demo requires a reference to
' the Microsoft ActiveX Data Objects 2.x Library

Dim sql As String
Cells.Clear

' Open the connection
Set cn = New ADODB.Connection
If cn.State = 1 Then Connection.Close
cn.Open ConnectionString:="Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "/tst.accdb" & ";"

' Create RecordSet
Set rs = New ADODB.Recordset
If rs.State = 1 Then rs.Close
sql = "select * from omuzgoron"
rs.Open Source:=sql, ActiveConnection:=cn
MsgBox rs.RecordCount
MsgBox rs.Fields.Count
' Write the field names
For i = 0 To rs.Fields.Count - 1
Range("A1").Offset(0, i).Value = rs.Fields(i).Name
Next i
' Write the recordset
Range("A1").Offset(1, 0).CopyFromRecordset rs
' For i = 0 To rs.RecordCount - 1
' For j = 0 To rs.Fields.Count - 1
' If i = 0 Then i = i + 2
'
' Next j
' Next i

End Sub
[/vba]
[moder]Для оформления поста пользуйтесь спецтегами (для кода VBA - кнопка #)

Автор - PYCTAM
Дата добавления - 23.06.2014 в 10:41
Pelena Дата: Понедельник, 23.06.2014, 12:11 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Вот эту строчку
[vba]
Код
rs.Open Source:=sql, ActiveConnection:=cn
[/vba]
допишите
[vba]
Код
rs.Open Source:=sql, ActiveConnection:=cn, CursorType:=adOpenStatic
[/vba]
http://support.microsoft.com/kb/194973


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВот эту строчку
[vba]
Код
rs.Open Source:=sql, ActiveConnection:=cn
[/vba]
допишите
[vba]
Код
rs.Open Source:=sql, ActiveConnection:=cn, CursorType:=adOpenStatic
[/vba]
http://support.microsoft.com/kb/194973

Автор - Pelena
Дата добавления - 23.06.2014 в 12:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Почему у меня тут rs.recordcount =-1??? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!