|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Добрый день! Есть форма в access 2010, в которую из sql-сервера тянутся данные по проведённым инструктажам сотрудника. Заполнение полей области данных формы предполагается в коде. Но при выполнении кода, цикл записывает дважды одну и ту же последнюю строку (у сотрудника было два разных инструктажа). Как исправить код, чтобы в область данных записывались обе строки (все, что есть по сотруднику)? Заранее спасибо! ______________________________________ Private Sub Form_Load() ' подключаемся к базе ConnectToBase ' выбираем нужные записи: SQLText = "SELECT users_status.status, order_type.type, users_timesheet.order_num, users_timesheet.order_date, users_timesheet.begin_date, users_timesheet.end_date" _ & " FROM order_type INNER JOIN (users_status INNER JOIN users_timesheet ON users_status.id = users_timesheet.status_id) ON order_type.id = users_timesheet.order_id" _ & " WHERE (((users_timesheet.user_id)=14));" rstZS.Open SQLText, cn, adOpenKeyset, adLockOptimistic ' присваиваем значения запроса в поля формы: If Not rstZS.EOF Then rstZS.MoveFirst Dim i As Integer For i = 1 To rstZS.RecordCount Me.ПолеСтатусСотрудника = rstZS.Fields(0) Me.ПолеТипПриказа = rstZS.Fields(1) Me.ПолеНомерПриказа = rstZS.Fields(2) Me.ПолеДатаПриказа = rstZS.Fields(3) Me.ПолеДатаНачала = rstZS.Fields(4) Me.ПолеДатаОкончания = rstZS.Fields(5) rstZS.MoveNext Next i End If End Sub _________________________________________ ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 14:59 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Вы после заполнения полей не сохраняете запись и не переходите на новую. И вообще, добавлять запись программно лучше непосредственно в Recordset (или RecordsetClone) формы. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Предполагается, что имена элементов на форме те же, что имена полей в источнике. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 16:45 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), спасибо за ответ! Попробовал Ваш вариант. Выдаёт ошибку "Run-time error '3426': Действие прервано связанным объектом.". Остановился на строке '.AddNew'. Где мне искать ошибку? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 06:24 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
nik.anВыдаёт ошибку "Run-time error '3426': Действие прервано связанным объектом.". Остановился на строке '.AddNew'. Похоже, источник формы не поддерживает добавление записей. В вашей форме действительно можно перейти на новую запись, заполнить поля и сохранить? Что является источником данных формы? "из sql-сервера тянутся данные" - у вас БД с прилинкованными таблицами sql-сервера или ADP проект? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 11:02 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Не понял, с какой целью такая хитрость применяется? Почему бы просто источник данных формы не сделать из того самого запроса, тянущего с SQL нужную информацию? Переопределив предварительно в форме соответственно названия полей? Типа такого - в той же процедуре загрузки формы: Код: vbnet 1.
Форма только на просмотр ведь нужна? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 11:12 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Анатолий ( Киев ), Проект - ADP. Обращаемся напрямую к SQL серверу Источник данных формы определяем в Form_Load() : SQLText = "SELECT users_status.status, order_type.type, users_timesheet.order_num, users_timesheet.order_date, users_timesheet.begin_date, users_timesheet.end_date" _ & " FROM order_type INNER JOIN (users_status INNER JOIN users_timesheet ON users_status.id = users_timesheet.status_id) ON order_type.id = users_timesheet.order_id" _ & " WHERE (((users_timesheet.user_id)=14));" rst.Open SQLText, cn, adOpenKeySet, adLockOptimistic Forms![КартаСотр_табель].Recordset = rst Переход по записям возможен как и редактирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 11:33 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Slavinag, Спасибо за помощь! Что подразумевает переопределение название полей? Дать им имена как у полей в запросе? Н.р. status, type и т.д.? Форма нужна для просмотра. В будущем необходима будет форма для редактирования, для этого нужно будет искать другой путь?! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2016, 11:35 |
|
Заполнение ОбластиДанных формы access программным способом.
|
|||
---|---|---|---|
#18+
Помогли найти решение. Как оказалось, нужно строку присвоения значения полю прописывать следующим образом: Код: vbnet 1. 2. 3.
Всем спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2016, 14:55 |
|
|
start [/forum/topic.php?fid=45&msg=39181485&tid=1613851]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 334ms |
total: | 474ms |
0 / 0 |