Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подсчет кол-ва найденных строк. / 13 сообщений из 13, страница 1 из 1
04.02.2003, 18:19
    #32101130
symbiosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Как посчитать количество строк найденных с помощью запроса и присвоить их переменной в VBA?
...
Рейтинг: 0 / 0
04.02.2003, 18:27
    #32101138
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Лучше спрашивать конкретнее - быстрее и точнее кто-нибудь ответит...

Знаю, что в DAO есть свойство Recordset - RecordCount

Только, чтобы оно отражало правильное значение нужно предварительно его (Recordset) двинуть в зад... (MoveLast)...

Скорее всего, что-либо подобное есть и в других объектах (ADO и пр..)
...
Рейтинг: 0 / 0
04.02.2003, 18:33
    #32101146
-=Alexey=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
цитирую help
...
For a non–row-returning command string:

connection.Execute CommandText, RecordsAffected , Options

For a row-returning command string:

Set recordset = connection.Execute (CommandText, RecordsAffected , Options)

Return Value

Returns a Recordset object reference.

Parameters
CommandText ...
RecordsAffected Optional. A Long variable to which the provider returns the number of records that the operation affected.

относится только ADO
...
Рейтинг: 0 / 0
04.02.2003, 18:51
    #32101159
symbiosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Есть ключевое поле "Номер". Если юзер при изменении данных вводит то значение, кот. уже есть в базе, нужно его обругать, когда он нажимает на кнопку "Изменить". Проверку на совпадение делаю запросом. Как мне дальше проверить что результаты запроса пусты/не пусты?

Private Sub Кнопка_Click()
c = "SELECT * FROM Таблица WHERE Номер =" & Поле_Номер & ";"
If (c >= 0) Then
MsgBox "Изменение данных невозможно, т.к. " & Chr(10) & "данные с таким номером уже существуют!"
Me.Undo
Me.[Номер ДогЗак Поле].SetFocus
Else
DoCmd.Close
End If
End Sub

PS Что такое DAO??
PPS Спасибо за помощь! Я просто только совсем недавно начал писать на ACCESS'е =)
...
Рейтинг: 0 / 0
04.02.2003, 19:00
    #32101166
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
В твоем случае "с" это что?!?
Переменная типа variant - раз она не объявленна...т.е. ты сарвниваешь строку с нулем - ?!?!?!

Access еще по-моему не настолько "озверел", что бы выполнять запросы так, как ты хочешь...

Для DAO надо писать что-то типа....

Код: plaintext
1.
2.
3.
4.
Dim MySet as RecordSet ' Объявляем запрос
Set MySet = DBEngine(0)(0).OpenRecordSet("Select * from Table") ' Выполняем
If Not MySet.EOF then ' Если что-то вернул
  msgbox ( "незя" )
.....


А DAO, ADO и пр - библиотеки доступа к данным, что позволяет выполнять запросы.....
Что конкретно настроенно - можно посмотреть в модуле меню Tools-References.....
...
Рейтинг: 0 / 0
04.02.2003, 19:23
    #32101177
symbiosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
2 MixaCh: Так как ты написал - не работает =(
А ты не можешь конкретно для моего примера (то что я выше написал), для этого запроса написать как делать? Был бы ДИКО признателен =)))
...
Рейтинг: 0 / 0
04.02.2003, 19:37
    #32101189
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Можно и конкретно, хотя практически так и было написано....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub test()
Dim c As Recordset
Set c = DBEngine( 0 )( 0 ).OpenRecordset( "SELECT * FROM Таблица WHERE Номер ="  & Me.Поле_Номер &  ";" )
If Not c.EOF Then
   MsgBox  "у меня не копирует русский текст.... (пардон)" 
   Me.Undo
   Me.[Íîìåð ÄîãÇàê Ïîëå].SetFocus
Else
   DoCmd.Close
End If
End Sub


Но как говорил раньше, это для DAO....
По умолчанию в Access стоит ADO - там надо по-другому....
...
Рейтинг: 0 / 0
04.02.2003, 20:18
    #32101209
symbiosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Пишет такую ошибку: "Несоответствие типов данных в выражении условия отбора". Не нравится строка:
Set c = DBEngine(0)(0).OpenRecordset("SELECT * FROM Таблица WHERE Номер =" & Me.Поле_Номер & ";")

Это из-за DAO?? И где это поменять?

А для ADO сложнее?
...
Рейтинг: 0 / 0
04.02.2003, 20:43
    #32101220
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Если [Поле_номер] строка, то надо еще добавить по паре двойных кавычек рядом или по одной одинарной....

типа

Код: plaintext
...=  """  & Поле_номер &  """ ;"


А так должно работать...

А DAO, ADO - наколки MS..... ADO поновее и наверное помощнее, а так примерно похоже....
...
Рейтинг: 0 / 0
04.02.2003, 21:16
    #32101234
symbiosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Блин, наверное, я тебя уже достал, но access меня еще больше достал =)
Так пишет Type missmatch..........
...
Рейтинг: 0 / 0
04.02.2003, 22:08
    #32101249
MixaCh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
Тогда давай структуру таблицы - тип данных поля Номер и из дебагера - какое значение в поле Поле_номера.....

Скорее всего где-то несоответствие в этом.....

Если перещлещь всю процедуру (форму ввода) и структуру таблицы, можно и по мылу...

ChistyakovMixa@freemail.ru
...
Рейтинг: 0 / 0
04.02.2003, 23:00
    #32101257
symbiosis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
2 MixaCh: Спасибо за помощь. Помогло, все работает!
...
Рейтинг: 0 / 0
05.02.2003, 02:29
    #32101278
-=Alexey=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подсчет кол-ва найденных строк.
что бы не гадать что используешь ADO или DAO объявляй переменный явно с указанием библиотек
dim rst As DAO.Recordset
dim rst As ADODB.Recordset
тогда ошибки связанные с отсутствием ссылок на библиотеки, будут возникать не глубоко в коде при обращение в свойстам и методам, а на этапе объявления переменных
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подсчет кол-ва найденных строк. / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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