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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Help!!! диплом горит!
 
Данное окно реализовано как форма в Аксес. как сделать функцию сумма по странице?
 
т.е. пользователь вводит данные с 1ой страницы(дата, № кассы, время постоянны) нажимает флажок считается сумма по странице(показывается тут же), вводит со второй - нажимает - смотрит-показывается сумма уже по второй странице.
Затем меняет дату или № кассы или время, опять вводит с 1ой страницы, нажимает флажок, смотрит сумму и т.д.
 
как это реализовать? я пробовал написать =NZ(sum([Сумма])) в поле, но выводит сумму за всё время - очень много тыщ. Надо чтоб аксес учитывал страницу, дату, № кассы и выводил сумму только для страницы, даты и кассы введённых последними. Как это сделать? пожалуйста! диплом уже очень скоро.

Всего записей: 14 | Зарегистр. 05-05-2008 | Отправлено: 19:07 05-05-2008 | Исправлено: Meysoncup, 19:24 05-05-2008
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Meysoncup
Есть функция DSum(expr, domain[, criteria])
При помощи Criteria можно определить дополнительные параметры для суммирования.

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

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 13:28 06-05-2008
Meysoncup

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ага, спасибо, мож ещё пригодится, а это уже сам сделал чуть по-другому
 
Добавлено:
Создана форма на основе таблицы. Как вставить в эту форму поле, которое выводило бы некую запись из запроса?

Всего записей: 14 | Зарегистр. 05-05-2008 | Отправлено: 16:48 06-05-2008
TohaDub



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите плиз, есть база в Аксцес 2003, открываею в 2007, в базе есть табличка в ней поле OLE. Вставляю в это поле вордовский документ на две странички, база весит 2 метра, вставляю еще один 4 метра, еще - 16метров, еще 32, и так далее........ УЖАС.
По логике не должно же быть так? В чем трабла? Может открывать в Аксцес 2003???

Всего записей: 371 | Зарегистр. 26-06-2007 | Отправлено: 16:09 08-05-2008
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TohaDub
Все нормально. Просто база накапливает место прозапас. На самом деле процесс несколько сложнее, но такое объяснение достаточно близко к тому, что происходит. Что такое 16 мб для современных винтов? Ерунда ведь. Если очень раздражает, то идем в меню:
Tools - Database Utilities - Compact and Repair Databese

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 07:14 09-05-2008
TohaDub



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

Цитата:
Если очень раздражает, то идем в меню:
Tools - Database Utilities - Compact and Repair Databese

 
Да меня не раздражает, просто база будет работать по сети, и огромный объем может тормазить. хммммм.
При "сжать и востановить" размер уменьшается на 100кб.  
Ладно буду пока добавлять, а там поглядим.

Всего записей: 371 | Зарегистр. 26-06-2007 | Отправлено: 08:09 09-05-2008
aa2ndrew

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не могу вывести данные из VBA в таблицу базы даных. код следующий
 
Код:
Set dbs = OpenDatabase(Putfile)
With dbs
    Set rst = .OpenRecordset("rez1")
          For x = 1 To 298 Step 2
            For y = 1 To 300 Step 2
              rst.Fields(0).Value = 1
              If x / 2 < 75 Then
               rst.Fields(1).Value = (x1 * 135900.000031766 + x) / 135900.000031766
               rst.Fields(2).Value = (y1 * 135900.000031766 + y) / 135900.000031766
               rst.Fields(3).Value = c(75 - (x + 1) / 2, (y + 1) / 2)
              ElseIf x / 2 >= 75 Then
               rst.Fields(1).Value = (x1 * 135900.000031766 + x) / 135900.000031766
               rst.Fields(2).Value = (y1 * 135900.000031766 + y) / 135900.000031766
               rst.Fields(3).Value = c((x + 1) / 2 - 74, (y + 1) / 2)
              End If
              rst.MoveNext
            Next
          Next
    .Close
End With
 
 
Выдает ошибку:
"Run-time error "3020"
Update или CancelUpdate без AddNew или Edit"
 
Скажите что здесь не правильно (если хоть чтото правильно)

Всего записей: 4 | Зарегистр. 10-05-2008 | Отправлено: 12:52 11-05-2008
dneprcomp



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

Цитата:
Update или CancelUpdate без AddNew или Edit"

Так тебе же база уже почти человеческим голосом ответила

Код:
 
Set dbs = OpenDatabase(Putfile)  
With dbs  
    Set rst = .OpenRecordset("rez1")  
    Do While Not rst.EOF  
'Если добавляется новый рекорд, то:
         rst.AddNew
'Если редактируем существующий, то:
         rst.Edit  'или AddNew, или Edit. Не обе команды одновременно!!!

          For x = 1 To 298 Step 2  
            For y = 1 To 300 Step 2  
              rst.Fields(0).Value = 1  
              If x / 2 < 75 Then  
               rst.Fields(1).Value = (x1 * 135900.000031766 + x) / 135900.000031766  
               rst.Fields(2).Value = (y1 * 135900.000031766 + y) / 135900.000031766  
               rst.Fields(3).Value = c(75 - (x + 1) / 2, (y + 1) / 2)  
              ElseIf x / 2 >= 75 Then  
               rst.Fields(1).Value = (x1 * 135900.000031766 + x) / 135900.000031766  
               rst.Fields(2).Value = (y1 * 135900.000031766 + y) / 135900.000031766  
               rst.Fields(3).Value = c((x + 1) / 2 - 74, (y + 1) / 2)  
              End If  
              rst.Update
              rst.MoveNext  
            Next  
          Next
     Loop  
    .Close  
End With  

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 20:11 11-05-2008 | Исправлено: dneprcomp, 20:13 11-05-2008
aa2ndrew

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Большое спасибо, dneprcomp.
Просто для таких целей VBA еще не использовал, не знаю возможностей и синтаксиса.

Всего записей: 4 | Зарегистр. 10-05-2008 | Отправлено: 20:17 11-05-2008 | Исправлено: aa2ndrew, 20:20 11-05-2008
wakeua



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Access 2003.
Задача: по нажатию кнопки открыть файл Excel с заданным именем.
 
Подскажите какой код нужно прописать в событии нажатия кнопки, чтобы она открывала указанный файл в саб директории.
 
К сожалению я не знаком с VBA.
Заранее спасибо.

Всего записей: 2 | Зарегистр. 14-05-2008 | Отправлено: 11:53 15-05-2008
Vitus_Bering



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wakeua
Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE c:\1.xls", vbMaximizedFocus

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 12:25 15-05-2008
wakeua



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, работает.
А нет ли какого-то другого способа открытия файла? Смущает необходимость указания полного пути к программе и открываемому файлу. Я так понимаю тут это работает по принципу «Открываем эту программу, а в ней открываем тот файл». Нельзя ли сделать «Этот файл открываем в ассоциативной ему программе»? Таким принципом эксель открывает ссылки на файлы. Т.е. если я перенесу базу данных в другое место, то прийдется править все коды к таким кнопкам.
У меня файл базы идет в связке с папками документов. Путь приходится указывать полностью. Хотя документы находятся в коренной папке базы.
Хорошо бы указывать путь «декабрь 2007\Коммерческое предложение N.xls» вместо «D:\Database\Коммерческие предложения\декабрь 2007\Коммерческое предложение N.xls».
Существует ли такой способ?

Всего записей: 2 | Зарегистр. 14-05-2008 | Отправлено: 15:28 15-05-2008
Vitus_Bering



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

Код:
Sub st()
 Shell "EXCEL.EXE " & CurrentPath & "1.xls", vbMaximizedFocus
End Sub
 
Function CurrentPath() As String
  Dim dbs As Database
  Dim strng, path As String
  Dim position As Integer
 
  Set dbs = CurrentDb
  path = dbs.Name
  Do Until (InStr(path, "\") = 0)
    position = InStr(path, "\")
    strng = strng + Left(path, position)
    path = Right(path, Len(path) - position)
  Loop
  Set dbs = Nothing
  CurrentPath = strng
End Function
 

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 17:00 15-05-2008
gloony1

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

Всего записей: 1 | Зарегистр. 16-05-2008 | Отправлено: 00:53 16-05-2008
Meysoncup

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В форме есть кнопка, которая открывает выполнение запроса. Как сделать, чтоб запрос открывался не в новом окне, а в окне формы? например, в области данных формы?
 
и ещё: как сделать, чтобы по нажатию кнопки менялся источник записей формы(табличной)
 
Например с  
Select [Таблица].Поле  
на
Select[Таблица2].Поле

Всего записей: 14 | Зарегистр. 05-05-2008 | Отправлено: 10:27 16-05-2008
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Meysoncup
Изменение запроса формы:
 
Me.RecordSource = "Select[Таблица2].Поле"

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

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 10:56 16-05-2008
Meysoncup

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[img] [/img]
 
Чё то я не догоняю. как сделать, чтоб при нажатии кнопки "сменить источник" менялся источник строк (с подчинённой формы podc на другую)
 
а вообще надо сделать вот что: при вводе числа в "поле6" и нажатии кнопки "выполнить запрос" повляется запрос в новом  окне(можно и запрос на создание таблицы сделать, если это поможет), а надо чтоб он появился в окне, где сейчас podc (подчинённая форма). Как это сделать? или вообще подчинённую форму не использовать?
 
а вообще, надо сделать аналог этого: хотя бы путь, по которому нужно идти подскажите
[img] [/img]
форма с возможностью(окном) просмотра таблицы бд с выборкой по дате ("с" "по"), кассе, смене, странице, таб №, цеху, с возможностью подсчёта суммы(открывается отчёт). Вся выборка реализуется на галочках или выключателях.

Всего записей: 14 | Зарегистр. 05-05-2008 | Отправлено: 11:55 16-05-2008 | Исправлено: Meysoncup, 12:30 16-05-2008
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Meysoncup
Ну тогда
Me.[имя_подчиненной_формы].RecordSource = "Select[Таблица2].Поле"

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 17:29 16-05-2008
Meysoncup

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[img] [/img]
 
MrZeRo
Спасибо
 
Я сделал так: (на примере таб№) в форме(на рисунке) вводится таб №, нажимается кнопка, запускается запрос на создание таблицы(выборка, соотв-но по только что введённому таб№), создаётся таблица и на основе этой таблицы создаётся табличная подчинённая форма, которая уже вставляется в эту, главную форму. То же самое с отбором по дате - создаётся новая уникальная таблица с отбором по дате и т.д.
 
Но вот какой вопрос - получается выборка либо по таб№, либо по дате. А как сделать выборку или по № или по дате или и по № и по дате?

Всего записей: 14 | Зарегистр. 05-05-2008 | Отправлено: 18:54 16-05-2008 | Исправлено: Meysoncup, 19:00 16-05-2008
MrZeRo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Meysoncup
Непонятно, в чем проблема. Если есть возможность менять текст запроса, можно формировать этот текст как надо, с любыми условиями отбора.
Если надо, чтобы подчиненная форма зависела от комбинации двух полей, можно указывать их то ли через запятую, то ли через точку с запятой, надо уточнить.

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

Всего записей: 831 | Зарегистр. 30-01-2002 | Отправлено: 12:31 17-05-2008 | Исправлено: MrZeRo, 12:32 17-05-2008
Открыть новую тему     Написать ответ в эту тему

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