Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Access VBA

Автор: Algofil
Дата сообщения: 01.10.2007 09:24

Цитата:
на сколько я понял Algofil вы предложили сделать просто: предположить что кусочков например в одной жалобе может быть не более 8 и для каждой из 8 отвести 1 поле типа текстовое со списком подстановки

совершенно верно, это самое простое, я так и начинал (давно) и уже лет 8-10 юзаю настольную БД, номер СД, название, оригинальное название, режиссер, стар1, стар2... размер, битрейт, дата добавления... фильмов набралось больше 1000, а руки сделать нормальную БД так и не дошли )))
вобще-то "более правильнее, но менее понятнее" было бы создание таблицы "например complaint_list" - прочитайте описание на предыдущей странице, если что непонятно, рад буду помочь (в рамках моей небольшой компетенции, ессно)
Автор: agro
Дата сообщения: 01.10.2007 19:15
она уже создана была ещё до того как я написал сюда
источник строк для поля подстановок

пока сделаю по кривому, потом учу VBA и сделаю ровно )))
Автор: Algofil
Дата сообщения: 02.10.2007 10:36
не совсем верно, источник строк для подстановки это справочник, по моей версии complaint_ref, а complaint_list - список жалоб с привязками к пациентам и справочнику жалоб. Аналог такой структуры это простой биллинг, например теплосеть хранит справочник лицевых счетов, справочник видов начислений (г/в, отопление, перерасчет и т.п.) и список начислений, т.е. таблицу куда гамузом валят проводки, однако каждая запись в такой таблице авторизована (кто и когда вносил) и привязана с одной стороны к лицевому счету (а уж там, в справочнике лицевых и адрес, и квадраты, и ФИО, и кто знает что еще) а с другой стороны к справочнику видов начислений - так что запросами можно получить любой срез, в частности то что нам печатают в квитанциях начислено-уплочено-долг - эти суммы заметьте не хранят, а вычисляют каждый раз (ну наверное сумма на начало обслуживания хранится)
Автор: nore123
Дата сообщения: 02.10.2007 14:13
пскажите пожалуйста как сделать запрос на выборку из одной таблицы сразу по двум параметрам названию (текст) и году(дата число.месяц.год)
Автор: Algofil
Дата сообщения: 02.10.2007 14:55
в конструкторе запросов выбрать нужную таблицу, из неё нужные поля и указать условия по этим полям, для даты лучше использовать понятия >, <, between ... and ...
Автор: Bersa
Дата сообщения: 09.10.2007 23:10
Ув. Гуру этой темы, помогите пожалуйста новичку. Несколько дней безрезультатно бьюсь над проблемой: есть две таблицы - в первой - огромный список двигателей, разбитый на 4 столбца: |мощность|обороты|диаметр вала|Присоединительный габарит| в которую внесены данные по мощности и оборотам, а диаметр вала и присоединительный габарит нужно взять из второй таблицы т.е. подставить значения исходя из мощности и оборотов. Как это сделать? Заранее СПАСИБО!
Автор: Algofil
Дата сообщения: 10.10.2007 08:47
Ув. Bersa, Вам известны подробности? Как то:
1. назначение и структура второй таблицы
2. наличие примари кей в таблицах
3. наличие форин кей в первой таблице
4. декартово произведение таблиц не устроит?

Автор: Bersa
Дата сообщения: 10.10.2007 18:38
1-я№ п/п тип продукции мощность двигателя обороты двигателя Диаметр вала Габарит
Автор: Algofil
Дата сообщения: 12.10.2007 09:25
насчет ключей прямо беда... что если в таблице 1 совпадут мощность двигателя и обороты для, допустим 3-ей записи с надцатью комбинациями из таблицы 2?
если же все записи уникальны (что не факт при отсутствии составного первичного ключа мощн+обороты) для первой и второй таблицы то просто:
1. запрос в реж конструктора
2. добавить обе таблицы
3. связать мощность из табл1 и табл2 (драгэндропнуть мышкой)
4. наложить условие на поле таб2.обороты = таб1.обороты
5. пасмареть на экране правильно ли выводятся нужные столбцы (т.е. в нужную строку и по одному разу)
6. поменять тип запроса на обновление таб1
Автор: Bersa
Дата сообщения: 12.10.2007 19:50
Algofil В том-то и дело, что единственные уникальные записи в обеих таблицах - № п/п Но во второй таблице повторяются значения Мощности а также Оборотов, однако не повторяется ни одна их комбинация:
в смысле: Мощность Обороты
Автор: Kafka17
Дата сообщения: 13.10.2007 16:04
А в чем проблема??
Делаете запрос, в конструкторе запросов делаете два INNER JOIN соединения между соответствующими полями таблицы и получаете искомую таблицу.
Вот как примерно это выглядит у меня:

А вот так выглядит запрос в конструкторе запросов:


Добавлено:

Цитата:
пскажите пожалуйста как сделать запрос на выборку из одной таблицы сразу по двум параметрам названию (текст) и году(дата число.месяц.год)

Обратите внимание также на функции month, day, year, которые позволяют ограничивать статистику отдельным годом, месяцем и днем.
Автор: Bersa
Дата сообщения: 13.10.2007 21:09
Kafka17
в таблице 1 есть два пустых столбца - Диаметр вала и габарит, вот как раз в них нужно внести значения из таблицы 2 для соответствующих мощности и оборотов.
Как мне кажется это нужно делать через условие на значение в конструкторе таблиц?

Мне пока удалось решить эту проблему путем создания новой таблицы с такими же параметрами как Ваш запрос на выборку:

SELECT Таблица1.мощность, Таблица1.обороты, Таблица2.[д-вала], Таблица2.габарит
INTO [Новая_таблица]
FROM (Таблица1 INNER JOIN
Таблица2 ON Таблица1.мощность = Таблица2.мощность AND Таблица1.обороты = Таблица2.обороты)

А как решить это путем изменения 1-й таблицы?
Автор: Egepsihora
Дата сообщения: 16.10.2007 09:42
Можно ли при обработке данных "программно" создавать новые поля в отчёте? Если да, то как?
Автор: Vitus_Bering
Дата сообщения: 16.10.2007 10:53
Egepsihora
Думаю, что нет...
Автор: Algofil
Дата сообщения: 16.10.2007 11:28
если в макете отчета добавить поле с эл-том управления такого (например) вида:
=IIf([db] Like "k*";[name])
то в отчетах полученных на разных наборах данных это поле будет "якобы программно якобы создаваться", на самом деле это трюк, создать несуществующее поле в процессе формирования отчета то же самое (имхо) что написать работающий запрос с обращением к несуществующим полям и/или таблицам/представлениям
Автор: LuckyELF
Дата сообщения: 17.10.2007 21:14
У меня в акксес загружаются данные из текстовых файлов, файлы расположены на сетевом диске, на диске имеется иерархия папок: IN -> YEARS -> MONTHS -> DAТЕ.
Т.е есть каталог IN, в нем созданы каталоги по годам - 2000, 2001 ..., 2007, в каждом каталоге года есть каталоги месяцев - 01 ... 12, в каждом из каталогов месяца созданы каталоги по датам - 01_01_2007 и т.д..
В каталоге-дате лежат файлы, порядка 50 штук, среди них порядка 10-15 нужных мне.
Для сбора файлов проводится обходом всех каталогов и поиском по маске нужных файлов, все замечательно работает пока в целях экономии места файлы не сожмут в архив.

Собственно в этом и есть проблема. Кто нить может подсказать решение? архивы там бывают 3-х видов: рар, зип, арджи. Возможно вложение архива в архив.
Автор: Algofil
Дата сообщения: 18.10.2007 08:58
см тему "Командная строка, батники, сценарии (bat, cmd)" там есть готовые решения
Автор: Egepsihora
Дата сообщения: 18.10.2007 14:59
Подскажите, пожалуйста, как можно в отчёт Access добавить результируещее поле Итого через каждые N записей??? Спасибо
Автор: Vitus_Bering
Дата сообщения: 18.10.2007 15:32
Egepsihora
Вот так в лоб не сделать. Надо извращаться с группировкой данных и использовать Поле-Данные-Сумма с накоплением.
Автор: Egepsihora
Дата сообщения: 18.10.2007 15:52
Я пробовала использовать Поле-Данные-Сумма с накоплением, но результат, мягко говоря, брался с потолка). Можно поподробнее о правилах группировки?

Добавлено:
Вопрос снимается, спасибо за внимание
Автор: moonling_io
Дата сообщения: 19.10.2007 03:49
помогите, плиз, разрешить два вопроса. оба касаются отчетов access.

в моём отчете некоторые поля (одной таблицы) располагаются одно под другим, и соостветственно, когда включаю CanGrow, то текст верхнего поля наезжает на нижний. как это исправить я не знаю. только если отказаться от такого размещения полей, но мне хотелось бы, чтобы верхнее поле расширяясь cдвигало нижерасположенное дальше вниз.


второй вопрос тоже из той же серии: в области данных размещаю поля из иерархически свзанных таблиц (один-ко-многим). чтобы не дублировалось поле из таблицы верхнего уровня, отключила повторы. там, где они должны были быть, остаются пустые места (это также видно на картинке). но мне нужно, чтобы на эти пустоты подвигался текст снизу, чтобы выглядело все компактнее при просмотре отчета.

буду очень признательна.
Автор: moonling_io
Дата сообщения: 21.10.2007 14:27
вопросы снимаются, разобралась
спасибо всем откликнувшимся:D
Автор: Egepsihora
Дата сообщения: 23.10.2007 12:54
Подскажите пожалуйста, как реализовать изменение одного поля в каждой записи таблицы конкретным значением из другой таблицы, при условии, что совпал индекс. Я пишу так:
UPDATE T_Tek_Zam
SET Name_Dec_Num = (SELECT t_Izd_Det_Mat.Dec_Num FROM t_Izd_Det_Mat WHERE
(t_Izd_Det_Mat.Kod_Dec_Num = T_Tek_Zam.Kod_Dec_Num_Zam));
Мне выводится сообщение: в операции должен использоваться обновляемый запрос.
Что это значит и как обойти эту проблему? спасибо
Автор: Algofil
Дата сообщения: 23.10.2007 13:04
проще склепать этот запрос в конструкторе визуально, а потом переключить вид отображения на скуль, он в аксесе с особенностями
Автор: Egepsihora
Дата сообщения: 23.10.2007 13:42
А в этом случае как мне указать, что значение надо поменять?

Добавлено:
Спасибо за подсказку-всё получилось))
Автор: Egepsihora
Дата сообщения: 24.10.2007 08:02
Новый вопрос, подскажите плиз, как выполнить объединение таблиц, чтобы после определённых записей одной таблицы, вставлялись записи из другой, потом опять из превой итд. Можно ли сделать INSERT INTO в после конкретной записи?
Автор: Vitus_Bering
Дата сообщения: 24.10.2007 08:26
Egepsihora

Цитата:
Можно ли сделать INSERT INTO в поле конкретной записи?

Нет.
Можно программно, но это достаточно муторно... А вообще, мне кажется, постановка задачи не правильная.
Автор: Egepsihora
Дата сообщения: 24.10.2007 09:58
Моя задача такая: есть таблица деталей и есть таблица замен для деталей из первой таблицы. Для вывода в отчёт мне надо в первую таблицу после каждой детали добавить строки с данными о заменах. Если Вы видите более рациональный путь, то, плиз, подскажите. Возможно можно сделать выборку в третью таблицу, но я с трудом представляю, какой должен быть запрос.
Автор: Algofil
Дата сообщения: 24.10.2007 10:07

Цитата:
Для вывода в отчёт мне надо в первую таблицу после каждой детали добавить строки с данными о заменах.

делается обычный запрос, полученный результат типа:
1    П144091055300    Анод ДПРХХ 6,0X500X1500 М1
2    П144091112310    Анод ГПРНХ 10x200x1100 М1
3    П144091113310    Анод ГПРНХ 10x200x1100 М1
4    П144101054300    Анод ДПРХХ 6,0x500x1500 М1р
5    П144111054300    Анод ДПРХХ 6,0x500x1500 М1ф
6    П144121054300    Анод ДПРХХ 6,0x500x1500 М2р
7    П144131054300    Анод ДПРХХ 6,0x500x1500 М3р
выглядит не ветвисто и это намана для реляционных БД, а Вам надо так:
1    П144091055300
    Анод ДПРХХ 6,0X500X1500 М1
2    П144091112310
    Анод ГПРНХ 10x200x1100 М1
3    П144091113310
    Анод ГПРНХ 10x200x1100 М1
4    П144101054300
     Анод ДПРХХ 6,0x500x1500 М1р Анод ДПРХХ 6,0x500x1500 М1ф Анод ДПРХХ 6,0x500x1500 М2р Анод ДПРХХ 6,0x500x1500 М3р
добавляете в отчет группировку и все будет красиво и лесенкой

Добавлено:
эт я ессно скульный результат ручками поправил потому кривовато, лень в аксес лезть )
Автор: Egepsihora
Дата сообщения: 24.10.2007 10:32
Algofil, понятно, спаибо большое)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: BDE - траблы, помогите пожалуйста срочно...


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.