Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2010, 22:55   #1
hip3r
 
Регистрация: 12.10.2009
Сообщений: 8
По умолчанию Перемещение по записям в форме через "Recordset"

Добрый вечер.
Подскажите кто знает!

Необходимо организовать перемещение по записям в форме через Recordset!

Примерный вид формы(только кнопки перехода сомописные):



Пробую так:

Код:
Private CurDB As DAO.Database
Private Rst As DAO.Recordset

Private Sub Form_Load()

Dim strSQL$
Set CurDB = CurrentDb

strSQL = "Запрос"

Set Rst = CurDB.OpenRecordset(strSQL)

//как выбрать из Rst нужные поля для первой записи?

End Sub

Private Sub btnNext_Click()
Rst.MoveNext
//как выбрать из Rst нужные поля для второй записи?
End Sub
Помогите пожалуйста.

Последний раз редактировалось hip3r; 11.03.2010 в 23:34.
hip3r вне форума Ответить с цитированием
Старый 11.03.2010, 23:06   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте hip3r.
"как выбрать из Rst нужное поля для первой записи?" - первая при открытии формы или Rst.MoveFirst
"как выбрать из Rst нужное поля для второй записи?" при использовании Rst.MoveNext что мешает "кликнуть" по кнопке btnNext и будет "вторая" ещё раз "третья" ещё .....?
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 11.03.2010, 23:31   #3
hip3r
 
Регистрация: 12.10.2009
Сообщений: 8
По умолчанию

Евгений, я вас правильно понял:

Код:
Private CurDB As DAO.Database
Private Rst As DAO.Recordset

Private Sub Form_Load()

Dim strSQL$
Set CurDB = CurrentDb

strSQL = "Запрос"

Set Rst = CurDB.OpenRecordset(strSQL)

End Sub

Private Sub Form_Open(Cancel As Integer)
Rst.MoveFirst //первая при открытии формы
End Sub

Private Sub btnNext_Click()
Rst.MoveNext //вторая при нажатии кнопки
End Sub
Чёт не работает.
В строке Rst.MoveFirst 'Oшибка '91' "Object variable or With block variable not set".

Последний раз редактировалось hip3r; 12.03.2010 в 00:29.
hip3r вне форума Ответить с цитированием
Старый 12.03.2010, 17:19   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

не могу ответить насколько "..я вас правильно понял.."
дальнейшие советы без анализа образца проекта - сродни гаданию на кофейной гуще.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 14.03.2010, 20:25   #5
hip3r
 
Регистрация: 12.10.2009
Сообщений: 8
По умолчанию

Наконец то добрался до компа.

С ошибкой разобрался, но запись не выводится.
Teslenko_EA, может вы посмотрите. Я вам скину кусок базы.
hip3r вне форума Ответить с цитированием
Старый 14.03.2010, 22:17   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте hip3r.
да Вы можете выложить на этой ветке архив с заранее подготовленным (избавленным от избыточных данных, OLE объектов,.... и сжатый средствами MS Access) файлом БД.
Евгений.
P.S. все свои сообщения я подписываю в надежде, что обращаться ко мне будут по имени.
Teslenko_EA вне форума Ответить с цитированием
Старый 15.03.2010, 11:18   #7
hip3r
 
Регистрация: 12.10.2009
Сообщений: 8
По умолчанию

Здравствуйте Евгений.
Вот файл.
Буду очень благодарен за помощь.
Вложения
Тип файла: rar db.rar (66.9 Кб, 19 просмотров)
hip3r вне форума Ответить с цитированием
Старый 15.03.2010, 21:00   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

hip3r, используемая unbound (несвязанная с источником) форма может "получать" данные из открытого рекордсета
если его "подключить" к рекордсету формы, при этом все контролы должны быть подключены к соответствующим полям рекордсета.
не понятно назначение и способ применения проекта и формы,
не понятен критерий идентификации записей, "слепая навигация" (не организован поиск или выбор), на форме размещены только кнопки этой самой "навигации" и конторолы для работы с данными, для добавления и удаления записей "инструментов" нет.
Но перспективы есть, структура создана верно.
Евгений.
Вложения
Тип файла: rar 1.rar (69.3 Кб, 38 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 16.03.2010, 23:37   #9
hip3r
 
Регистрация: 12.10.2009
Сообщений: 8
По умолчанию

Евгений, спасибо за помощь.
Ваши замечания вполне уместны. Прост я решил вас не грузить сильно и оставил самую суть проблемы(одну форму).
Просмотрел ваш труд. Вы уж извините, но вот возникла не задачка. От своего не знания и вас напряг и сам запутался в конец.Видно не дочитал, так как думал если Recordset, то данные автоматически заносится в базу не будут.
Пару недель назад у меня возникла проблема с формой в которой можно редактировать запись. Проблема заключалась в том, что изменения должны заносится в базу по кнопке "Сохранить", а не автоматически. На одном из форумов я вычитал, что эту проблему можно решить либо с помощью промежуточной таблицы либо Recordset'а. Я кое как выкрутился с помощью Recordset'а:
Код:
Dim s$
Dim CurDB As DAO.Database
Dim Rst As DAO.Recordset

Set CurDB = CurrentDb

s = "Запрос"

Set Rst = CurDB.OpenRecordset(s)

    If Not Rst.RecordCount = 0 Then
    
        Me.Поле0.Value = Rst(0)
        Me.Поле1.Value = Rst(1)
        Me.Поле2.Value = Rst(2)
        .................................
        
    End If

Rst.Close
CurDB.Close
Это код работает если запись одна и нет кнопок перехода(отредактировал, сохранил и всё "ОК").

Но в форме которую я вам скинул ещё нужно переходить по записям с помощью кнопок перехода поэтому этот код не подходит(либо я не могу сообразить).

Евгений, как (можно ли) в форме которую я скинул сделать так, что бы изменённые данные не заносились автоматически, а по кнопке "Сохранить".

P.S.
Может вы посоветуете, что можно почитать по программированию на VBA.
hip3r вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Размещение информации из таблиц "Справочников" на форме для добавления-редактирования vovk БД в Delphi 9 15.06.2009 21:50
Считывание строк из файла. перемещение по строкам "веред"-"назад" Larkin. Помощь студентам 2 15.06.2009 17:58