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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
после импорта Вашего примера в аксес примитивный запрос с группировкой в конструкторе выдал вот что:
rep    tip    kdn    dnn    kol
1    4    238      22-06    0
1    4    11436 МП90          0
2    1    179      01-069    0
2    1    5187      220601    0
2    1    10117      НП90    15
2    1    10117      НП90 ДП    0
2    1    10117     16x18    0
 
вроде так и нужно, в чем проблема то?
 
SELECT Rep.rep, Rep.tip, Rep.kdn, Rep.dnn, Rep.kol
FROM Rep
GROUP BY Rep.rep, Rep.tip, Rep.dnn, Rep.kol, Rep.kdn
ORDER BY Rep.rep, Rep.tip, Rep.dnn, Rep.kol DESC;
 

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 18:30 15-11-2007
Egepsihora

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема в том, что у меня он так упорно НЕ выводит в отчёт)) Строку "2    1    10117     16x18    0" он лепит в 4 позицию  

Всего записей: 22 | Зарегистр. 16-10-2007 | Отправлено: 19:01 15-11-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну я скопировал Ваши данные в текстовый файл, импортнул, все поля кроме dnn (текст) автоматом стали числовые (по дефолту в аксесе 4 байта со знаком), потом кликнул пару раз мышкой, узрел результат, скопипастил его сюда, сравнил с требуемым, вернулся в аксес, открыл окно сиквела скопипастил запрос и всё, проверьте типы данных ("21" и "121" совсем не то что 21 и 121 при сортировке) и пожалуй  порядок следования полей в ГРОУП и ОРДЕР

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 10:07 16-11-2007
Egepsihora

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil, я не понимаю, как увас работает такая группировка. В моём примере-гд данных больше-она не работает. Может есть какая нибудь еще возможность отсортировать как требуется??  

Всего записей: 22 | Зарегистр. 16-10-2007 | Отправлено: 10:18 16-11-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
создайте новую БД, в ней создайте таблицу на пять полей, киньте туда данные из примера, отработайте запрос, если получится - сравните с исходной типы полей и импортните данные из старой в новую, проверьте на большем количестве, если работает импортните запрос из новой БД в старую

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 11:08 16-11-2007
kauh



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи хотелось бы узнать по поводу Access. Ситуация такая: нужна база для учета сотрудников(соответствнно около 20 полей на человека(ФИО, номе и серия паспорта, место проживания и т.п.)). Сотрудников человек 700. Плюс каждый месяц около 100 новых. В итоге я думаю что будет крутиться в активе будет около 3000-4000 сотрудников.
Целесообразность построения этого хозяйства на Access?

Всего записей: 92 | Зарегистр. 01-12-2003 | Отправлено: 17:34 20-11-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Целесообразность построения этого хозяйства на Access?

если настольная база то хоть в ехеле пиши
если сетевая - выбирай подешевле
в аксесе визарды понятные американцу и притом всё по русски, это плюс для юзеров

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 17:39 20-11-2007
kauh



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Algofil
впринципе база насторльная, но будет нужна синхронизация между другими базами access(только некотрых значений). Базы будут на разных компах, но в одной локалке.
Компы все офисные(оператики 512), не будет ли подтормаживать база с стольким количеством значений?

Всего записей: 92 | Зарегистр. 01-12-2003 | Отправлено: 17:47 20-11-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нет, количество записей смехотворно мало для базы, синхронизация в аксесе тож простая, тока подчитай там про ключевые поля, типа код репликации и бла-бла-бла (хотя я бы посоветовал составаное поле, типа счетчик+код машины) работать будет если просто аксесс запускается

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 17:53 20-11-2007
dmka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Базы будут на разных компах, но в одной локалке

Пиши сразу на каком-нибудь sql-сервере (msde + .net или asp.net тут хороший выбор) и не нужно будет никакой синхронизации, потому как это постоянный источник гемора.
Потом еще этот Access вполне конкретных денег стоит на каждого юзера, хотя у нас как-то не принято на это обращать внимание

Всего записей: 947 | Зарегистр. 23-04-2003 | Отправлено: 22:17 20-11-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Пиши сразу на каком-нибудь sql-сервере
+1024
и насчет подешевле тож не надо забывать, мало ли...

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 12:17 21-11-2007
kauh



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
обдумывал все варианты решил писать в access'e. так и мне проще и народу )))
только вот в чем загвоздка: т.к. с базой будут работать сразу несколько человек одновременно боюсь как бы не вышло так, что бы одну и ту же запись редактировало одновременно два человека. мона как нить сделать в асесе, что бы при редактировании записи с сотрудником он выделялся другим цветом или что нить другое(становлся недоступен для редактирования).. что посоветуете?

Всего записей: 92 | Зарегистр. 01-12-2003 | Отправлено: 14:51 21-11-2007
Algofil



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
боюсь как бы не вышло так, что бы одну и ту же запись редактировало одновременно два человека

блокировка вроде бы автоматически происходит в любых СУБД
создай любую таблицу, кликни правым батоном и сгенери сетевой ярлык, потом расшарь его и открой с двух машин, попробуй одну запись редактировать - матюкнется по любому

Всего записей: 247 | Зарегистр. 19-09-2007 | Отправлено: 14:59 21-11-2007
Diver_wing

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет. прошу помочь в вопросе.
есть таблица существуют дублирующие записи где значения поля  "detal" равны между собой, и эти записи отличаются только значением поля "date" а также присутствуют не  дублирующие по полю "detal".
Как сделать запрос что бы он вывел только те записи которые содержать более позднюю дату  и записи которые не дублируются по полю "detal"
 
 
пример
Поле                 detal              date
Значение          dvig               01.01.2007
Значение          dvig              01.05.2007
Значение          dvig1             01.05.2007
 
нужно вывести только нижеследующие записи
 
Значение          dvig              01.05.2007
Значение          dvig1             01.05.2007
 
Заранее спасибо....

Всего записей: 20 | Зарегистр. 21-11-2007 | Отправлено: 21:27 23-11-2007
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diver_wing
Пусть таблица называется detals. Если только по полям detal, date, то групповой запрос с группировкой по detal и Max по date. Если нужны остальные поля из таблицы, то

Код:
 
Select detals.*  
From detals
Where detals.detal In (Select s.detal From detals As s Group By s.detal Having Max(s.[date]) = detals.[date]);
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 04:31 24-11-2007 | Исправлено: AndVGri, 05:38 24-11-2007
Diver_wing

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сделал, только блин висит аксесс...
намертво висит, данные вышли а экспорт записей не полчается сделать...
проблема актуальна... помогите плз

Всего записей: 20 | Зарегистр. 21-11-2007 | Отправлено: 05:57 24-11-2007
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diver_wing
Просто объём данных большой, видимо. Тогда сделай по первому варианту новую таблицу Result (detail, maxdate), а для вывода полных данных из details организуй запрос со связью таблиц по полям деталей и даты
 
Добавлено:
Как вариант, может быстрее будет

Код:
 
Select detals.*
From detals Inner Join  
(Select deltal, Max([date]) As maxdate From detals Group by detal) As s
On (s.detal = detals.detal And s.maxdate = detals.[date]);
 

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 08:19 24-11-2007 | Исправлено: AndVGri, 08:38 24-11-2007
Solnishka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Люди!
Помогите пожалуйста кто чем сможет (очень надо - диплом горит).
В программировании я прям скажем новичок.
Есть проблема:
готовую программу на VBA для расчёта амортизации нужно переписать под Excel.
Я уже бьюсь над ней довольно долго и никак не получается.
 
 
[more]
Option Compare Database  
Option Explicit  
Dim dblПервичнаяСтоимость As Double  
Dim dblОстаточнаяСтоимость As Double  
Dim intВремяАмортизации As Integer  
Dim intПериодРасчета As Integer  
Dim intКратность As Integer  
Dim blnПризнак As Boolean  
Dim dblВеличинаАмортизации As Double  
Private Sub Form_Load()  
Поле1.SetFocus  
Поле1.Text = ""  
Поле2.SetFocus  
Поле2.Text = ""  
Поле3.SetFocus  
Поле3.Text = ""  
Поле4.SetFocus  
Поле4.Text = ""  
Поле5.SetFocus  
Поле5.Text = ""  
Поле6.Visible = True  
Поле6.SetFocus  
Поле6.Text = ""  
Переключатель1.Value = True 'Включение стандартного метода расчета  
Переключатель2.Value = False 'Отключение метода расчета с кратностью  
Надпись9.Visible = False 'Скрытие надписи  
Поле1.SetFocus  
Поле6.Visible = False 'Скрытие поля  
End Sub  
 
Private Sub Кнопка1_Click()  
blnПризнак = True  
Поле1.SetFocus  
If Поле1.Text = "" Then blnПризнак = False  
Поле2.SetFocus  
If Поле2.Text = "" Then blnПризнак = False  
Поле3.SetFocus  
If Поле3.Text = "" Then blnПризнак = False  
Поле4.SetFocus  
If Поле4.Text = "" Then blnПризнак = False  
If blnПризнак = False Then  
MsgBox " Недостаточно данных для расчета", vbExclamation, "Амортизация"  
Exit Sub  
End If  
Поле1.SetFocus  
dblПервичнаяСтоимость = CDbl(Поле1.Text)  
Поле2.SetFocus  
dblОстаточнаяСтоимость = CDbl(Поле2.Text)  
Поле3.SetFocus  
intВремяАмортизации = CInt(Поле3.Text)  
Поле4.SetFocus  
intПериодРасчета = CInt(Поле4.Text)  
If dblПервичнаяСтоимость < dblОстаточнаяСтоимость Then  
MsgBox " Ошибка! Остаток больше начальной стоимости!", _  
vbExclamation, "Амортизация"  
Поле1.SetFocus  
Exit Sub  
End If  
If intВремяАмортизации < intПериодРасчета Then  
MsgBox " Ошибка в сроке амортизации!", _  
vbExclamation, "Амортизация"  
Поле3.SetFocus  
Exit Sub  
End If  
If Переключатель1.Value = True Then  
blnПризнак = True  
Else  
blnПризнак = False  
End If  
If blnПризнак = True Then  
dblВеличинаАмортизации = SYD(dblПервичнаяСтоимость, _  
dblОстаточнаяСтоимость, intВремяАмортизации, intПериодРасчета)  
Else  
Поле6.SetFocus  
intКратность = CInt(Поле6.Text)  
dblВеличинаАмортизации = DDB(dblПервичнаяСтоимость, _  
dblОстаточнаяСтоимость, intВремяАмортизации, intПериодРасчета, intКратность)  
End If  
Поле5.SetFocus  
Поле5.Text = CStr(dblВеличинаАмортизации)  
End Sub  
 
Private Sub Кнопка22_Click()  
Dim strFrm As String  
strFrm = "Расчет Амортизации"  
DoCmd.Close acForm, strFrm  
End  
End Sub  
 
Private Sub Переключатель1_Click()  
Переключатель2.Value = False  
Надпись9.Visible = False  
Поле6.Visible = False  
End Sub  
 
Private Sub Переключатель2_Click()  
Переключатель1.Value = False  
Надпись9.Visible = True  
Поле6.Visible = True  
Поле6.SetFocus  
'Поле6.Text = ""  
Поле6.Value = ""  
End Sub
[/more]  

Всего записей: 3 | Зарегистр. 23-11-2007 | Отправлено: 13:42 25-11-2007
Pilipenko72

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Человеки!Помогите чайнику(нет - самовару).Есть база в которой две теблицы.В одной таблице поля-Код,Фамилия,Имя,Отчество,Дата рождения,Тип обучения,Учебная группа. В другой-Оценки по разным предметам(всего полей-17),причем логически разделены на три модуля(Первое полкгодие, Второе полугодие, Итоговая).Таблицы соеденены по Код 1 к 1.Создаю запрос на среднее значение по полям Оценки с группировкой по учебным группам и типу обучения.Необходимо просщитать среднее значение по каждому модулю без учета нулевих значений, а также среднее значение по всем модулям.Пробовал перечислять в функции AVG интересующие поля формы, но как только в перечисленных полях появляется нулевое значение (хоть в одном поле)-значение Null/

Всего записей: 1 | Зарегистр. 22-12-2007 | Отправлено: 21:14 24-12-2007
Kreol2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята помогите плиз, совсем заглючил.
У меня есть форма "Форма А" и отчет который генерируется на основе этой формы "Отчет А" как мне в форме сделать кнопочку по которой бы печаталась страничка отчета соответствующей записи. тоесть если я ввел запись под номером 10 то нажав получил бы напечатаный ИМЕННО НАПЕЧАТАНЫЙ отчет с данными из 10 записи. пробую макросами играться но пока ничо не выходит  
 
И  вопрос 2-й в форме есть выпадающий список который береться из соответствующей таблицы, как сделать чтоб во втором списке при выборе например "Чай" во втором автоматически появлялись значения которые занесены во вторую таблицу например "зеленый" "черный" "каркаде"
 
в глобальном есть например
табл 1
1 чай
2 кофе
3 капучино
 
таблица 2  
1.1 черный  
1.2 зеленый  
1.3 каркаде
2.1 черный заварной
2.2 растворимый
3.1 ванильный
3.2 шоколадный
ну и тд
 
 
тоесть чтоб во втором списке автоматически пропадали значения которые не входят в 1.№

Всего записей: 1 | Зарегистр. 26-12-2007 | Отправлено: 19:08 26-12-2007 | Исправлено: Kreol2009, 19:14 26-12-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 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