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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LuckyELF
Перед исполнением запроса присвой P_AGE значение поля для ввода. Что-то вроде:
P_AGE = [Text0].ControlSource или P_AGE = [Text0].Техт
И не забудь поставить проверку от неправильных значений: пустой строки, не числовых значений, отрицательных значений возраста, слишком больших положительных, нулевого значения.

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 22:46 22-06-2007 | Исправлено: dneprcomp, 22:51 22-06-2007
evruka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
Подскажите структуру и связи для базы данных.
Нужно создать базу данных учета актов выполненных работ:
например:
месяц исполнения, кто выполнил, сумма зарплаты, сума материалов, общая сума.
Но еще нужно(и я не знаю как это сделать), чтобы сумма материалов сумировалась с данных по материалах: названия материала, единица измерения, количестао, цена, стоимость вида материала.  
Буду признателен за любую помощь, советы, примеры

Всего записей: 7 | Зарегистр. 30-01-2007 | Отправлено: 11:52 05-07-2007
Sk1f



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
evruka, какие таблицы будут использоваться в БД? Какие поля?
 
Таблица материалов? Кто выполнил(компания или человек)? ....и тд
 

Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 15:04 05-07-2007
evruka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Таблица учета актов:
месяц исполнения, организация исполнитель, сумма ЗП, сумма материалов, общая сумма
Таблица материалов:
Наименование, единица измерения, количество, цена, стоимость

Всего записей: 7 | Зарегистр. 30-01-2007 | Отправлено: 15:40 05-07-2007
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evruka
Вообще-то, от задачи зависит, какие выборки потом надо будет получать
Навскидку, тут нужны по крайней мере:
Таблица исполнителей
Таблица зарплат по исполнителям (дата-завивимая, зарплата же может меняться)
Таблица материалов
Таблица стоимостей материалов (дата-зависимая, материал может переоцениваться)
Таблица актов: дата, ссылка на исполнителя, ....
Таблица использованных материалов, привязанная к актам: ссылка на акт, ссылка на материал, количество материала, ....
 
В принципе, таблицу исполнителей, таблицу зарплат, таблицу материалов и таблицу стоимостей материалов можно объединить, сделав деревянную структуру ... Но это так, на перспективу.

----------
... не это главное ...

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 09:25 06-07-2007
zorin2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте! Кто нибудь может подсказать. Где можно найдти готовую БД Отдела кадров в Access. Очень нужно курсовая горить скоро сесия.

Всего записей: 1 | Зарегистр. 06-07-2007 | Отправлено: 23:06 07-07-2007
Anton T

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Сделал простенкий код экспорт из Excel в Access:  
 
Код:Sub expaccess()  
Selection.Copy  
Dim dbs As Database  
Dim aaa As TableDef  
Dim rst As Recordset  
Set dbs = OpenDatabase("C:\access-excel\db1.mdb")  
Set aaa = dbs.CreateTableDef("А")  
With aaa  
.Fields.Append .CreateField("F", dbText)  
.Fields.Append .CreateField("N", dbText)  
.Fields.Append .CreateField("O", dbText)  
.Fields.Append .CreateField("G", dbText)  
.Fields.Append .CreateField("A", dbText)  
.Fields.Append .CreateField("D", dbText)  
.Fields.Append .CreateField("K", dbText)  
.Fields.Append .CreateField("K1", dbText)  
.Fields.Append .CreateField("K2", dbText)  
.Fields.Append .CreateField("S", dbText)  
.Fields.Append .CreateField("R", dbText)  
.Fields.Append .CreateField("C", dbText)  
.Fields.Append .CreateField("D1", dbText)  
End With  
dbs.TableDefs.Append aaa  
----- какой код для вставки данные
dbs.Close  
End Sub  
 
Он создает таблицу "А", но я не знаю как всавить данные в таблицу "А"?

Всего записей: 325 | Зарегистр. 12-04-2006 | Отправлено: 08:58 16-07-2007
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Anton T
 
Public Sub AddRecords
   Dim rec As DAO.RecordSet
   
    Set rec = dbl.TableDefs("A").OpenRecordSet(dbOpenDynaset)
    For i = beginRow To LastRow
        rec.AddNew
        rec.Fields("F").Value = CStr(Cells(i, fCol).Value)
        rec.Fields("N").Value = CStr(Cells(i, nCol).Value)
        '....
        rec.Update
    Next i
    rec.Close
End Sub
 
или изучай объект Access DoCmd для открытия созданной таблицы и вставки значений в неё

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 09:52 16-07-2007 | Исправлено: AndVGri, 09:54 16-07-2007
ANTIBIOTIK2008

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разыскиваеся программа на access для учета долгов клиентов.  
 
Заранее спасибо.

Всего записей: 95 | Зарегистр. 24-07-2006 | Отправлено: 12:45 26-07-2007
yuish

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ANTIBIOTIK2008
имеется ввиду только база на акцесе или вся программа?

Всего записей: 218 | Зарегистр. 10-02-2003 | Отправлено: 12:59 26-07-2007
ANTIBIOTIK2008

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

Цитата:
yuish

 
Любой из вариантов устроит. Важна сетевая работа.

Всего записей: 95 | Зарегистр. 24-07-2006 | Отправлено: 13:17 26-07-2007
Gluzer

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос: может ли форма иметь два источника данных(таблицы)?
первая таблица - это связь с внешней БД
вторая таблица - внутренняя, содержит вспомогательные данные
эти таблицы связанны между собой через ключ ID
при выполнение запроса: SELECT INOS_MAIN.ID, INOS_MAIN.FAM, INOS_MAIN.IM, INOS_MAIN.OT, INOS_MAIN.POL, INOS_MAIN.BD_DATE, INOS_MAIN.PCOD_V, INOS_MAIN.REG_PL, INOS_MAIN.L_COUNT, INOS_MAIN.SV_DATE, INOS_MAIN.SV_SER, INOS_MAIN.SV_NUM, INOS_MAIN.OKATO, INOS_MAIN.OGRN, MAIN.PR_DATE, MAIN.FACT_PL, MAIN.DOCUM, MAIN.XRAY, MAIN.RW, MAIN.AIDS FROM INOS_MAIN INNER JOIN MAIN ON INOS_MAIN.ID = MAIN.ID; выходит пустышка...

Всего записей: 8765 | Зарегистр. 31-03-2003 | Отправлено: 00:35 03-08-2007 | Исправлено: Gluzer, 00:51 03-08-2007
Gluzer

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос снят, решается следующим образом:
FROM INOS_MAIN LEFT JOIN MAIN ON INOS_MAIN.ID = MAIN.ID

Всего записей: 8765 | Зарегистр. 31-03-2003 | Отправлено: 22:05 03-08-2007
xpr123

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день. Прошу совета. Есть задача импорта текстовых данных из интернета такого формата
http://www.betexplorer.com/basketball/spain/spanish-basketball-league-men-2006-2007/results/
в базу данных и дальнейшая их обработка, в идеале реализовать пару таблиц как здесь
http://www.betexplorer.com/basketball/spain/spanish-basketball-league-men-2006-2007/
и подбить небольшую статистику:
http://www.betexplorer.com/basketball/spain/spanish-basketball-league-men-2006-2007/stats/
Ну и если интерфейс вменяемый к этому делу прикрутить, то вообще сказка.
Можно элементарно копировать всё с сайта в Excel, но такой вариант не устраивает, т.к. в дальнейшем придется проделывать тоже самое с другими разделами.
С Access'ом никогда не работал, может ли он решить такую задачу? С чего начать? Какой Access выбрать 2003 или 2007? Я так понимаю придется программить на макросах VB? Посоветуйте литературу на данную тематику (импорт данных из интернета в базы данных Access).
В студентческие времена программил отчетные формы на VisualFoxPro и прослушал курс теории БД,  
так что базовые понятия есть.

Всего записей: 36 | Зарегистр. 31-07-2006 | Отправлено: 09:13 07-08-2007
KIP4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня в базе есть запрос, из которого берутся данные для формирования отчета.
 Условием формирования является форма, в котором пользователь вводит 2 даты, и по этому диапазону выводится отчет.
Мне необходимо, чтобы в отчете эти две даты тоже оттображались(в верхнем колонтитуле). Для этого я создал поле в этом колонтитуле,
в нем написал такую формулу:
=[Forms]![SubForm]![Field1]&"-"&[Forms]![SubForm]![Field2]
Но при предварительном просмотре значения дат она выводит только на первой странице, дальше она пишет #Ошибка.  
Я пробовал и создавать пполе в области данных с этой формулой, а потом брать данные из этого поля, и переносить поле из колонтитула в другое месо = нулевой результат.
Причем в области данных эти даты появляются тоже только на первой странице. дальше поле просто исчезает. При этом стандартные функции
 =Date() орректно работают в колонтитулах.
Подскажите пожалуйста, в чем может быть ошибка.
Заранее спасибо!

Всего записей: 17 | Зарегистр. 15-05-2007 | Отправлено: 22:53 07-08-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KIP4  
1. сделай две глобальные переменные типа дата, опиши две (тоже глобальные) функции которые будут возвращать их значение. ( "Глобальные" - значит в общедоступном модуле, с директивами Public или Global)
 
2. по кнопке формирования отчета, ДО вызова OpenReport, присвой переменным значения [Forms]![SubForm]![Field1] и [Forms]![SubForm]![Field2] соответсвенно.
 
3. в отчете используй Эти Функции ВМЕСТО "=[Forms]![SubForm]![Field1]&"-
"&[Forms]![SubForm]![Field2]"  
 
PS
4. наверняка и в запросе отчета ты используешь для условий такие же конструкции "=[Forms]![SubForm]![Field1]" Их тоже замени на вызов функций.
 
использование конструкций типа "=[Forms]![SubForm]![Field1]"  очень сказывается на быстродействии, в запросах особенно.  
а второй плюс - ты сможешь отлаживать и запрос, и отчет, не имея загруженной в память формы.

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 09:01 08-08-2007
KIP4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
Спасибо за ответ, но я в Access(а тут как я понимаю все в VBA) чайник поэтому не все понял.
1.Значит в модуле должно быть 4 строки
Public dt1[любое название переменной] as [тут по видимому надо писать тип]
Public dt2[любое название переменной] as [тут по видимому надо писать тип]
Public Function date1() as ??
Public Function date2() as ??
 
2.stDocName = "Report"
    DoCmd.OpenReport stDocName, acPreview
между этими строками надо писать dt1=[Forms]![SubForm]![Field1] и
dt2=[Forms]![SubForm]![Field1]
 
3. в поле где надо выводить дату в отчете надо писать =dt1&"-"&dt2
 
4. в запросе в SQL вместо
WHERE (((alltable.date_publish) Between [Forms]![SubForm]![Field1] And [Forms]![SubForm]![Field2]));
 заменить на  
WHERE (((alltable.date_publish) Between dt1 And dt2));
 
 

Всего записей: 17 | Зарегистр. 15-05-2007 | Отправлено: 15:15 08-08-2007 | Исправлено: KIP4, 15:20 08-08-2007
Anton T

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AndVGri
А поподробнее можно?

Всего записей: 325 | Зарегистр. 12-04-2006 | Отправлено: 22:18 09-08-2007
jONES1979



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1.Значит в модуле должно быть:
Public dt1[любое название переменной]  As Date
Public dt2[любое название переменной]  As Date
 
Public Function date1()  As Date
  date1 = dt1
end function
 
Public Function date2()  As Date
  date2 = dt2
end function
 
2.  
  stDocName = "Report"  
  dt1=[Forms]![SubForm]![Field1]
  dt2=[Forms]![SubForm]![Field2]  
  DoCmd.OpenReport stDocName, acPreview  
 
3. в поле где надо выводить дату в отчете надо писать
  =date1() & "-" & date2()
или
  =FormatDateTime(date1(),vbShortDate) & "-" & FormatDateTime(date2(),vbShortDate)
 
 
4. в запросе в SQL вместо  
WHERE (((alltable.date_publish) Between [Forms]![SubForm]![Field1] And [Forms]![SubForm]![Field2]));  
 
 заменить на  
 
WHERE  (  (alltable.date_publish) Between date1() And date2() );  
 
 

Всего записей: 324 | Зарегистр. 20-05-2005 | Отправлено: 06:38 10-08-2007
KIP4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jONES1979
Все сделал, как написано, выводит 0:00:00 -0:00:00 на всех страницах.
Может быть проблема в том, что модуль не включен в проект? Потому что в примерной базе Борей модули видны в дереве объектов Access, а у меня нет

Всего записей: 17 | Зарегистр. 15-05-2007 | Отправлено: 14:20 10-08-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