Lex Posted June 30, 2004 Report Share Posted June 30, 2004 Отчёт выбирает данные из 3 связанных таблиц(один ко многим)., чтобы строки в отчёте не повторялись написал следующий код: Private Sub Область данных_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next If CLng(Me.Номер стыка) = CLng(CurrentNumber) Then Cancel = 1 ElseIf CLng(Me.Номер стыка) > CLng(CurrentNumber) Then CurrentNumber = Me.Номер стыка Cancel = 0 End If End Sub после этого отчёт формируется правильно(на мониторе), а на печать опять выводит повторы записей, а последнюю запись вообще удаляет!! :( ! Никак не могу разобраться: почему на экране одно, а на печать выводит другое?? Может кто встречался с такой проблемой, подскажите буду благодарен. Link to comment Share on other sites More sharing options...
Dear Friend Posted July 1, 2004 Report Share Posted July 1, 2004 Несколько вопросов: Что есть Номер стыка? Где и как определелена CurrentNumber? И есть один совет: Оптимизируйте свой запрос к данным таким образом, чтобы исключить лишние записи. Когда-то давно один малознакомый, но довольно умный человек сказал мне: Извлечь необходимый набор данных из базы данных со сколь угодно сложной структурой с помощью SQL можно практически всегда лишь одним предложением select. И есть один ответ непосредственно в тему: Менее давно чем в предыдущем абзаце имел я интересную ситуацию, тогда ко мне обратились с похожим вопросом - почему на экране видно, а на печать не идет, причем только область данных - выяснили, что кривой дистрибутив был. Link to comment Share on other sites More sharing options...
Lex Posted July 2, 2004 Author Report Share Posted July 2, 2004 CurrentNumber - глобальная переменная, ей присвается значение Me.Номер стыка. Me.Номер стыка - параметр первой таблицы(3 связанных таблиц(один ко многим)), по этому параметру выполняю выборку в отчёт. Т.к. связь один ко многим получаются повторы строк. Этим кодом хотел избавиться от повторов(по иному не могу придумать). Link to comment Share on other sites More sharing options...
Dear Friend Posted July 2, 2004 Report Share Posted July 2, 2004 Избавиться от повторных данных в запросе позволяет фраза SELECT DISTINCT ... Исправь соответствующим образом запрос, который выбирает данные для отчета. Или создай его, если до сих пор этого не сделал. Добавлено : [mergetime]1088760987[/mergetime] Чтобы помочь тебе более конкретно, необходимо больше сведений. Напиши структуру связей таблиц, участвующих в выборке, и что надо получить на выходе. Link to comment Share on other sites More sharing options...
Jmd Posted July 2, 2004 Report Share Posted July 2, 2004 Насколько я помню, то в свойствах запросов есть что-то типа "оригинальные значения", "оригинальные записи"... Тогда он показывает без повторений. Link to comment Share on other sites More sharing options...
Lex Posted July 5, 2004 Author Report Share Posted July 5, 2004 Разобрался, спасибо! Сначала собрал данные в промежуточную таблицу с той-же структурой, что и запрос, из неё уже в отчёт. Возникла др. проблема: програмку закончил, а при переносе её на другую машину не работают пара функций: ReDim и Data! Подскажите какие и как подключить библиотеки? "пока не научился :( " Или может access 97 не полностью установлен? Link to comment Share on other sites More sharing options...
Dear Friend Posted July 5, 2004 Report Share Posted July 5, 2004 Lex Имеющиеся библиотеки подключаются хитрым образом: в редакторе Visual Basic меню Tools -> References. Там много всего ;) Link to comment Share on other sites More sharing options...
Jmd Posted July 5, 2004 Report Share Posted July 5, 2004 (edited) У меня при перестановке винды пропало несколько элементов, но это были активХ. С датой странно Может база сохранить как 97, или 2000? И еще, есть меню сервис, там можно провести аланиз базы, может там что всплывет. Edited July 5, 2004 by Jmd Link to comment Share on other sites More sharing options...
Dear Friend Posted July 5, 2004 Report Share Posted July 5, 2004 Jmd Не совсем понял вопрос. В любом случае, имхо, анализ базы не затрагивает визуальных элементов. А ActiveX можно подключить ручками, для этого в меню "Сервис" есть специальный пункт. Link to comment Share on other sites More sharing options...
Yatsik Posted July 18, 2006 Report Share Posted July 18, 2006 У меня проблема в том, что в поле занесены слишком большее количество слов и надо чтобы некоторые не виделись, можно ли их как нибуть зафильтровать. К примеру, в поле вписана фраза из многих слов, но в строках начало фразы повторяется и где-то в середине может изменятся, и вот мне нужно что-бы начальная фраза не выходила на экран и печать, а повторы от середины фильтровались. Т.е. мне нужно прописать такой фильтр. Заранее благодарен! ПС Может кто даст ссылку про MSaccess and MSexcel где можно почитать. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now