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

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
27.05.2003, 11:30
    #32169366
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ЧП с Recordset
Щас Lisa подожи... мы тебя:))
...
Рейтинг: 0 / 0
27.05.2003, 11:31
    #32169369
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ЧП с Recordset
order by [дата].[дата]

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

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

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

как бы сдела я
Код: 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
27.05.2003, 12:05
    #32169414
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ЧП с Recordset
ну а я сделалбы так:

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

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


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