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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2012, 10:57   #1
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию Отчет и запрос

Здравствуйте! Помогите пожалуйста в решении такой задачи. Есть форма Search. Напротив каждой строки есть кнопка для создания отчета по строкам. Есть кнопка Исправить количество. Можно ли сделать так - нажал напротив строки кнопку с изображением отчета - строка появилась в отчете без проблем, затем вернулись к форме Нажали кнопку с изображением другой строки - и эта строка добавлялась в отчете снизу уже выбранной. Т.е. выбранные позиции добавляются для печати. И еще нажимаешь кнопку Разделить количество, то появляется формочка, в которой я меняю Количество на свое и эти измененные данные летят во временную таблицу temp_stiker
Вложения
Тип файла: rar CO5.rar (53.0 Кб, 11 просмотров)
slone2179 вне форума Ответить с цитированием
Старый 29.02.2012, 13:17   #2
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Вот бьюсь уже целый день. Кнопку "Исправить Количество" заставил сделать так, чтобы появлялось окно для изменения. Проблема в том, что исправления должны сохранятся в какой-нибудь временной таблице,а откуда они берутся, пол Количество должно оставаться таким же. И в отчете - как заставить кнопку "Печать" сохранять выбранную строку в таблице temp_stiker? Помогите люди добрые кто чем может
Вложения
Тип файла: rar CO5.rar (54.9 Кб, 9 просмотров)
slone2179 вне форума Ответить с цитированием
Старый 01.03.2012, 06:36   #3
Woodlin
Форумчанин
 
Регистрация: 30.03.2010
Сообщений: 153
По умолчанию

slone2179, объясните толком какой функционал хотите получить от формы, а то есть ощущение, что что-то не так.
Woodlin вне форума Ответить с цитированием
Старый 01.03.2012, 08:53   #4
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Есть форма Search, в ней записи. Нажимаю на кнопку Печать. Строка выбранная летит в Отчет. Возвращаюсь к форме Search - Нажимаю кнопку Печать - еще одна выбранная строка летит в Отчет и помещается под строкой ранее выбранной. В отчете хотелось бы сделать чекбокс напротив выбранных строк, который бы вставлял разрыв страницы между строками.
slone2179 вне форума Ответить с цитированием
Старый 01.03.2012, 16:04   #5
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Вот сделал как мог, чтобы было понятно. Есть форма Search. Выбираем записи с помощью флажков (почему-то правильно не выбирает ошибка в условии, если флажок не обновить условие не срабатывает). Нажимаем Печать- если выбрали две строки - должны появится две строчки (что случилось всего один раз). Разрыв страницы - пробовал читать про page break ничего не понял, пришлось обыграть как сделал. Кнопка сверху "Все на Печать" выводит все записи - не знаю какое условие прописать, чтобы кнопка "ВСЕ на ПЕЧАТЬ" выбирала эти выбранные строчки в последней форме second_step.
Вложения
Тип файла: rar CO5.rar (62.5 Кб, 7 просмотров)
slone2179 вне форума Ответить с цитированием
Старый 01.03.2012, 20:30   #6
Woodlin
Форумчанин
 
Регистрация: 30.03.2010
Сообщений: 153
По умолчанию

Цитата:
Сообщение от slone2179 Посмотреть сообщение
Нажимаем Печать- если выбрали две строки - должны появится две строчки (что случилось всего один раз).
Не появляются потому что при нажатии на флажок начинается редактирование записи. Потом жмёте на кнопку Печать, открывается форма second_step, а изменения флага в таблицу не заносятся. Чтобы изменения были занесены в таблицу нужно либо перейти на другую запись формы Search, тогда обновление записи в таблице произойдёт автоматом, либо сделать обновление принудительно.
Примерный код на кнопку Печать:
Код:
Private Sub Печать_Click()
Dim stDocName As String
Dim stLinkCriteria As String
Dim me_rst As Recordset      'будем открывать клон набора записей формы

Me.Refresh  'Обновляем записи таблицы, чтоб переключение флага отобразилось в таблице

stDocName = "second_step"
Set me_rst = Me.RecordsetClone

stLinkCriteria = "[Выбор]=" & True

me_rst.FindFirst "[Выбор]= True" 'Ищем есть ли включенные флажки

If me_rst.NoMatch Then  'Если включенные флаги не найдены
    DoCmd.OpenForm stDocName
    MsgBox "Без флажка!"
Else
    DoCmd.OpenForm stDocName, acNormal, , stLinkCriteria
End If
End Sub
Цитата:
Сообщение от slone2179 Посмотреть сообщение
Разрыв страницы - пробовал читать про page break ничего не понял, пришлось обыграть как сделал.
Т.е. Вы хотите показанные на форме second_step записи отправить в отчет, НО если нажата кнопка Разрыв, то эту запись перекидывать на следующую страницу?

Цитата:
Сообщение от slone2179 Посмотреть сообщение
Кнопка сверху "Все на Печать" выводит все записи - не знаю какое условие прописать, чтобы кнопка "ВСЕ на ПЕЧАТЬ" выбирала эти выбранные строчки в последней форме second_step.
Вроде бы кнопка "Все на Печать" нормально отрабатывает, все записи отправляются в отчёт.
Woodlin вне форума Ответить с цитированием
Старый 01.03.2012, 21:16   #7
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Т.е. Вы хотите показанные на форме second_step записи отправить в отчет, НО если нажата кнопка Разрыв, то эту запись перекидывать на следующую страницу?

Спасибо, только не уходите рано, а то у меня скоро голова лопнет. Допустим с помощью флажков выбрали три записи. Напротив первой записи нажимаем Разрыв и первая запись летит в Отчет, а оставшиеся две записи летят на другую страницу отчета.

И еще вопрос,а можно в форме сделать кнопки, чтобы перекидывать записи. Например:
1 запись
2 запись
3 запись
Напротив каждой записи кнопки, нажимаем например напротив первой записи и 1 запись перемещается под 2 записью типа сортировка принудительная
2 запись
1 запись
3 запись
slone2179 вне форума Ответить с цитированием
Старый 01.03.2012, 21:27   #8
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию не работает поиск

предложенный со5
-не работает ни в mdb, ни в accdb
-туго зависает
-в форме search прописаны (в коде) поля, которых нет на форме
-до печати и разрывов не дошла
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 01.03.2012, 22:17   #9
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
предложенный со5
-не работает ни в mdb, ни в accdb
-туго зависает
-в форме search прописаны (в коде) поля, которых нет на форме
-до печати и разрывов не дошла
Поиск работает, поля были удалены, чтобы упростить пример для этой темы. Многие запросы и таблицы тоже удалены. Размер базы 100 мБ.
slone2179 вне форума Ответить с цитированием
Старый 02.03.2012, 08:54   #10
Woodlin
Форумчанин
 
Регистрация: 30.03.2010
Сообщений: 153
По умолчанию

slone2179, вставте в отчет (в область данных) над полями с данными контрол разрыв страницы. В событии ОбластьДанных_Format можно написать такой код:
Код:
Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
If CStr(Me.Код) = OpenArgs Then
    Me.КонецСтраницы11.Visible = True
Else
    Me.КонецСтраницы11.Visible = False
End If
End Sub
В форме second_step при вызове отчета надо передавать параметр OpenArgs, в нашем случае будем ему передавать код записи, которую нужно перекинуть в отчете на следующую страницу:
DoCmd.OpenReport strReportName, acPreview, , , , Me![Код]
При клике на кнопку Все на печать, в OpenArgs передавать 0 :
DoCmd.OpenReport strReportName, acPreview, , , , 0

По поводу принудительной сортировки... я бы сделал так:
Создал отдельную таблицу с двумя полями, первое для связи с табл . COLLECTION, во втором будут числа (1, 2, 3 и т.д.) . При открытии формы second_step (источник записей будет тогда запрос из двух таблиц: COLLECTION и созданной для сортировки) заполнял первое поле таблицы значениями Кода отправленных на печать записей (можно запросом на обновление), потом в рекордсете формы циклом заполнял поле для сортировки.
А потом кнопками на форме уже бы менял значения, чтоб добиться нужной сортировки. В отчете источник записей также будет запрос.

Хотя, наверняка есть более изящное решение.

Последний раз редактировалось Woodlin; 02.03.2012 в 09:09.
Woodlin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на выборку и отчет на этот запрос Camelot_2012 Microsoft Office Access 2 21.12.2011 16:48
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
[HELP] Запрос/Отчет AlexandrSN Microsoft Office Access 2 24.03.2009 00:59
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50