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

» Access VBA

Автор: MedvedevDM
Дата сообщения: 22.11.2010 07:37
Кто подскажет,
как отключить в Access 2010 постоянно возникающее
сообщение при открытии базы данных -

>> Предупреждение системы безопасности
Запуск активного содержимого отключен
Щелкните для получения дополнительных сведений
Автор: Kaylang
Дата сообщения: 25.11.2010 10:56
MedvedevDM
Там же, где и в 2007-м, в центре управления безопасностью.
http://office.microsoft.com/ru-ru/help/HA010354381.aspx?redir=0
Автор: MedvedevDM
Дата сообщения: 03.12.2010 11:16
А можно ли в ACCESS подключить и использовать .net библиотеку ?
Автор: Djaarfik
Дата сообщения: 06.12.2010 08:19
Ребята помогите открыть файл... Немогу он не открывается .. Решите эту задачку и отпишитесь плиз на kolay11@nail.ru
http://depositfiles.com/files/uwszh8uqh

Добавлено:
kolay11@mail.ru /// Прошу прощения мое упощение

Добавлено:
depositfilesиcom/files/uwszh8uqh
Вместо и надо .
Автор: vofkanov
Дата сообщения: 06.12.2010 08:34
Djaarfik
что значит "не открывается"? ну ищет он допфайлы - и что?
Автор: kyrumpia
Дата сообщения: 15.12.2010 14:21
Ребята помогите сделал базу но в ней столько косяков что стыдно и выкладывать.
Если не жало есть ли у кого база для учета в магазине продукты очень простенькая.
Посчитать приход товара Поставщики цена закупки цена наценки ну и товар все что нужно .Проданный товар учет не ведется .Устал уже на калькуляторе считать 1с и ее подобные мне не нужны слишко замороченные. Или хотя бы подскажите схему таблиц.Какие таблицы нужны
Хотя выложу что я состряпал поругайте

Uploaded with ImageShack.us
Автор: vofkanov
Дата сообщения: 15.12.2010 15:13
kyrumpia
1. подозреваю, что справочник "Тип товара" не к тому полю прикручен в "Справочнике товаров"
2. как мне видится, единица измерения и цены - это атрибуты товара, а не прихода
Автор: kyrumpia
Дата сообщения: 15.12.2010 15:21
vofkanov
Спасибо корректирую есть ли еще замечания?
Автор: vofkanov
Дата сообщения: 15.12.2010 15:27
kyrumpia
лучше дай ссылку на БД
Автор: Haos999
Дата сообщения: 22.12.2010 11:00
Доброго времени суток! В Accesse я полный нуб, а начальник дал указания чтоб я сделал базу, чтоб внесённые данные нельзя было редактировать, чтоб определённое поле было скрыто и там автоматом ставилась дата внесения данных, чтоб было 2 кнопки сохранить и выйти, причём если нажать сохранить он автоматом перебрасывал на новую страницу!!!!! Блин, помогите кто сможет, вопрос жизни и смерти
Автор: vofkanov
Дата сообщения: 22.12.2010 16:41
Haos999
давай какую нить схему данных - что вносим и как просматриваем - набросаю примерчик
Автор: Jully
Дата сообщения: 11.01.2011 10:30
Всем добрый день!
Помогите упростить процедуру определения открытых окон в проекте.
Т.е. объекты Forms и Reports - это хорошо, но на экране так же бывают открытые таблицы и запросы в виде таблиц. Как определить, есть ли они вообще.
Сейчас делаю перебор по всем таблицам и запросам и в цикле проверяю - загружен или нет.
Неужели нет никакого системного кэша открытых объектов, чтобы можно было с ними работать.

И может быть кто-то знает как работает системная функция в данном контексте:

If SysCmd(acSysCmdGetObjectState, acQuery, strQName) = acObjStateOpen Then
IsLoadedQry = True
End If

и возможна ли подобная проверка не тупо перебором, а запросом в куда-то?!

СПАСИБО!
Автор: skif21
Дата сообщения: 21.01.2011 15:42
Добрый день ребята! Подскажите алгоритм пожалуйста. Может кто сталкивался с такой задачей. Есть таблица с оплатой потребителей. В ней есть дата оплаты, сумма и показания абонента. Задача такова, что нужно по каждому абоненту удалить все записи об оплате за исключением самых последних платежей по дате.
Автор: vofkanov
Дата сообщения: 21.01.2011 15:53
skif21
ну я бы где-то так делал
delete from Таблица1 as t where ID in
(select ID from Таблица1 as t1 where t1.datepok<(select max(t2.datepok) from Таблица1 as t2 where t2.abonentname=t1.abonentname))
Автор: Yado
Дата сообщения: 21.01.2011 17:16
Всем привет! Помогите сделать следующее:
Дано:
Есть 6-7 прайслистов от разных поставщиков. Два столбца в Экселе: товар и цена. В колонке товар идет название товара с перечислением разных спецификаций...все в одной строке. Во всех прайслистах описание товара разное, только ключевые слова присутствуют.
Прайслисты обновляются каждый день и присылаются каждое утро. Файлы имеют постоянное название (без указания даты прайслиста), например, стоимость.xls или от сергея.xls

Требуется:
Осуществить поиск по всем прайслистам товара по некоторым параметрам (не полным), например, Acer ноутбук и выдать на экран подходящее полное название товара, цену, как указано в прайслисте, и из какого прайслиста. То есть 3 столбца.

Пока смог сделать в SQL вот такую простую вещь:
SELECT [F3],[F4]
FROM PriceList
WHERE [F3] like "*Acer*notebook*"
UNION SELECT [F1],[F2]
FROM Sheet1
WHERE [F1] like "*Acer*notebook*";

Как должно выглядеть: форма запроса, забивается набор из 3-4-5 слов по которым осуществляется поиск по прайслистам и выдается в виде таблицы результат поиска. Как уже сказал, результат поиска 3 столбца: товар, цена и из какого прайслиста.

Заранее спасибо!





Автор: petrosyanserg
Дата сообщения: 23.01.2011 15:27
Как задать диапазон значений в ячейке? Например, для 1-ой строки хотелось бы ввести в столбце "оси цифр" 4-8, в столбце "оси букв" а-в без этих промежуточных букв и цифр. Этот столбец нужен для осуществления поиска нужного номера чертежа по осям букв и цифр. Если я просто введу в столбец "оси цифр" 4-8, то при поиске с помощью "запросы" буду искать чертеж, где есть в цифровых осях цифра 7, чертеж ОВ-3100 не отобразиться, хотя цифра 7 и входит в его диапазон 4-8.
P.S. Надеюсь правильно сформулировал вопрос ).
Пример файла по ссылке.

Добавлено:
Постом выше ссылка заблокировалась
депозитфайлс.com/files/0eusos5fv
Автор: skif21
Дата сообщения: 24.01.2011 07:57
Уважаемый vofkanov.. не могли бы вы поподробнее описать ваш алгоритм?

Автор: vofkanov
Дата сообщения: 24.01.2011 09:15
skif21
интересует алгоритм или запрос? дайте структуру - верну запрос
З.Ы. на будущее - в личку
Автор: skif21
Дата сообщения: 24.01.2011 09:19
vofkanov посмотрите пожалуйста пример:

Таблица OPL, в ней поля - L_SCHET (лицевой счет), OPLDAT (дата платежа), OPLSUM (сумма платежа).
Задача - по столбцу OPLDAT оставить поля с самой новой датой, а остальные поля удалить. Ключа в таблице нету
В SQL не особо шарю, потому прошу помощи профессионалов.
Автор: vofkanov
Дата сообщения: 24.01.2011 09:32
petrosyanserg
я бы предложил другую схему хранения данных
тут

Добавлено:
skif21
попробуйте вот так типа идентификатор
delete from opl as t where t.l_schet&t.opldat&t.oplsum in
(select t1.l_schet&t1.opldat&t1.oplsum from opl as t1 where t1.opldat<(select max(t2.opldat) from opl as t2 where t2.l_schet=t1.l_schet))
Автор: skif21
Дата сообщения: 25.01.2011 15:18
Спасибо за помощь ребята - все получилось!

Добавлено:
Мастера по Access.. Подскажите пожалуйста пример (или готовый алгоритм - может есть у кого) по поиску данных введных в текстовое поле.
Есть форма.. в ней текстовое поле txtPoisk, на форме также поля с "Лицевой счет", "Фамилия" и так далее..
Хотелось бы введя данные в поле txtPoisk автоматом (или при нажатии на кнопку - не суть важно) данные находились в базе и заполнялись в поля на форме.
Автор: vofkanov
Дата сообщения: 26.01.2011 08:19
skif21
я так понимаю, что поиск должен вестись по всем полям таблицы на основании введенной строки в txtPoisk?
даю "удочку" - надо копать в сторону Union All, а полученный рекордсет задавать форме где-то так. на истину в последней инстанции не претендую
Автор: skif21
Дата сообщения: 26.01.2011 09:32
Вот такой код поисковика - если вдруг кому нибудь надо:

Private Sub txtPoisk_Change()

Dim rst As DAO.Recordset, intI As Integer

Set rst = Form.Recordset
rst.FindFirst "[LS] like '" & txtPoisk.Text & "*'"
Debug.Print rst.NoMatch
txtPoisk.SelStart = Len(txtPoisk.Text)

End Sub

Единственная заморочка - что если лицевой счет имеет номер "1" - то он почему то не находится. Вместо него находится "1111". Вполне возможно что лицевой счет "1" лучше пронумеровать как "0001".
Автор: dneprcomp
Дата сообщения: 26.01.2011 23:33
skif21
В данной ситуации применять LIKE и * я бы не стал. Запрос вернет все подходящие под маску рекорды: 1, 11, 111 , 189 и т.п.
Данными какого из рекордов заполнятся поля формы? Где гарантия, что первым из найденных окажется именно тот, что запрашивали?
Лучше использовать безусловное подобие:
rst.FindFirst "[LS] = '" & txtPoisk.Text & "'"
Если по синтаксису не проходит, то можно и LIKE, но без *
rst.FindFirst "[LS] like '" & txtPoisk.Text & "'"

Автор: skif21
Дата сообщения: 27.01.2011 08:16
Да - так действительно лучше работает код.
Автор: skif21
Дата сообщения: 27.01.2011 15:38
Ребята - добрый день! Подскажите пожалуйста выход. На форме №1 есть подчиненная Форма №2 в которую вводятся данные. Введенные данные при нажатии на кнопку "Добавить запись" записываются в подчиненную табличную форму №3. Соержимое этой таблицы видно на Форме №1. Но только данные в подчиненную табличную форму №3 не обновляются сами. Пока не нажмешь на панели инструментов кнопку "Обновить". Кнопка "Добавить запись" работает через встроенный макрос, созданный при создании кнопки мастером. Пытаюсь дополнить макрос следующими условиями: Макрокоманда - "ОбновитьОбъект", аргументы: тип объекта - форма, имя объекта - имя табличной формы (назвал ее "subFormsPokaz").
Можно ли это как то поправить?
Автор: Yado
Дата сообщения: 03.02.2011 10:14
Всем привет!
помогите построить простой поиск по базе. Сейчас такой поиск, который выводит на экран все подходящие значения с вводом каждого символа в строку поиска. Красиво, но проблема! База около 50 000 записей. Работает такой поиск очень медлено.
Требуется: ввел в строку поиска строку, нажал enter, вышло на экран что нашлось.

Текущ. поиск
Private Sub Поле0_Change()
Dim strActiveControlName As String
Dim strSQL As String
Dim strWhere As String

strActiveControlName = Screen.ActiveControl.Name
strWhere = "WHERE True "

If strActiveControlName = "Поиск0" Then
If Len(Me!Поиск0.Text & "") > 0 Then
strWhere = strWhere & "And Запрос2.Goods Like '" & Me!Поле0.Text & "*' "
End If
Else
If Len(Me!Text0.Value & "") > 0 Then
strWhere = strWhere & "And Запрос2.Goods Like '" & Me!Поле0.Value & "*' "
End If
End If


strSQL = "SELECT Запрос2.Suppl, Запрос2.Cod, Запрос2.Goods, Запрос2.Price FROM Запрос2 " & strWhere & ";"
Me!List2.RowSource = strSQL
End Sub


Заранее спасибо!
Автор: dneprcomp
Дата сообщения: 03.02.2011 16:49
Yado
Перенеси весь код в событие Поле0_KeyUp
Добавь в конец кода вместо строки Me!List2.RowSource = strSQL

Код: If KeyCode = vbKeyReturn Then
Me!List2.RowSource = strSQL
End Sub
Автор: Yado
Дата сообщения: 03.02.2011 20:04
сделал но как то странно работает при третьем нажатии enter

Private Sub Поле0_KeyUp(KeyCode As Integer, Shift As Integer)
Dim strSQL As String
Dim strWhere As String
strWhere = "WHERE True "


If Len(Me!Поле0.Value & "") > 0 Then
strWhere = strWhere & "And Запрос2.Goods Like '" & Me!Поле0.Value & "*' "
End If

strSQL = "SELECT Запрос2.Suppl, Запрос2.Cod, Запрос2.Goods, Запрос2.Price FROM Запрос2 " & strWhere & ";"
If KeyCode = vbKeyReturn Then
Me!List2.RowSource = strSQL
End If
End Sub

что не так...сам плох в аксессе
Автор: dneprcomp
Дата сообщения: 03.02.2011 21:23
Yado
Каким образом был создан Поле0_Change и кто добавил код в ивент?
Точно так же созается ивент для Поле0_KeyUp

Смотрим properties для текстбокса и отмечаем KeyUp
Весь код переносится с Change в KeyUp
В Change не долно быть никакого кода вообще
Заменяется одна строка

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

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


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