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

» Access VBA

Автор: jONES1979
Дата сообщения: 21.04.2007 14:52
dimonte самый простой и быстрый вариант: форма с контролами для фильтра, фамилией и двумя датами, и кнопочкой запуска отчета.
затем делаешь запрос, а качестве фильтра ссылаешься на контролы этой формы со знаениями.
затем рисуешь отчет, которые бы строился по данным этого запроса. вызов отчета вешаешь на кнопку самой формы
Автор: dimonte
Дата сообщения: 23.04.2007 02:52
jONES1979

хм... прикольно) все понятно, но ни чего не понятно) (я же написал что чайник)
если тебе не сложно, то я могу выслать тебе базу а ты бы мне помог. Как думаешь? ( мне правда стыдно очень, что возможно я не знаю элементарщины)
Автор: jONES1979
Дата сообщения: 23.04.2007 10:42
dimonte с акцессом идет демобаза "Борей". Если Акцсс у тя русский, то и база будет на русском. Там показана всякая техника, да и хелп там нормальный! Успехов!
Автор: dimonte
Дата сообщения: 23.04.2007 21:51
Можно ли в акцессе сделать в таблице или выводимом запросе формат ячейки как в экселе т.е выравнивание, перенос слов и т д (автоматически)) И еще как мне зафиксировать место положения открития формы?
Автор: AndVGri
Дата сообщения: 24.04.2007 03:00
dimonte

Цитата:
выравнивание, перенос слов и т д (автоматически))
- нет, в форме.

Цитата:
И еще как мне зафиксировать место положения открития формы?

например так (в событиях формы):
Private Sub Form_Load()
Me.Move vLeft, vTop 'задаёшь положение
Me.Moveable = False 'запрет пользователю перемещать форму
End Sub
Автор: kenaut
Дата сообщения: 28.04.2007 11:55
добавляю элемент календаря (например LANDesk Date Control)
как сослаться на его аттрибут? из запросов
в дереве построения выражений этот элемент вовсе не отображается (как и все другие из списка "другие элементы"), если написать самому, то просит значение ввести
а мне нужно чтоб пользователь за определенный день мог отчет сохранить (и отправить по почте в xls)

Добавлено:
это элемент activex кстати, может их где-то разрешить надо?

Добавлено:
поторопился =) нашел ща статью в хелпе:
Включение элементов управления ActiveX в выражениях

Добавлено:
добавил модуль с кодом:
Option Compare Database

Sub EnableActiveXControl()

SysCmd 14, "8E27C92E-1264-101C-8A2F-040224009C02"

End Sub
guid от элемента MSCAL.OCX, запустил, все равно его нету в дереве =/ guid вроде правильный...
Автор: dneprcomp
Дата сообщения: 28.04.2007 20:44
kenaut
Ну нет его в дереве и не надо. Если времени не жалко, то можешь поразбираться. А так делай через переменную. Значение переменной меняй на потерю фокуса календаря.
Автор: Anprs
Дата сообщения: 04.05.2007 07:57
1. Как через Delphi создать базу данных Access?
2. Как создать таблицу?
3. Как получить список таблиц существующей БД? (заполнить ими например КомбоБокс)
4. Как получить список полей существующей таблицы БД?

C базой работаю через АДО (подключаю через ADOConnection)
Автор: Dixi257
Дата сообщения: 04.05.2007 12:33
Anprs
Используй ADOX

Автор: Anprs
Дата сообщения: 04.05.2007 14:42
Ага, Dixi257, спасибо

А что это такое? И как с этим работать?
Автор: Dixi257
Дата сообщения: 04.05.2007 16:25
Anprs
ADOX это расширение ADO для манипуляции с объектами базы данных. Работать с ним можно также как и с ADO. Объектная модель включает методы для просмотра, создания и удаления объектов и контейнеров.
http://search.msdn.microsoft.com/search/Default.aspx?brand=msdn&locale=en-us&query=adox
Читайте, Шура, читайте
Автор: Anprs
Дата сообщения: 08.05.2007 11:10
Кто знает как это сделать не через ADOX?
Автор: Dixi257
Дата сообщения: 08.05.2007 16:38

Цитата:
Кто знает как это сделать не через ADOX?


А в чем проблема то? Работать с ADOX не сложнее, чем с ADO.
Если поработать с поиском в интернете примеров немало есть, правда, большинство на C/CPP и VB, но суть та же самая. Создать объект и позвать нужные методы с нужными параметрами.
Если уж очень сложно найти самому, то опиши в ПМ задачу, чем смогу помогу (но только у меня примеры все на VB).
Автор: GreatOne
Дата сообщения: 10.05.2007 10:29
Народ! Подскажите плиз как в аксесе программно узнать количество строк в таблице или на форме?
Автор: YaroslavOne
Дата сообщения: 15.05.2007 13:35
Странный глюк
Access 97, окно поиска (по Ctrl-F) открывается невидимым
т.е. фокус переходит с текущего окна на окно поиска, но самого окна поиска невидно. Можно "вслепую" набрать текст поиска и произвести его, но чертовски неудобно.
Как исправить сложившуюся ситуацию?
Автор: jONES1979
Дата сообщения: 15.05.2007 16:33
GreatOne

Цитата:
Народ! Подскажите плиз как в аксесе программно узнать количество строк в таблице или на форме?


для формы например так

Код:
Private Sub Form_Load()
Dim rst As DAO.Recordset

Set rst = Me.RecordsetClone
rst.MoveLast
rst.MoveFirst
iRecCount = rst.RecordCount
End Sub
Автор: bornbill
Дата сообщения: 19.05.2007 14:57
не работает запрос вида


Код: INSERT INTO nado_vidat
VALUES (1, (Select ot_kogo From Ludi Where npp=prodagi.kto), (prodagi.skolko*0.1), false);
Автор: Kafka17
Дата сообщения: 19.05.2007 15:15

Цитата:
INSERT INTO nado_vidat
VALUES (1, (Select ot_kogo From Ludi Where npp=prodagi.kto), (prodagi.skolko*0.1), false);

Это просто "кривой" SQL, надо писать что-то вида
INSERT INTO nado_vidat (nummer, ludi, skolko) VALUES (1, 'Ivan Ivanovich', 2400)
Если же вставляется целая таблица, то VALUES лишнее, надо просто писать:
INSERT INTO nado_vidat (nummer, ludi, skolko) SELECT * FROM personal WHERE rabotaet = 'da'
Для того, чтобы вставить в определенные поля какие-то фиксированные значения, надо использовать два запроса подряд -- сначала INSERT вставляет нужные данные из других таблиц, потом проходится UPDATE и выставляются нужные значения.

Добавлено:

Цитата:
Access 97, окно поиска (по Ctrl-F) открывается невидимым
т.е. фокус переходит с текущего окна на окно поиска, но самого окна поиска невидно. Можно "вслепую" набрать текст поиска и произвести его, но чертовски неудобно.

Возможно окно поиска находится просто за пределами видимой области.
Нет возможность скроллировать основное окно?
У меня так однажды почему-то там форма открывалась, где-то на 4000 от левого угла, приходилось скроллировать....

Автор: Sidi06
Дата сообщения: 19.05.2007 20:06
Подскажите плиз, как задать определенное значения поля, например чтоб можно было вводить цифры только от 1 до 5.
Автор: AndVGri
Дата сообщения: 20.05.2007 03:06
Sidi06
В конструкторе таблицы в "Условие на значение" введи (Between 1 And 5) Or Is Null (Or Is Null - убери, если "пустые" значения тоже не допустимы), дополнительно настрой тест сообщения при неправильном вводе в "Сообщение об ошибке". Программные эквиваленты: ValidationRule, ValidationText.
Автор: Sidi06
Дата сообщения: 22.05.2007 13:24
Спасибо большое)
Автор: Adex
Дата сообщения: 29.05.2007 19:36
Прошу помощи, как начинающий в Access.
Имеется Таблица, содержащая Столбец-Группа товаров и Столбец-Товар. Вопрос в следующем - как в Форме содержащей столбцы подстановок Группа товаров и Товар сделать так, чтобы при выборе определенной Группы товаров в выпадающем списке с перечнем Товаров отображались только Товары принадлежащие выбранной группе ?
Автор: Sk1f
Дата сообщения: 30.05.2007 11:35
Здравствуйте.
Разработкой Базы данных занимаюсь недавно и поэтому просьба не придираться. Все когда-то начинали

БД SQL2000 +Access 2003(adp).
Данные для формы извлекаю с помощью одного запроса(большого), извлекаю все необходимые поля для формы.

Форма
Схема Базы Данных

При отсутствии хотя бы одной записи в таблице, запрос на выходе ничего не выдает. И поэтому форма не заполняется. Как это можно обойти?

Есть такие идеи для решения -
1. Простой запрос SELECT IDТовара, [Наименование Товара] FROM Товар и заполнить два соответствующих поля формы. Для остальных полей написать Обработчика событий (на каждое поле) - отображение значения (если оно есть), изменение значения, удаление значения, получение/потеря фокуса и тд.
2. Везде, где не заполняются поля в таблице задать Значения по умолчанию.

Второй способ мне меньше всего нравится.

Я ошибаюсь или нет?
Какой есть способ более простой и главное более правильный.

С уважением, Александр.
Автор: satata
Дата сообщения: 31.05.2007 10:51
Добрый день!
Есть некая проблема у начинающего пользователя - буду рад за помощь, советы и их же с ними.
Вообщем суть такая:
Есть несколько табличек Ламинации (виды, кол-во микр и тд.) - все связаны подстановкой... вообщем то проблем не возникает. Туда же добавил Цену, Количество листов и Стоимость.
Делаю запрос на основе этих связанных табличек и на основе этого запроса делаю форму для ввода данных, там юзер выбирает Вид ламинации, микроны ...ставить цену и количество. тут и начинаются засады....
В поле Стоимость делаю выражение:
=Формы!ТаблЛаминация!КоличествоЛаминации*Формы!ТаблЛаминация!Цена
Все хорошо и красиво считается и умножается и Стоимость показывается, но .. когда создаю отчет или иду в запрос - то там Стоимость - пустая =((
Соответственно вопрос ... Как сделать так чтобы в отчетах стоимость показывалась?
Автор: satata
Дата сообщения: 01.06.2007 16:59
Всем спасибо - вопрос снимается =)
Все решилось достаточно просто - если кому интересно будет -пишите.
Автор: VadANok
Дата сообщения: 09.06.2007 14:17
Мир Вашему Дому, Господа!

Помогите дельным советом - через две недели защита, а "на мне" тоска...
Короче, создал базу данных (Access 2003 + VBA + ADODB), у меня на компьютере все работает без проблем, но при переносе (копировании файла .mdb) базы на другую машину (такая же XP SP2, Office - с одного дистрибутива) - один модуль не хочет работать, зараза. Как доходит до строки:
Set zpr.ActiveConnection = CurrentProject.Connection
выскакивает "Run-time error'-2147221164 (80040154)': Класс не зарегистрирован."

Что ему надо, где "собака зарыта"? Подскажите, пожалуйста...

Добавлено:
Вопрос снимается, помогло вот это:
regsvr32 /s c:\windows\system32\Msjetoledb40.dll
Автор: Sk1f
Дата сообщения: 15.06.2007 10:07
БД -SQL Server 2000
Подключаюсь с помощью Access и GUI соответственно на нем делаю.

Таблица - ID (счетчик), месяц(char), год(int), [тип товара](varchar), [кол-во](int)

Какую форму вы бы посоветовали сделать? Нужна нормальная, вменяемая форма, в которой будет заполняться месяц, год, [тип товара], кол-во.

p.s. Ищу идеи!



Автор: LuckyELF
Дата сообщения: 20.06.2007 22:15
А можно передать в запрос параметр?
я создал в аксесе запрос вида
select id, name, age
from t_people
where age = P_AGE

когда запускаю такой запрос мне выдается окошечко с предложение ввести значение для P_AGE, при этом все работает прекрасно

но вот мне понадобилось сохранить результаты запроса с помощью DoCmd.OutTo
я создал формочку из которой все это дело запускается, на этой форме я сделал поле для ввода значения, а как передать его в запрос не знаю, может кто подскажет?
Автор: Anton T
Дата сообщения: 22.06.2007 20:18
LuckyELF
where age = 18
= - возраст равно 18, ни больше, ни меньше
> - если ворзаст 18 и больше, напр. 19, 20 и т.д.
< - если ворзаст 18 и меньше, напр. 17, 16 и т.д.
Автор: dneprcomp
Дата сообщения: 22.06.2007 21:46
LuckyELF
Перед исполнением запроса присвой P_AGE значение поля для ввода. Что-то вроде:
P_AGE = [Text0].ControlSource или P_AGE = [Text0].Техт
И не забудь поставить проверку от неправильных значений: пустой строки, не числовых значений, отрицательных значений возраста, слишком больших положительных, нулевого значения.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

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


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