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

» Access VBA

Автор: Victorushka
Дата сообщения: 23.04.2012 14:59
Уважаемые, создаю в Access 2007 отчет в режиме конструктора, помещаю на нем два текстовых поля для ввода даты. Перехожу в режим "Представления отчета", ставлю курсор в первое поле, ввожу дату. Ставлю курсор во второе поле - в первом всё пропадает. Возвращаюсь к первому полю - ничего нет! Что за глюк???
Автор: petrosyanserg
Дата сообщения: 21.06.2012 16:37
Как можно составить отчет, чтобы он печатался только с определенной ячейки и с определенного места на листе? Пример во вложении.

А то приходится распечатывать 2-ой лист отчета на вирт. принтер в pdf, редактирую в Photoshop и только потом отправляю на печать нужную мне область. Например, на данном 2-ом листе распечатались ячейки с позицией 10 по 18. Т.к. мне нужно распечатать только с позиции 15 по 18, часть ненужных удалил в Photoshop. Так нужно было, т.к. с 10 по 15 уже напечатаны, по мере заполнения таблицы появились с 15 по 18, поэтому ставлю в принтер, тот старый уже напечатанный лист и печатаю новые данные. Вот как-то так, наверно понятно изъяснился.

http://ifolder.ru/31234466
Автор: petrosyanserg
Дата сообщения: 22.06.2012 09:34
Не ту базу данных выложил, здесь нужная.
http://ifolder.ru/31245235
Автор: Czechoslovak
Дата сообщения: 22.06.2012 15:03
petrosyanserg
Берешь и скрываешь не нужные поля, как-то так:

Код:

Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
If Me![Поле11].Value < 15 Then
Me.Поле11.Visible = False
Else
Me.Поле11.Visible = True
End If
Me.Поле15.Visible = Me.Поле11.Visible
Me.Линия14.Visible = Me.Поле11.Visible
End Sub

Автор: petrosyanserg
Дата сообщения: 22.06.2012 22:09
Czechoslovak
Как раз с твоим кодом, немного доработал и получилось почти то, что надо. Правда пришлось ввести "Поле24" и "Поле26", по другому не смог ввести параметр в отчет. Может как-то по-другому можно?
http://ifolder.ru/31262909
Автор: dmention
Дата сообщения: 02.08.2012 09:31
Подскажите, пожалуйста, можно ли каким-то образом в Access вывести в форме данные так, чтобы можно было распахивать/схлапывать строки. Т.е. наприммер:

Итого п.1. (сумма подпунктов)
п.1.1
п.1.2
Итого п.2. (сумма подпунктов)
п.2.1
п.2.2
п.2.3
Итого п.3. (сумма подпунктов)
п.3.1

Чтобы при щелчке на строке "Итого п..." скрывались подпункты или наоборот появлялись.

Буду очень признателен!
Автор: aidomars
Дата сообщения: 03.08.2012 09:11
dmention
Может это подойдет?
Автор: dmention
Дата сообщения: 03.08.2012 09:19

Цитата:
dmention
Может это подойдет?


Что?
Автор: aidomars
Дата сообщения: 03.08.2012 09:44
Видимо открытая ссылка не катит
Автор: dmention
Дата сообщения: 09.08.2012 08:32
Можно ли в Access'e в форме вывести результаты запроса слева направа, а не сверху вниз?

Т.е.:

Поле 1 Значение1 Значение 2 ... Значение N
Поле 2 Значение1 Значение 2 ... Значение N
...
Поле M Значение1 Значение 2 ... Значение N
Автор: SevereK20
Дата сообщения: 09.08.2012 12:42
dmention
ну так при создании через мастер форм... выбрать же можно вид.
Автор: dmention
Дата сообщения: 09.08.2012 13:09

Цитата:
ну так при создании через мастер форм... выбрать же можно вид.


Что-то не вижу. Где?
Автор: compwork
Дата сообщения: 07.09.2012 09:23
Подскажите как можно такое реализовать:
Нужно, чтобы 10 человек вносили данные в таблицу, но после внесения - их нельзя было редактировать
Есть возможность сделать вход под пользователем (точнее создать условие, что при вводе Вася Иванов 11111 форма разрешала вводить данные и вносила об этом информацию)? (чтобы автоматом вносилось кто делал запись)
Желательно сделать так, чтобы другие пользователи не видели всей таблицы, а только те записи, которые сами вносят
И есть возможность сделать вывод всей таблицы с возможностью редактирования при вводе пароля?
Автор: novo_again
Дата сообщения: 07.09.2012 10:51

Цитата:
Нужно, чтобы 10 человек вносили данные в таблицу


Мысли непрофессионала: если база в виде обычного mdb/mde файлика - всегда будут сохраняться изменения последнего, поэтому все бесполезно.

Если базу открывать в монопольном режиме - можно городить форму с фильтром по полю, в которое пишется пользователь машины.

Есть, по-моему, еще какие-то приблуды внутри аксеса, связанные с правами то-ли на базу, то-ли на записи, но я их никогда не исследовал...
Автор: compwork
Дата сообщения: 07.09.2012 10:59
novo_again
дык, а можно сделать так?
еще таблица
сотрудник:число

И далее в форме, после ввода данных - вводить число, которое соотвествует сотруднику и в базе появляется, что эту строчку внес Вася Пупкин.

И совсем нельзя сделать, чтобы предыдущие записи нельзя было редактировать?
Автор: novo_again
Дата сообщения: 07.09.2012 11:11

Цитата:
И совсем нельзя сделать, чтобы предыдущие записи нельзя было редактировать?

Это пожалуйста)) Просто сделайте в свойстве поля формы запрет на редактирование.
Автор: dmention
Дата сообщения: 16.10.2012 08:10
Разместил на форме MS Access 2003 MSHFlexGrid.

Необходимо подключиь его к запросу.

Обыскал все. Везде приводится такое описание подключения данного контрола:

' Create a ConnectionString.
Dim strCn As String
strCn = "Provider=MSDataShape.1;Data Source=Nwind;" & _
"Connect Timeout=15;Data Provider=MSDASQL"

' Create a Shape command.
Dim strSh As String
strSh = "SHAPE {SELECT * FROM `Customers`} AS Customers " & _
"APPEND ({SELECT * FROM `Orders`} AS Orders RELATE " & _
"CustomerID TO CustomerID) AS Orders"

' Assign the ConnectionString to an ADO Data Control's
' ConnectionString property, and the Shape command to the
' control's RecordSource property.
With Adodc1
.ConnectionString = strCn
.RecordSource = strSh
End With
' Set the HflexGrid control's DataSource property to the
' ADO Data control.
Set HFlexGrid1.DataSource = Adodc1



Можно ли в Access'е подключить его к запросу как-то проще?

К тому же свойства .DataSource у моего MSHFlexGrid вооще нет.
Автор: koyusi
Дата сообщения: 16.10.2012 09:22
dmention
Это отсюда Microsoft Hierarchical FlexGrid матерал?

Цитата:
К тому же свойства .DataSource у моего MSHFlexGrid вооще нет.

У моего тоже нет. У меня не Hierarchical, а простой MSFlexGrid.

Через коннекшн оно может и эффективнее... Но, только нафига эти буераки? Поэлементно заполни и все. Наглядно будет в коде. А с коннекшн потом разберись, когда все заработает. Да и скорость сравнишь попутно, расскажешь потом :)
Автор: dmention
Дата сообщения: 16.10.2012 09:54

Цитата:
Это отсюда Microsoft Hierarchical FlexGrid матерал?


Да. Но и на других ресурсах тоже самое.


Цитата:
Поэлементно заполни и все.


Имеется в виду MSHFlexGrid1.TextMatrix(n, m) = ... ?


Цитата:
Цитата:К тому же свойства .DataSource у моего MSHFlexGrid вооще нет.

У моего тоже нет. У меня не Hierarchical, а простой MSFlexGrid.


При этом, при присвоении:

Set MSHFlexGrid.DataSource = sRecordsetName возникает ошибка несоответствия типа Type mismatch, а не то, что у грида нет такого свойства...
Автор: koyusi
Дата сообщения: 16.10.2012 13:02
dmention
Цитата:
Имеется в виду MSHFlexGrid1.TextMatrix(n, m) = ... ?

Да. Или TextArray(cellindex). Какой удобнее.

Вот еще по иерархическому - ну очень уж подробно и на русском:
http://www.vbnet.ru/articles/showarticle.aspx?id=56

И вот:
http://need4elp.tripod.com/#19
Автор: Mont1
Дата сообщения: 31.10.2012 09:02
Приветствую!

Подскажите, пожалуйста, как заполнить отчёт из VBA.

Я не могу разобраться как заполнить область данных, с помощью VBA.
Автор: novo_again
Дата сообщения: 31.10.2012 12:14
Есть отдельные функции по добавлению полей.
Автор: Mont1
Дата сообщения: 01.11.2012 05:06
Буду очень признателен, если покажите какой-нибудь примерчик. Или покажите где можно почитать об этих функциях...
Автор: novo_again
Дата сообщения: 01.11.2012 08:40
Мне кажется, сначала нужно определиться с концепцией того, что Вам нужно, с задачей.
Автор: cybersevmagic
Дата сообщения: 01.11.2012 16:43
Mont1
Подробнее опишите... данные вообще откуда браться будут? в VBA самом будет то что вам в отчеты надо или оно откуда-то в вба прилетать будет?
Автор: Mont1
Дата сообщения: 02.11.2012 06:24
Есть база данных access. Которая состоит из довольно большого количества таблиц. Большая часть этих таблиц имеет одинаковую структуру.

Нужно осуществить поиск по таблицам с определённой структурой. Количество таблиц, в дальнейшем, будет расти, поэтому их явно указать не получится. Надо будет провести проверку структуры таблицы (имеются ли в ней определённые поля).
Искать нужно сразу по всем этим таблицам.

Результат вывести в отчёт.

Если перейти к более конкретному примеру (пример упрощённый).

Допустим, у нас есть куча таблиц.
Нужно осуществить поиск, только по тем таблицам, которые имеют такие поля:

ФИО | Должность | Адрес

Надо получить отчёт, в который войдёт такая информация

Название таблицы | ФИО | Должность

Выборка будет проходить по полям ФИО или Должность.

То есть, пользователь задаёт ФИО. В отчёт выходит информация из всех таблиц, в которых есть нужный ФИО (Один и тот же товарищ может присутствовать сразу в нескольких таблицах). Если пользователь задаёт Должность, то соответсвенно в отчёт выходят все люди занимающие эту должность из всех таблиц. Также в отчёте должно быть название таблицы, в которой найден товарищ с требуемым ФИО или должностью.


С помощью VBA, я могу получить всю интересующую меня информацию. А вот с выводом этой информации в отчёт возникли проблемы...
Автор: novo_again
Дата сообщения: 02.11.2012 07:34
По-моему, так Вам VBA нужен для манипуляций не с отчетом, а со складированием найденного в отдельную временную таблицу.
Автор: Mont1
Дата сообщения: 02.11.2012 07:38
Спасибо!

Про временные таблицы я как-то не подумал...
Автор: dmention
Дата сообщения: 06.11.2012 13:20
1. Подскажите, пожалуйста, можно ли у ленточной формы сделать высоту строк разной для разных записей в зависимости от содержимого полей?
Т.е. чтобы в текстовые поля входили все данные и переносились по словам в поле. Если ставлю сжатие/расширение, то это срабатывает только на предварительном просмотре при печати. (по сути это срабатывает только в отчете).

2. Есть ли в access встроенный грид?
С некоторым трудом установил на комп MSHFlexGrid. Вещь хорошая. Но, получается, что БД на компе без специально установленного таким же путем MSHFlexGrid эта БД работать не будет.
Автор: Vitus_Bering
Дата сообщения: 06.11.2012 13:23
dmention
нет такой возможности

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

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


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