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

» Про MS Access

Автор: noname99
Дата сообщения: 21.11.2007 17:57
Привет всем, у меня есть небольшая проблема если кто поможет буду благодарен, работаю с оперативной инфой, ну и для себя решил подсобрать все на аксе, создал базу и запрос к базе , в запросах у меня сумма поля из таблицы,ну вот в чем проблема по истечении 5 дней мне приходят точные цыфры т.е сумма за 5 дней (откорректированная), так вот возможно ли изменять(корректировать) поле sum в запросе вручную не трогая данные в таблице? если да то как?
Автор: dneprcomp
Дата сообщения: 21.11.2007 20:34
ildar1
Вы используете Access как программу/application. Все юзерские формы и логика находятся внутри Accessa. Вариант использования и установки по приведенной ссылке.

Можно использовать Access как базу данных только. Тогда GUI осуществляется отдельной специально написанной программой, которая подключается к базе. При таком использовании никакой установки Access не требуется. Просто переносится файл. Но зато требуется установка этой программы.

Честно говоря, я лично сомневаюсь, что приведенный по ссылке инсталят будет работать на совершенно голой(без установленного Office) машине. Не уверен, будет ли работать на машине с урезанным Office(без установленного) Access

noname99
Все равно не понятно что надо сделать.
Цитата:
,ну вот в чем проблема по истечении 5 дней мне приходят точные цыфры т.е сумма за 5 дней (откорректированная), так вот возможно ли изменять(корректировать) поле sum в запросе вручную не трогая данные в таблице
Куда приходит сумма? Где она хранится? Что значит корректировать в запросе? Приведи сам запрос и структуру данных.
Автор: noname99
Дата сообщения: 21.11.2007 21:34
ситуация такая,в таблице я создал поле дата 1...31 ну и числовое поле где ввожу например на первое число 100 на второе 200 на третье 300 потом создаю запрос на сумму данного поля, если сложить эти числа получится 600 это оперативная сумма, а вот мне через 5 дней говорят точное число, например 599, так вот в таблице я не хочу вычитать из 100 или 200 или 300 единицу чтоб получить 599 ,возможно ли изменить в запросе сумму не трогая данных в таблице. Надеюсь объяснил понятно.
Автор: dneprcomp
Дата сообщения: 21.11.2007 22:14
noname99

Цитата:
а вот мне через 5 дней говорят точное число, например 599,
SELECT 599 AS Expr1
Все равно, ощущение что что-то не верное в твоей работе с базой. Запрос будет приведен когда-нибудь или так и продолжать догадываться?
Автор: ildar1
Дата сообщения: 22.11.2007 10:00

Цитата:

Вы используете Access как программу/application. Все юзерские формы и логика находятся внутри Accessa. Вариант использования и установки по приведенной ссылке.


Хотелось бы уточнить - получается что innosetup может создать лицензионно чистый дистр для использования базы .MDB на компе, где нет аксесса?


Цитата:

Можно использовать Access как базу данных только. Тогда GUI осуществляется отдельной специально написанной программой, которая подключается к базе. При таком использовании никакой установки Access не требуется. Просто переносится файл. Но зато требуется установка этой программы.


На всякий случай - а что это за программа?
Автор: noname99
Дата сообщения: 22.11.2007 17:51

Цитата:
Все равно, ощущение что что-то не верное в твоей работе с базой. Запрос будет приведен когда-нибудь или так и продолжать догадываться?


С базой все элементарно да и с запросом тоже, ежедневно вписываю числа n которые в запросе плюсуются и выдают сумму чисел вводимых каждый день, вот мне и нужно узнать могу ли я изменить эту сумму? Sum - ХХХХ: Sum([ХХХ Noyabr].[ХХХ])







Автор: dneprcomp
Дата сообщения: 22.11.2007 22:23
noname99

Цитата:
вот мне и нужно узнать могу ли я изменить эту сумму? Sum - ХХХХ: Sum([ХХХ Noyabr].[ХХХ])
Ну так и пиши
Код: 599 as Sum или 599 as Sum - ХХХХ
Автор: do_nor
Дата сообщения: 23.11.2007 11:24
Подскажите пожалста, в связаной таблице на стороне многие были удалены данные ...как обновить информацию чтобы восстоновить удаленные значения из связанных таблиц?
Автор: noname99
Дата сообщения: 23.11.2007 20:21

Цитата:
599 as Sum или 599 as Sum - ХХХХ

если все было бы так просто,спасибо за помощь,но ситуация такова что у меня есть и вторая 5-ка дней и 3-я и так до конца месяца, а если я вставлю "599 as Sum или 599 as Sum - ХХХХ" то вторая 5-ка дней и все последующие не будут начислятся т.е не будет общая сумма за месяц, и вообще как бы вы мне посоветовали все это провернуть более легким способом?заранее благодарю
Автор: dneprcomp
Дата сообщения: 24.11.2007 02:43
noname99
Вместо 599 надо использовать переменную.

Цитата:
и вообще как бы вы мне посоветовали все это провернуть более легким способом
Ничего не могу сказать. Логика работы програмы не известна. Структура базы неизвестна. Что хотим получить тоже в сущности не понятно.
В общем случае, я бы добавил поля в базу для хранения реальной суммы и даты. Дефолтное значение поля = -1. В программу добавил бы логику:
Код:
sqlString="Select.... "
RealSumTotal = -77
If RealSum1 > -1 Then 'т.к. в неделю могут передать и 0
If RealSumTotal > -1 Then
RealSumTotal = RealSumTotal + RealSum1
Else
RealSumTotal = RealSum1
End If
'Повторить предыдущий блок IF для всех четырех значений RealSum
'или загнать их значения в массив и прогнать этот блок через For Next


If RealSumTotal < 0 then
sqlString = sqlString & сумма полей, переданных раньше
Else
sqlString = sqlString & RealSumTotal & " as SUM"
End if
Автор: noname99
Дата сообщения: 24.11.2007 20:13
Добавлено:

Цитата:
sqlString="Select.... "
RealSumTotal = -77
If RealSum1 > -1 Then 'т.к. в неделю могут передать и 0
If RealSumTotal > -1 Then
RealSumTotal = RealSumTotal + RealSum1
Else
RealSumTotal = RealSum1
End If
'Повторить предыдущий блок IF для всех четырех значений RealSum
'или загнать их значения в массив и прогнать этот блок через For Next


If RealSumTotal < 0 then
sqlString = sqlString & сумма полей, переданных раньше
Else
sqlString = sqlString & RealSumTotal & " as SUM"
End if


Огромное спасибо, обязательно проверю,впринцыпе я так и сделал,создал доп.таблицу т.е в одной пишу то что получаю ежедневно а в другой уже отредактированное. Подскажите еще кое что,как писать обращение к конкретной строке в таблице?и как можно сделать так что,когда вписываю что то в одной таблице данные автоматически передавались в другую таблицу, заранее благодарю.
Автор: dneprcomp
Дата сообщения: 25.11.2007 00:26
noname99

Цитата:
как писать обращение к конкретной строке в таблице
В какой таблице? В тайбле или в гриде?
Цитата:
как можно сделать так что,когда вписываю что то в одной таблице данные автоматически передавались в другую таблицу




Добавлено:
'В принципе' пишется через И и раздельно. А то глаза режет
Автор: noname99
Дата сообщения: 25.11.2007 18:15
вот такие мы неграмотные ну а если ключевое поле у меня стоит дата? или какое то другое поле служит ключем?

а строка в тайбле

когда ставлю галочку над "обеспечение целостности" он проходит а вот когда ставлю галочку над "каскадное обновление" он пишет то "недопустимое описание поля дата при определении индекса или связи" почему ?
Автор: Lovec
Дата сообщения: 26.11.2007 09:06
Можно ли в Access интегрировать изображения, чтобы потом они отображались на форме?
Или только их можно хранить в качестве внешних файлов?
Автор: dneprcomp
Дата сообщения: 26.11.2007 09:10
noname99

Цитата:
недопустимое описание поля дата при определении индекса или связи" почему
Поля должны быть однотипными. Данные в таблицах должны соответствовать затребованным связям.
Что происходит в базах и так понять нелегко. А еще и с русским переводом... Что такое "описание" и чему оно соответствует в нормальном английском сообщении? Вопрос риторический.
Попробуй создать два пустых тейбла с такой же структурой. Если получишь то же сообщение, значит связываемые поля не одинаковы по типу. Если пройдет нормально, значит в данных проблемы.
Автор: Dixi257
Дата сообщения: 26.11.2007 14:37

Цитата:
Можно ли в Access интегрировать изображения, чтобы потом они отображались на форме?

Можно интегрировать в качестве бинарных данных. На форме отображать можно не все типы графических файлов, еси мне не изменяет память, то bmp, gif, wmf? jpg?
Автор: noname99
Дата сообщения: 26.11.2007 21:07
а что насчет обращений к строкам?
Цитата:
Цитата:как писать обращение к конкретной строке в таблице

В какой таблице? В тайбле или в гриде?

Автор: dneprcomp
Дата сообщения: 26.11.2007 21:32
noname99

Цитата:
В какой таблице? В тeйбле или в гриде?
Что есть таблица?
Автор: evgenych
Дата сообщения: 27.11.2007 00:52
Люди, подскажите.

Я добавляю данные из одной таблицы в другую с помощью "запроса на добавление".
Есть поле "Серийный номер"в обеих таблицах.

В источнике надо отобрать записи с такими серийными номерами, которых нет в приемнике.
В приемнике свойства этого поля "Индексировано (Совпадения допускаются)".

Как бы попроще это сделать?
Автор: dneprcomp
Дата сообщения: 27.11.2007 01:50
evgenych

Цитата:
В источнике надо отобрать записи с такими серийными номерами, которых нет в приемнике
Используй как критерий Null
Автор: evgenych
Дата сообщения: 27.11.2007 11:16

Цитата:
Используй как критерий Null



Поле: Выражение4: DLookUp("[Наряд-заказ]";"Детализация_";"[Серийный номер]=[ZAV_NUM]")
Условие отбора: =Null

"Детализация_" - таблица-приемник, "Наряд-заказ" и "Серийный номер" - ее поля.
Поле "ZAV_NUM" - это поле из таблицы-источника.

При выполнении запроса выдается ошибка:
"Введенное в качестве параметра запроса выражение вызывает ошибку: Приложению 'Microsoft Office Access' не удается найти имя 'ZAV_NUM' из этого выражения".


Хотя тут же рядом, в этом же запросе есть такой столбец!
Поле: ZAV_NUM
Добавление: Серийный номер
И тут на ZAV_NUM никак не ругается.
Автор: dneprcomp
Дата сообщения: 27.11.2007 20:49
evgenych
Null надо использовать в Select запросе.
Код: SELECT источник.Серийный номер
FROM источник LEFT JOIN приемник ON источник.Серийный номер= приемник.Серийный номер
WHERE (((источник.Серийный номер) Is Null));
Автор: evgenych
Дата сообщения: 28.11.2007 14:37
dneprcomp

Цитата:

Null надо использовать в Select запросе.

Код:
Код:SELECT источник.Серийный номер
FROM источник LEFT JOIN приемник ON источник.Серийный номер= приемник.Серийный номер
WHERE (((источник.Серийный номер) Is Null));

Если не сработает поменяй Left на Right.
Автор: diodio
Дата сообщения: 28.11.2007 16:25

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



Сделай нормализацию вначале, т.е. справочник фио, пусть будет таблица People: Id, F, I, O. Вторая пассп.данные, пусть таблица Passport: id - счетчик, people_id - код человека, pass_num, pass_ser. Третья Result: Дата, Сумма, people_id. Так будет проще, т.е. если нет инфы в справочнике People, то запрещена и вся остальная информация.



Cпасибо!
А как сделать, что бы заносились записи в таблицу, если совпадение не с одним полем не найдено? Фио, я имею ввиду.
Автор: noname99
Дата сообщения: 01.12.2007 22:59
ребята помогите пожалуйста,мне нужно открыть отчет через макрос,причем отчет чтоб открывал только последнюю страницу,открыть отчет через макрос я могу а вот чтоб открывал последнюю страницу у меня не получается. Заранее благодарю
Автор: PhpRu
Дата сообщения: 02.12.2007 19:42
Всем привет. Такая ситуация
Имеется форма с 2-мя выпадающими списками (A и B).
Необходимо выводить в списке B значения, исходя из аргумента А.
Список А заполняется напрямую из таблицы. Список B из запроса.
запрос такой:
SELECT Hardware.Name, Hardware.Quantity, Hardware.Price, Hardware.NB_id
FROM Hardware
WHERE (((Hardware.NB_id)=[Forms]![Продажа запчасти]![hid_id]))
ORDER BY Hardware.Name;

[Forms]![Продажа запчасти]![hid_id] - это и есть тот ID, который выбирается в списке А.
Проблема в том,что список B заполняется только первый раз. А все последующие выводит такие же значения, т.е.
если выбрать в А 3, то в В выведутся значения для 3. А если потом выбрать 5, то все равно выводятся как для 3.
Что можно сделать? или как реализовать иначе?
Автор: noname99
Дата сообщения: 03.12.2007 17:10
еще вот такая ситуация,имеется отчет, состоящий из 31 стр. до 30-й странице у меня идет поле с накопителем, но на 31-й стр. мне нужно заменить это поле на число находящееся в таблице,как можно будет это сделать?
Автор: noname99
Дата сообщения: 04.12.2007 18:57
???
Автор: Dixi257
Дата сообщения: 05.12.2007 19:55
noname99

Цитата:
???

Вот именно, никто не понял, что Вы хотите. Может быть Вам включить нужные данные в примечание к отчету, тогда данные будут печататься на последеней странице.

Автор: KenGa
Дата сообщения: 06.12.2007 23:36
Господа, подскажите, есть ли инфа по тому, как сделать в отчете выравнивание в поле по ширине? Нигде не могу найти %(

Страницы: 12345678910111213141516171819202122

Предыдущая тема: Как замедлить скорость чтения CDROM?


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