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

» Access VBA

Автор: zoloot
Дата сообщения: 29.01.2013 14:43
Здравствуйте!!! Подскажите пожалуйста, имеется база данных в access, в ней три зависимые таблицы (первая Фамилия, Имя, Отчество, вторая звания и даты их присвоения (несколько званий у одного человека), должности и даты назначения (тоже несколько), можно ли осуществить слияние с одним документом Word всех трех таблиц (запросов) одновременно?
Автор: novo_again
Дата сообщения: 29.01.2013 15:40
По-моему, нет. Но, скорее всего, Вам это и не нужно - слепите запрос общий и скормите ворду.
Автор: Veselunchik
Дата сообщения: 31.01.2013 23:00
Спасибо, ребята! Прочитав тему, нашёл ответы почти на все вопросы. Пошёл переваривать=)))
Автор: Natallka
Дата сообщения: 18.03.2013 14:44
Здравствуйте! У меня такая проблема: программа написана в Accesse, не знаю как посмотреть ее коди каким методом он вообще написан. Если кто отзавется могу скинуть программу. И еще к программе надо блок схему.Пожалуйста кто нибудь отзавитесь.(((
Автор: miwa
Дата сообщения: 18.03.2013 15:52
Natallka
Если оболочка на Access, тогда среда программирования - VBA. Чтобы посмотреть код, надо нажать Alt + F11.
Автор: dneprcomp
Дата сообщения: 19.03.2013 03:06
Natallka
Неплохо бы привести название програмы и расширение(ext; то что пoсле точки) файла.
В общем случае, для ACCESS можно нажать SHIFT до старта прогамы и держать нажатым до окончания ее загрузки.
Автор: sTARIK2009
Дата сообщения: 03.04.2013 19:51
Помогите решить проблему(для меня). Работа в ACCESS. После ряда математических вычислений в запросе получаем промежуточное значение - дробь, например 4,75. По условию задачи это значение должно быть целым числом. Посредством Свойств поля число десятичных знаков делаю 0. Получаю округленное число 5, которое высвечивается в поле. Продолжаю с этим полем работать дальше, а значение поля не изменилось, как было значение 4,75 так и осталось. Как сделать, чтобы промежуточное значение для программы равнялось бы 5, а не 4,75. Заранее спасибо.
Автор: Vitus_Bering
Дата сообщения: 03.04.2013 20:06
sTARIK2009

Цитата:
значение - дробь, например 4,75.

округлить при помощи встроенной функции CLng()
Автор: PETRISCHEV
Дата сообщения: 30.09.2013 10:32
Добрый день!

Вопрос по отладке кода.
Использую окно watches для просмотра состояния переменных.
Состояние переменных нормальным образом отображается при пошаговом выполнении кода программы до тех пор, пока в коде не запускается процесс Excel. (Я программно работаю с файлами xls, загружая в них информацию из базы данных). После запуска процесса Excel при выполнении каждой очередной команды, переменные в окне watches "пропадают". Они на самом деле там есть, но их не видно! Чтобы посмотреть каждую из них, нужно в каждую ткнуть мышкой (при этом нужно угадать в каком месте окна эта переменная).
Это похоже на какой-то "глюк". Началось после замены компьютера.
Раньше у меня был Win XP и Access 2007 - не было такой проблемы. Сейчас Win 7 64. Office тот же самый, что и раньше и, соответственно, 32-битный Access 2007.
Автор: sergeym1
Дата сообщения: 24.10.2013 15:05
Нужна помощь. Пишу базу для обработки заказов на изготовление продукции (стеклопакетов). Большинство заказчиков выгружает их из более-менее распостранненной программы-конструктора окон. Формат файла xls.

Пример файла здесь Ссылка

Есть необходимость экспортировать данные в Access 2003(!), при этом наименование столбцов постоянно, меняются только количество строк и сами данные. Как заставить пробежаться по экселевскому листу и вытащить нужные колонки и строки? Нужное выделил бледно-желтым цветом.

P.S. Не работал с VBA в Access, но думаю рзберусь. Дайте мысль..
Автор: AndVGri
Дата сообщения: 25.10.2013 08:32
Попробуйте, только библиотеку Microsoft Excel через Tools/References подключите

Код:
Public Sub ScanAndFill()
Dim xls As New Excel.Application
Dim pArea As Excel.Range
Dim pBook As Excel.Workbook
Dim pSheet As Excel.Worksheet
Dim iRow As Long, iCol As Long
Dim vData As Variant

Set pBook = xls.Workbooks.Open("d:\path\filename.xls")
Set pSheet = pBook.Worksheets(1)

For Each pArea In pSheet.UsedRange.SpecialCells(xlCellTypeConstants).Areas
If (pArea.Cells(1, 2).Value = "Заказ №") And (pArea.Cells(1, 4).Value = "Позиция №") Then
vData = pArea.Value
'на строку ниже заголовка и пропуская итого
For iRow = 2 To UBound(vData) - 1
'допустим через Recordset
'Recordset.AddNew
'заливаем текстовые данные vData(iRow,2)
'Recordset("FildName1").Value = vData(iRow,2)
'и так далее
'vData(iRow,4),vData(iRow,5)
'числовые (или текстовые?) CSng(vData(iRow,8)),CSng(vData(iRow,9))
'CSng(vData(iRow,10))
Next
End If
Next
pBook.Close False: xls.Quit
End Sub
Автор: sergeym1
Дата сообщения: 25.10.2013 10:01

Цитата:
Попробуйте, только библиотеку Microsoft Excel через Tools/References подключите

Прошу прощения где ее подключать в русской версии?
Автор: aidomars
Дата сообщения: 25.10.2013 11:14
sergeym1
Alt+F11 - Tools/References - Microsoft Excel...
Автор: sergeym1
Дата сообщения: 25.10.2013 17:17

Цитата:
Alt+F11 - Tools/References - Microsoft Excel...

Спасибо! Буду пробовать.
Автор: vicrus
Дата сообщения: 14.11.2013 04:05
Тупой вопрос, из головы вылетело.

через vba из одной формы заполняю поле в другой форме.
Как в vba принудительно в другой форме сохранить запись. Забыл ((
Автор: aidomars
Дата сообщения: 14.11.2013 06:09
vicrus
Форма2.Контрол = Me.Контрол
Автор: vicrus
Дата сообщения: 14.11.2013 07:10
это присвоить значение, а записать в базу?
Автор: aidomars
Дата сообщения: 14.11.2013 08:28

Код: Set rst = CurrentDb.OpenRecordset("TableName", dbOpenDynaset)
With rst
.AddNew
.Поле = Me.Контрол
.Update
End With
Автор: vicrus
Дата сообщения: 14.11.2013 10:31
совершенно верно.
В моем случае сделал так:

Forms![Форма1]![Поле1] = Me![Поле2]
Forms![Форма1].SetFocus
DoCmd.RunCommand acCmdSaveRecord
Forms![Форма2].SetFocus

Хотя как-то не красиво.
Автор: UltraAcid
Дата сообщения: 06.03.2014 11:12
Привет всем.

Столкнулся с таким заданием...

Надо как то сделать что бы в простом ComboBox функция AutoExpand находила слова по похожим буквам например:

если я ввожу "ел" выдавала бы и "ель" и "ёлка" из списка...

Возможно ли это?

Спасибо
Автор: Vitus_Bering
Дата сообщения: 06.03.2014 13:20
UltraAcid

Примерно так

Private Sub ПолеСоСписком_AfterUpdate()
Dim Val As String
Val = Me("ПолеСоСписком")
Forms("frm1").List.RowSource = "SELECT * FROM Table WHERE Name LIKE '*" & Val & "*' ORDER BY Name;"
End Sub

Автор: saidumar
Дата сообщения: 06.03.2014 13:40
Access не различает Е и Ё?
Автор: Vitus_Bering
Дата сообщения: 06.03.2014 13:54
различает
Автор: Kiriki727
Дата сообщения: 16.03.2014 15:42
Добрый день. Слезно прошу помощи!
Access 2007. VBA.
Есть 2 формы:
На первой поле со списком, ссылающееся на поле имен людей в таблице, и кнопка.
На второй форме данные о каждом человеке из таблицы.

Нужно сделать так, чтобы можно было на первой форме выбрать имя в поле со списком, нажать кнопку и перейти на вторую форму с информацией именно об этом человеке.

Пожалуйста, помогите. Если не знаете как это реализовать, то хотя бы подскажите где можно найти нечто похожее или совет какой дайте...
Автор: saidumar
Дата сообщения: 17.03.2014 14:55
Vitus_Bering

Цитата:
различает

Ну тогда

Цитата:
если я ввожу "ел"

вернется только "ель"...
Автор: Vitus_Bering
Дата сообщения: 17.03.2014 20:44

Цитата:
вернется только "ель"...

Именно так
Автор: PrWork1
Дата сообщения: 25.04.2014 21:13
Kiriki727
Легко.
По выбору в списке на 1й форме открываете вторую форму, передавая ей в OpenArgs фио или код. Во второй форме в событии приОткрытии пишете Если OpenArgs<>"" тогда подставляем данные человека
Автор: SerBUser
Дата сообщения: 10.05.2014 10:22
Добрый день. Не могу понять, как решить такую задачу - есть база данных в Access 2013. Заполняются данные строго в режиме таблицы, никаких форм нет. Подскажите, как реализовать отправку оповещения по почте пользователю при изменении одного поля. Т.е., есть таблица, в которой одно из полей Почта - почтовый адрес (берется из выпадающего списка из другой таблицы). Как сделать, чтоб при выборе или изменении в этом поле почтового адреса сразу отправлялось оповещение на выбранный почтовый ящик с содержимым, взятым из другого поля этой записи? И можно ли таким образом выбрать и отправить письмо сразу нескольким отправителям?
Автор: PrWork1
Дата сообщения: 10.05.2014 10:47
SerBUser
Без форм никак.
Если сделать форму в табличном виде, то можно в обработчике написать что нужно.

Еще есть возможность в триггере базы данных, если sql server, но это будет уже не акцесс, да и в триггере отправлять почту - плохо, т.к. нужно минимизировать время его выполнения.
Автор: vikkiv
Дата сообщения: 10.05.2014 15:41
SerBUser
PrWork1
Триггером можно писать данные в другую таблицу, а из таблицы уже по расписанию новые записи идут на рассылки, т.е. исполнение такого триггера не будет существенно блокировать таблицу. А так да, SQL сервер будет БД а Access чисто интерфейсом.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: BDE - траблы, помогите пожалуйста срочно...


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