powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать количество строк результата выполнения запроса
23 сообщений из 23, страница 1 из 1
Как узнать количество строк результата выполнения запроса
    #37350563
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.

Подскажите пожалуйста как из VBA узнать сколько строк возвращает запрос, который так же выполняется из VBA.

Запрос формируется на основе выбранной записи из списка на форме
MySql = "SELECT T1.ID, T2.ID, T2.Name FROM T1 INNER JOIN T2 ON T1.ID = T2.T1Id WHERE T1.ID =" & Me.Spisok.Column(0, Me.Spisok.ItemsSelected)
MyCounter = CurrentProject.Connection.Execute(MySql).RecordCount

К сожалению, в результате -1 (

Помогите.
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350601
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед "RecordCount" надо было использовать метод "MoveLast".


Код: plaintext
1.
2.
3.
4.
5.
MySql = "SELECT T1.ID, T2.ID, T2.Name FROM T1 INNER JOIN T2 ON T1.ID = T2.T1Id WHERE T1.ID =" & _
    Me.Spisok.Column( 0 , Me.Spisok.ItemsSelected)
With CurrentProject.Connection.Execute(MySql)
    .MoveLast
    MyCounter = .RecordCount
End With
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350602
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
MyCounter = UBound(CurrentProject.Connection.Execute(MySql).GetRows,  2 ) +  1 
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350627
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо!
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350653
Guest33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
?currentproject.Connection.Execute("select * from t").RecordCount   
- 1  
?currentproject.AccessConnection.Execute("select * from t").RecordCount   
  3  
?currentproject.Connection.CursorLocation =adUseServer 
True
?currentproject.AccessConnection.CursorLocation =adUseClient 
True
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350678
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы.
А существует ли возможность перебрать значения записей запроса по одному или нескольким полям?

То есть у меня в запросе получилось три записи. Нужно циклом их перебрать и выполнить определенные действия с каждой записью определенного поля или групы полей прямо в цикле.

Можно ли это делать в VBA без использования контролов на форме (например того же списка) или еще чего подобного?
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350688
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
movenext F1
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350748
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Санычmovenext F1

Спасибо, хотя F1 у меня несколько криво помогает ((, но остальной интернет не подкачал.

Пришел к такому решению.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Set db = CurrentDb
    Set rst = db.OpenRecordset(MySql)
    rst.MoveFirst
    Coma = False
    While Not rst.EOF
        If Coma Then
            Perecheni = Perecheni & ", "
        End If
        Perecheni = Perecheni & rst.Fields( 1 )
        rst.MoveNext
        Coma = True
    Wend
               
    Set rst = Nothing

Может кривовато, но работает.
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350761
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Macro,
ADODB.Recordset метод GetString
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37350959
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nord-woolfMacro,
ADODB.Recordset метод GetString

Только вот у меня даже тут:
Dim Rst As ADODB.Recordset

стопорится (

"User-Defined type not defined"
ЧТо я ему не прописал не пойму, у всех работает, а мой что то не хочет (
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351014
Фотография BrykAlien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351032
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BrykAlien,

Подключал и 2.8 и 6.0 - не работает.
У меня акс 2010
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351043
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MacroBrykAlien,

Подключал и 2.8 и 6.0 - не работает.
У меня акс 2010

Все таки запустил. Спасибо.

Кстати есть разница использовать версию 2.8 иили 6.0
Я в том смысле, чего будет достаточно
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351044
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
MacroBrykAlien,

Подключал и 2.8 и 6.0 - не работает.
У меня акс 2010
и при подключенной библиотеке - такая же ошибка ?
автор"User-Defined type not defined"
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351046
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёMacroBrykAlien,

Подключал и 2.8 и 6.0 - не работает.
У меня акс 2010
и при подключенной библиотеке - такая же ошибка ?
автор"User-Defined type not defined"

Да, выдавал и при включенной ((
наверное глюк был
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351061
Macro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что скажете по поводу
"Невозможно использование подключения для выполнения операции. Оно закрыто или не допускается в данном контексте"

Код: plaintext
1.
Dim rs As New ADODB.Recordset
rs.Open MySql

на строке rs.Open MySql

запрос самый простой
видел еще в одной теме такую ошибку, там так и не решили
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351073
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
MacroА что скажете по поводу
"Невозможно использование подключения для выполнения операции. Оно закрыто или не допускается в данном контексте"

Код: plaintext
1.
Dim rs As New ADODB.Recordset
rs.Open MySql

на строке rs.Open MySql

запрос самый простой
видел еще в одной теме такую ошибку, там так и не решили
вы параметры у rs.Open посмотрели бы сначала ...
rs.Open MySql, CurrentProject.Connection, ...
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #37351088
Фотография BrykAlien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim RS As ADODB.Recordset
Set RS = New ADODB.Recordset
RS.ActiveConnection = CurrentProject.Connection
RS.Source = "<SQL>"
RS.Open
While Not RS.EOF
    DoEvents
    RS.MoveNext
Wend
RS.Close
Set RS = Nothing
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как узнать количество строк результата выполнения запроса
    #39679780
Фотография Rikozenit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world
Код: vbnet
1.
MyCounter = UBound(CurrentProject.Connection.Execute(MySql).GetRows, 2) + 1


Отлично считает кол-во строк в запросе, но только, если их >0.
Если запрос не содержит строк, то выдаёт ошибку:
bof или eof имеет значение true либо текущая запись удалена. Для выполнения операции требуется текущая запись.

Мой код условно:
Код: vbnet
1.
2.
SQL = "SELECT ФИО from Сотрудники where Дата_рождения Is Not Null"
l = UBound(CurrentProject.Connection.Execute(SQL).GetRows, 2) + 1


Подскажите, как перехватить состояние отсутствия строк в отчёте?
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #39679835
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
dim Prov
Prov=DCount("[ФИО]","Сотрудники","[Дата_рождения] Is Not Null")
If nz(Prov,0)=0 then
' отловили как отсутствие строк вообще, так и отсутствие строк удовлетворяющих критерию
end if

,
в отчете есть событие Nodata
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #39679836
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать рекордсет и на EOF его проверить????? Первое что в голову пришло.....
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #39679843
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL = "SELECT ФИО from Сотрудники where Дата_рождения Is Not Null"
With CurrentProject.Connection.Execute(SQL)
  If Not .EOF And Not .BOF Then 'Проверяем рекордсет на наличие записей
    'Есть данные в рекордсете
    l = UBound(.GetRows, 2) + 1
  Else
    'Пустой рекордсет. Что-то делаем в этом случае
    l=0
  End If
End With
...
Рейтинг: 0 / 0
Как узнать количество строк результата выполнения запроса
    #39679983
Фотография Rikozenit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_world, спасибо огромное!
А я пробовал что-то похожее написать, но не зная матчасти, конечно, ничего не вышло)
Если есть возможность - ткните где поизучать про вот эти моменты
Код: vbnet
1.
With CurrentProject.Connection.Execute(SQL)

и про
Код: vbnet
1.
UBound(.GetRows, 2) + 1
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как узнать количество строк результата выполнения запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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