![]() |
|
Модераторы: Akina |
![]()
|
|
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
А еще хочу спросить вас следующее:
Вот делаю я отчет, в котором данные из таблицы идут, в которой все нули или минус единицы стоят (0/ -1), значит и в отчете они будут видны в натуральную величину. А вот я хочу вместо них видеть скажем либо пробел, либо галочку. Что прикажете делать? |
|||
|
||||
| GriKo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 7.6.2003 Где: Израиль Репутация: нет Всего: нет |
Сделай цикл, "ФОР" скажем, и в нём "ЕСЛЕ". И вот "есле" прочитанный символ = 0, тогда чтобы он заменялся пробел, а "подругому" - чтобы заменялся на V.
|
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Например lFld - это значение 0 или -1, а в переменную sRes надо записать " " или "V":
но в варианте предложенном GriKo, можно например в нужном месте нарисовать голчку: If sFld=0 then pic.PaintPicture(picSrc.picture,0,0) else pic.PaintPicture(picSrc1.picture,0,0) end if так что он более шире по возможностям... -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Bсе это понятно, только ведь проблема в другом!
Ведь данное действие надо писать в методе Current формы , а у рапорта такового не имееться! Если я такое напишу в методе Open, допустим, то этот код подействует лишь на первую запись, а все остальные записи отобразит как первую! Что скажете, господа! Или я не права?! |
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: нет Всего: 3 |
У Access есть встроенные функция, точно не помню как называется нет под рукой Access, что-то типа if((выражение), (правда), (ложь)). Смысл этой функции по-моему очевиден.
Так что в качестве значения поля можно использовать следующее выражение
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Где и как ты делаешь свой отчет? Я вообще по вопросу ничего не понимаю, что и куда ты хочешь записать анализировав свою таблицу.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Повторяю еще раз
Все очень просто: ПРостая таблица с полем, значениями которого могут быть либо 1, либо 0. На основе этой таблицы делаю отчет, следовательно в отчете вижу либо 1, либ 0. А я хочу видеть в отчете вместо 1 - галочку, а вместо 0 - пустое место, Ясно? Товарищи предлагают различные варианты с оператором If(IFF), я и сама могла бы догададаться до этого, однако проблема в другом. Как я уже объяснила данный код надо присабачить к какому-то событию. Если бы это была форма я бы этот код написала в событии Current формы, и тогда проблем не будет, но ведь в данном случае дело происходит в отчете, где такого свойства нет, а есть только Open. Если же я этот код поставлю в данном свойстве, то он проверит лишь первую запись и подействует на все остальные как на первую! Понятно? Короче попробуй, сам увидишь... |
|||
|
||||
| cardinal |
|
||||||||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Ладно поясняю, что в этом вопросе неоднозначно. Что такое отчет? Да хрен его знает, что это. Ты пишешь в раздел VB, так причем здесь Access. Чтобы ты знала в VB можно тоже делать отчеты. Вот тебе примеры: 1. Отчеты можно формировать с помощью конструктора DataReport, который является новинкой в VB 6.0. 2. Их можно также формировать в Microsoft Access, а потом использовать в VB приложениях. 3. Отчеты можно создавать с использованием пакета VSREPORTS фирмы VideoSoft, позволяющего пользователям приложения создавать отчеты Microsoft Access независимо от того, установлена ли на их компьютере сама программа Microsoft Access. 4. Отчеты можно создавать с использованием пакета VSVIEW фирмы VideoSoft 5. Отчеты можно создавать с помощью программы Crystal Reports. 6. Отчеты можно "делать" (как ты говоришь) в виде HTML-документа. 7. Отчет можно создавать при помощи библиотеки Microsoft Scripting Runtime Library, которая облегчает экспорт данных в файлы в ясной объектно-ориентированной манере. 8. Ты можешь вообще "делать" отчеты с использованием объекта VB Printer. Ну так почему же нельзя сказать как ты делаешь отчет? На мой вопрос "как?" ты отвечаешь:
Почему только товарищ Plamenk упоминает вообще слово Access, а не ты? Я могу догадываться, что ты делаешь отчет в MS Access, только по тому факту, что ты Plamenk не сказала: "Причем тут Access?". Короче ладно х%р с ним. Для чего я это все в который раз пишу? А для того, чтобы посетители форума поконкретнее вопросы ставили - тогда и ответы поконкретней будут. Ладно, попробуй вот это. Если я правильно до всего догадался, то это решение твоей проблемы. Я не поленился сделал базу данных, отчет и все протестировал. Соответственно если - это не то, что ты хотела, то значит думай в следующий раз как поставить вопрос так, чтобы ответ на него мог бы быть только один!
Все, что я написал - это не наезд, а просто очередная попытка призвать людей к порядку
Прямо впечатление создалось, что там сначало было написано "Понятно, козел? Что пишешь тут, если тебе ничего непонятно..." -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||||||||
|
|||||||||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Насчет данного кода, у меня в отчете в методе Open стоит следующий код: Private Sub Report_Open(Cancel As Integer) Dim strsql As String DoCmd.Maximize strsql = "SELECT check FROM table1 " Me.RecordSource = strsql End Sub Теперь я ставлю данный код в эту же процедуру( в конце): Me.check.Value = Switch(Me.check .Value = "1", "V", Me.check .Value = "0", "") При запуске отчета выдаеться такая ошибка: You entered an expression that has no value при том что в отчете стоит елемент check у которого свойство Control Source присвоено значение check . Не знаю может значение еще не успело присвоится на данном этапе загрузки формы? И вообще этот код (Me.check .Value = Switch(Me.check .Value = "1", "V", Me.check .Value = "0", "")) надо писать в данном методе формы или еще где? |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Указаный мною код
надо писать не в событие OPEN, а присваивать его как значение поля. По-моему, и cardinal имел ввиду тоже самое. |
|||
|
||||
| Plamenk |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: нет Всего: 3 |
Данное сообщение было написано мною.
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
это я и имел ввиду...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| nicka |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Ладно, я ставлю этот код (вместо Field ставлю название поля берущегося из запроса к таблице(check)) в свойство Control Source textbox-а на форме - к сожалению вообще ничего не показывает, или это не значит -
|
||||
|
|||||
| nicka |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Когда пишу это, вообще при выходе из поля выдает ошибку The expression you entered contains envalid sintax...
А если так пишу :
|
||||||
|
|||||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Все что тебе надо сделать - это открыть в MS Access базу данных, выбрать тот отчет, который тебе нужно, открыть его констpуктором и написать в значение поля то, что я тебе написал.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Ну так не работает же! |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
ты указала (где не могу сказать, так как Access нет под рукой) с какой таблицeй твое поле работает? я забыл тебе это написать...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| nicka |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Да в отчете стоит такой код:
Вот , а в отчете стоит TextBox с именем check и с значеним check в свойстве Control Source. (Так как раз тут я и пишу твой код теперь) |
||||
|
|||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
ладно, подожди до четверга (или пятницы), я посмотрю в MS Access, где я прописывал название таблицы
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Вообщем еще раз по порядку:
1. Открываем Access. 2. Создаем новый отчет при помощи конструктора (Вставка -> Отчет -> Конструктор). 3. Наводим стрелку мыши на темно серый фон (справа снизу например, короче там где не верхний колонтитул и не область данных (и вся эта фигня), а просто темно серый background) и и после нажатия правой кнопки мыши на нем нажимаем на слово "Свойства" в открывшемся окне "Отчет". 4. Там стираем все, что написано в разделе "Данные" в поле "Источник записей" и потом выбираем таблицу, где сидят твои нули или единички и потом выбираем в открывшемся окне то поле, в котором они сидят. Закрываем окно "Отчет". 5. В область данных суем "поле" (не надпись!) и в его свойствах прописываем в поле "Данные" мой код. 6. Закрываем окно конструктора записав все, что мы сделали. 7. Double Click по отчету теперь откроет тебе окно, в котором будут единицы и нолики заменены на тебе нужные значки. Надеюсь в этот раз проблем не будет, а то уже тема красная, а она не стоит того... p.s. На будущее могу посоветовать поставить MSDN для того, чтобы можно было там почитать полезные вещи на тему VB (и VBA так как они похожи). А вообще книжек надо как можно больше. В справке Microsoft Access, помоему, врятли можно что-то найти дельное, когда не знаешь что искать (как в этом случае), а вот в книге одной умной, Microsoft Access for Windows 95 (Microsoft Press, John Viescas) например, я все быстро нашел. А уже потом можно и в справке найти эту функцию, вот что там написано: Switch Function Example The following example uses the Switch function to determine the appropriate language for a specified city based on the values of the ShipCountry and ShipCity fields in an Orders table. You can enter the following expression in a calculated control on a form or report. The expression is shown on multiple lines for clarity; you can also enter it on a single line. = Switch([ShipCity] = "Madrid", "Spanish", _ [ShipCity] = "Berlin", "German", _ [ShipCity] = "Torino", "Italian", _ [ShipCountry] = "France", "French", _ True, "English") If the city is Madrid, the Switch function returns "Spanish"; if it is Berlin, it returns "German"; and so on. If the city is not one of those listed, but the country is France, it returns "French". If the city in question is not in the list, the Switch function returns "English". Во так все просто. Успехов! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Да ... развели вы тут полемику !!!
Мне кажется лучше ее объяснить так ! Сделай транзитную форму на основе своей таблицы , и втыкай туды цикл при открытии на обработку условия этого поля. Цикл отработал - форма закрылась - таблица готова - открываем отчет ! Private Sub Form_Load() DoCmd.GoToRecord , , acFirst ross: If IsNull(Индексоное поле) Then Goto Rep Поле1 = IIf(Поле1 = 0, " ", "V") DoCmd.GoToRecord , , acNext GoTo ross Rep: DoCmd.OpenReport "Имя отчета", acPreview DoCmd.Close End Sub По временя открытия конечно подольше , но .......тогда не надо искать что и куда прописывать в отчете |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
А... то что таблица тоже транзитная наверно говорить не нужно !!??
100 км. для бешенной собаки не крюк ! |
|||
|
||||
| sergeeff |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 19.5.2002 Репутация: нет Всего: нет |
Тут полемики нет никакой. Просто автор вопроса хочет, чтобы ей готовое на блюдечке с голубой каемочкой принесли, разжевали и в рот положили. Посмотрите сколько она вопрсов никадала в форум? Может мы все вместо нее и работать на ее фирме будем?
|
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Точно !!!
|
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
sergeeff
Знаешь что, если тебя что не устраивает, то я тебя в свою тему читать не заставляю Alles- и тебя тоже |
|||
|
||||
| Alles |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 26.6.2003 Где: RUSSIA Репутация: 2 Всего: 2 |
Какие мы обидчивые !!! Прежде всего надо сказать спасибо , что тебе все разжували и в рот положили , а потом возмущайся сколько угодно !!!
|
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |