Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Access VBA

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Открыть новую тему     Написать ответ в эту тему

Guest

BANNED
Редактировать | Цитировать | Сообщить модератору
   
 
Обсуждаем вопросы только по Access VBA
(программирование макросов, скриптов, пользовательских функций и т.п.).
Приветствуются ссылки на ресурсы и справочную литературу по теме.

 

NB! Дублирующая тема VBA for Access закрыта во избежание путаницы. Оставлена эта, как более ранняя и имеющая больше сообщений.

Смежные темы:
Помощь в создании SQL-запросов: SQL запрос
Программы » Microsoft Office 2019 & 365 | 2016 | 2013 | 2010 | 2007 | 2003
Программы » OneNote | Outlook 2013 & 2016 & 2019 | Outlook 2010 | Microsoft Mathematics & Math Solver
Программы » Word FAQ | Excel FAQ | Access FAQ
Прикладное программирование » Word VBA | Excel VBA
Андеграунд » Microsoft Office 2019 | 2016 | 2013 | 2010 | 2007 | 2003
Андеграунд » OneNote | Visio | SharePoint Server | Project Server | Exchange Server
Андеграунд » Надстройки (add-ins) и коммерческие макросы Excel
Андеграунд » Самостоятельная сборка дистрибутивов Оffice 2007/2010/2013/2016 | MUI для Office 2007
----------
Как в Access перместить запись из одной таблицы в другую (допустим по нажатию кнопки на форме)?

Отправлено: 18:31 05-09-2002 | Исправлено: ALeXkRU, 17:14 03-08-2021
GeXamin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LightMike.
 
Использовать DBLookupComboBox, либо если нужно прямо в гриде, то попробуй cxGrid или DBGridEh. Там можно указывать свойства колонок.

Всего записей: 131 | Зарегистр. 07-09-2006 | Отправлено: 10:05 29-06-2011
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
videolamer_V
 
На самом деле луче не книга, а практический опыт в конкретной работе. А когда встанет какой-то вопрос и в справке и в книге почти любой найти можно...

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 16:56 03-07-2011
videolamer_V



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PrWork1
Да в этой программке вопросы встают ребром прям на каждой минуте изучения или я бы даже сказал метода тыка. Вот сейчас создаю простенькую базу данных учета чеков вебмани. И так имеем: чеки ( например код 6835568217 и номер 23476274049040059097  с определенным номиналом, например 200 у.е. Создал таблицу "чеки" - столбцы, "код чека" "номер чека" "номинал" в эту таблицу забиваю чеки, которые имеются. Создаю вторую таблицу "клиенты" - столбцы "дата" "кому" "сколько" "с какого чека-код". Например Иванов Иван получил 30 у.е с чека под кодом 6835568217. Создаю простой запрос, запрос работает, показывает что Иванову оплачено 30 с чека 6835568217. Теперь вопрос в том как сделать так, чтобы с чека  6835568217 в таблице "чеки" в столбце "номинал" сумма 200 автоматически списывалась на 30?  Мне просто нужно знать, сколько осталось на определенном чеке денег, кому сколько с этого чека переведено и.т.д. Может кто нибудь напишет для меня на Аксес эту долбаную базу учета? Думаю для Гуру это как два пальца об асфальт.. Я замудохался уже искать ответы в интернете и в книжках. Разные программы поддавались само учению, но эту никак не получается выучить.

Всего записей: 768 | Зарегистр. 24-08-2007 | Отправлено: 13:27 05-07-2011 | Исправлено: videolamer_V, 13:43 05-07-2011
videolamer_V



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Так как вычесть сумму я разобрался, наконец то. Теперь не могу создать запрос, в котором не будет повторяться один и тот же чек как на скрине  
 

 
мне нужно просто, чтоб открылся отчет конкретно по чеку сколько на нем осталось и все. как сделать? Помогите. Вот сам файл http://ifolder.ru/24557098

Всего записей: 768 | Зарегистр. 24-08-2007 | Отправлено: 12:09 06-07-2011 | Исправлено: videolamer_V, 12:11 06-07-2011
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
videolamer_V
Обычно в базе фиксирую сами чеки в отдельноцй таблице, и отдельно операции, а вычисляют, сколько где осталось запросом, т.е. рассчитанные значения остатка не хранят. В принципе, в базе так и есть
 
Запрос примерно такой наверное нужен:
SELECT Чеки.[код чека], Чеки.[номер чека], Чеки.номинал, Sum(Клиетны.сумма) AS [Sum-сумма]
FROM Чеки LEFT JOIN Клиетны ON Чеки.Код = Клиетны.[код чека]
GROUP BY Чеки.[код чека], Чеки.[номер чека], Чеки.номинал;
 
 

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 00:02 10-07-2011 | Исправлено: PrWork1, 00:03 10-07-2011
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LEFT JOUN позволит выводить все чеки, даже те, по которым не было операций, а GrOUP  группирует по коду чека

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 08:39 10-07-2011
videolamer_V



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PrWork1
Спасибо. Я немного изменил базу, сейчас списывается нормально. Да, действительно, есть загвоздка с выводом чеков по которым не было операций. На другом форуме пробую получить ответы. Если что отпишусь. В кодах я нихрена не смыслю.

Всего записей: 768 | Зарегистр. 24-08-2007 | Отправлено: 17:47 12-07-2011
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
videolamer_V
Напиши текс запроса сюда, поможем.

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 18:40 12-07-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как такое сделать? Начинающий йа...
Есть клиенты и номера договоров (ФИО-№-Дата договора-Сумма договора). Сотрудниками осуществляется обзвон клиентов и краткая запись результата звонка (Дата/время звонка-Результат-Сотрудник). ФИО клиентов могут повторяться, номера договоров тоже не уникальны. Понимаю что надо хранить результаты обзвона в отдельной таблице, но как привязать 10 звонков к одному ФИО-№договора?
Сейчас это все ведется в excel, но там получается по одному договору несколько строк (если было больше одного звонка), хотелось бы оптимизировать базу.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 23:36 12-07-2011
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars
Обычно создается отдельная таблица с полями:
ID данной таблицы(autonumber), ID Clienta, ID договора + остальные необходимые поля
 
Но это если структура базы нормализована. Я не знаю, как вы храните ФИО и № Договора.  
Может вам и двух полей на ID-s хватит вместо трех.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 01:16 13-07-2011 | Исправлено: dneprcomp, 01:20 13-07-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Вообще задача такая: вывод формы на экран с представлением в табличном виде:  
Регион-ФИО-Договор-Дата договора-Сумма договора-Остаток суммы-Сотрудник
При нажатии на кнопку выводится форма записи результата звонка.
Предполагаю уникальные данные по договору хранить в одной таблице: номер договора, фио, сумма и дата (никогда не меняются). Может представление какое подскажете: типа таблица "Договора"- такие то поля, таблица "Регионы"/поля, таблица "Результаты звонка"/поля, и связи таблиц/полей.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 07:51 13-07-2011
videolamer_V



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PrWork1
Вот код который выводит результат по чекам с которых произошло списание средств, но те чеки с которых ничего не списалось не выводятся.. Снизу ссылка на саму базу, пароль 123 На другом форуме сказали, что нужно применить функцию NZ(). А я то не буб бум...
 
SELECT Списание.[код чека], Списание.[номер чека], Списание.номинал, Списание.погашено, [номинал]-[погашено] AS остаток
FROM Списание;
 
http://webfile.ru/5435817

Всего записей: 768 | Зарегистр. 24-08-2007 | Отправлено: 09:38 13-07-2011 | Исправлено: videolamer_V, 09:56 13-07-2011
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars
 
Так ведь уже сами и представили. Но если так уж хочется подтверждения...
 
таблица "Договора"
DogovorID(autoincrement),номер договора, фио, сумма и дата
 
таблица "Результаты звонка"
ResultID(autoincrement), Дата/время звонка, Результат, СотрудникID, DogovorID
 
таблица "Регионы"
RegionID(autoincrement), и какие-то поля.
 
таблица "Сотрудники"
СотрудникID(autoincrement), FirstName, LastName, и что-то еще по потребности
 
Про регионы речь не шла, т.ч. какие поля нужны решайте сами
Если регион должен указываться в результатах звонка, то добавить поле RegionID в "Результаты звонка"
 
Связь "Договора" и "Результаты звонка" через поле DogovorID.
Связь "Регионы" и "Результаты звонка" через поле RegionID
Связь "Сотрудники" и "Результаты звонка" через поле СотрудникID
 
Вариант связи для каждого из трех - One-To-Many (Один ко многим)
Один рекорд в  "Договора", многие в "Результаты звонка"
Один рекорд в  "Регионы", многие в "Результаты звонка"
Один рекорд в  "Сотрудники", многие в "Результаты звонка"
 
Соль и специи добавить по вкусу

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 09:47 13-07-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
Вот спасибо! Я уже начинаю немного въезжать). Еще вопрос: данные в основную таблицу подгружаются из текстовых файлов, где каждому договору уже присвоены регион и подрегион. Нужно ли создавать таблицы "Регион" и "Подрегион", если они уже есть у каждого договора? Сам думаю что нет, но все-таки?

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 12:05 13-07-2011
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars
Что такое "Регион" и "Подрегион"?  
Дайте пример информации как она выглядит в текстовом файле.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 17:14 13-07-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот так:
  Регион Подрегион ФИО Номер дог. Дата дог. Сумма дог. Долг на сегодня    
Приволжcкий Екатеринбуржский Петров И.И. 00-55/457 21.05.2010 33000 4000    
Центральный Московский Иванов В.В. 35489 14.05.2009 12000 3500    
Центральный Вологодский Петров И.И. 35489 25.03.2011 10000 1700,50

Текстовые файлы выгружаются ежедневно.
Все поля кроме "Долг на сегодня" никогда не меняются.
Если у клиента нет долга то его нет и в файле.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 17:52 13-07-2011 | Исправлено: aidomars, 17:55 13-07-2011
PrWork1

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
videolamer_V
Вот держи, сделал наверное как тебе нужно. (изменились оба запроса)
http://webfile.ru/5436852
Пароль 123

Всего записей: 582 | Зарегистр. 15-12-2005 | Отправлено: 18:44 13-07-2011 | Исправлено: PrWork1, 18:45 13-07-2011
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aidomars
Видя структуру данных, я бы добавил поле DogovorNo в таблицу "Договора" и его сделал бы связующим полем в "Результаты звонка". Т.е. заменил бы в "Результаты звонка" поле DogovorID на DogovorNo.
В теории, можно было бы сделать еще 2 таблицы - " Регион" и "Подрегион"
 
Правда это может несколько усложнить для вас как начинающего работу с данными.
В добавок, еще и ваше примечание
Цитата:
Текстовые файлы выгружаются ежедневно.  
Все поля кроме "Долг на сегодня" никогда не меняются.  
Если у клиента нет долга то его нет и в файле.
вызывает вопросы.
1.Для чего в сущности предназначена данная база
2.Какие действия будут осуществлятся с данными
3.Каков источник текстового файла и как/кто этот файл производят
4.Если " у клиента нет долга то его нет и в файле", то что должно произойти с рекордом
   из предыдущего файла, когда у клиента долг был.
   Т.е., так и будет висеть с долгом?
5.Производное от 4, 1 и 2    
  Собираетесь ли каждый раз полностью очищать таблицу "Результаты звонка" перед
  добавлением данных из файла.
 
Было бы не лишним услышать ваше видение процесса работы с данными
 
Базу проектируют под задачу, под необходимось. Пока задача не определена, невозможно дальнейшее обсуждение структуры базы

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 19:20 13-07-2011 | Исправлено: dneprcomp, 19:27 13-07-2011
videolamer_V



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
PrWork1
Спасибо! А можно исправить в "Итоговом запросе по чекам" колонка с "Погашено1" переименовать в "погашено" у меня не получилось, ошибка цикличесской ссылки.  И в запросе списание в непогашеном чеке колонка "погашено" можно вывести 0,00 или она будет пуста? И ещё я никак не мог найти в Аксесе формат доллара...

Всего записей: 768 | Зарегистр. 24-08-2007 | Отправлено: 19:49 13-07-2011 | Исправлено: videolamer_V, 19:49 13-07-2011
aidomars



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dneprcomp
А зачем менять DogovorID на DogovorNo, или в чем разница между ними?
1. База нужна для занесения результатов обзвона должников.
2. Результат звонка записывается в таблицу "Результаты звонка" с указанием фио сотрудника, даты звонка и даты обещания оплаты, которая нужна для повторного звонка, если задолженность не была погашена.
3. Источник текстового файла - филиалы. Выгружаем ежедневно сами через телнет. В настоящий момент ведем базу в excel 2003. Есть макрос, преобразует текстовые файлы в отдельную книгу, а оттуда уже в рабочую. В ней и пишем результаты звонков. Уже за 10000 строк перевалило), еще чутка и писать некуда будет.  
4. Если строка не нашлась в файле, считается что клиент погасил долг, добавляется дата гашения (в таблице строка остается), и суммы обнуляются. Забыл написать, что есть еще дата начала долга.
5. Нет, таблица не очищается. В том то и дело, что нужны все данные, что были введены. Для отчетов и статистики.
Краткая суть:  
а) Сотрудник открывает файл, т.е. основную таблицу (Регионы, ФИО, номер, дата начала долга, дата обещания, сотрудник).  
б) Выбирает строку, щелкает на ней, появляется форма для записи с основными данными (ФИО, Номер, долг и т.д.). Вводит текст и сохраняет запись.  
в) При желании может посмотреть предыдущие записи по этому клиенту.
Ну и много еще чего. Повторюсь, это все сделано мной в excel + vba, но думаю правильней будет в access перевести, да и самому интересно.

Всего записей: 982 | Зарегистр. 23-04-2007 | Отправлено: 19:51 13-07-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Access VBA


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru