powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ЧП с Recordset
12 сообщений из 12, страница 1 из 1
ЧП с Recordset
    #32169359
Lisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть функция

Function ABD() As Date

Dim db As Database
Dim rs As Recordset

Set db = CurrentDb
Set rs = db.OpenRecordset("select * from [дата] order by [дата]")
rs.MoveFirst
ABD = rs.Fields("Дата")


End Function


при выполнении ругается на OpenRecordset .
Почему кто знает ?
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169366
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щас Lisa подожи... мы тебя:))
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169369
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
order by [дата].[дата]

Кто додумался дать таблице и полю одинаковые имена???
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169371
Фотография Артист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADO? DAO?
судя по CurrentDb :
Dim db As DAO.Database
Dim rs As DAO.Recordset
мож нет ссылки на DAO ?
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169376
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напиши

Код: plaintext
1.
Set rs = db.OpenRecordset( "select * from дата as t order by t.дата" ) 
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169377
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смени название поля или таблицы и не забудь

rs.close
db.close !!!!!!
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169400
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Название менять необязательно - есть алиасы

как бы сдела я
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Function ABD() As Date 
'кстати обязательно ли делать функцию общедоступной?
Dim db As DAO.Database 
Dim rs As DAO.Recordset 

Set db = DBEngine(0)(0)

Set rs = db.OpenRecordset("select Тop 1 t.дата from дата as t order by t.дата") 

if (rs.eof and rs.bof) then
'нет записей
'присвоим дате самое минимальное значение или нечто другое согласно твоей 
'логике работы программы
  ABD=cdate( 1 ) 'даст дату  31 . 12 . 1899  
else
  ABD = rs.Fields( "Дата" ).Value
end if

rs.close : set rs=Nothing
db.close : set db=Nothing

End Function 


Правда здесь нет ничего без чего бы у тебя не работало (кроме дата as t)
Тop 1 - тебе нужно только первое значение - зачем же все остально грузить?
Так же не нужна "*" - Зачем еще лишнии поля
rs.MoveFirst тоже не нужен -открытый рекордсет и так стоит на первой записи
проверка на наличие записей тоже бы не помешала бы.
Но так обычно называют хороший стиль программирования. Привыкныть достаточно просто.
И лучше вместо
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169414
Фотография Zenia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а я сделалбы так:

Код: plaintext
ABD = Nz(CurrentDb.Openrecordset(Select Min(t.[дата]) as MDat FROM [дата] as t ")!MDat, " Нету!!!")
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169419
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, так даже лучше, только "Нету" писать нельзя - функция возвращает тип данных Date.
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169434
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Nz(CurrentDb.Openrecordset(...

А где такому рекордсету делать Close?
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169441
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
А нигде. И переменной типа Database не присвоишь Nothing... Тяжкие муки выбора - или быстро писать и долго репу чесать почему же оно глючит, или явным образом описывать все переменные, все закрывать, все убивать и т.п. Тогда будет работать более надежно, но код будет писаться со скоростью бешеной черепахи
...
Рейтинг: 0 / 0
ЧП с Recordset
    #32169465
Lisa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поставила DAO и все заработало . Спасибо
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ЧП с Recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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