-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4

Invalid link!








Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://www.sql.ru/forum/actualtopics.aspx?bid=4.
Данный дневник сформирован из открытого RSS-источника по адресу http://www.sql.ru/forum/actualrss.aspx?id=4, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Access-ODBC-MSSQL и разграничение доступа к данным

Понедельник, 20 Августа 2018 г. 09:19 + в цитатник
Собственно возникла разовая задача классической лоскутной автоматизации "вдолби структурированные данные на филиалах, собери в центре в сводную шахматку".
Раньше, когда в ацессе был ADP, подобные задачи легко решались конструированием БД и конверсией её в клиент-серверное приложение MSSQL с ADP/ADE-клиентом. Сейчас проблема - нужно жёстко разграничить вводимые данные данные, чтобы филиал А, долбя данные в форму/таблицу никакими действиями (в т.ч. опытный пользователь ацесс, умеющий пользоваться кнопкой "Связи с таблицами") не мог подлезть к записям таблиц, которые вводит филиал Б.

Возникла мысль сделать структуру БД по такой вот схеме:
1) конструируем структуру таблиц хранения данных на MSSQLе,
2) каждую (либо JOIN между ними) обвязываем View, который условие WHERE вьюхи строит от CURRENT_USER - т.е. каждый пользователь видит во вьюхе только свои данные.
3) таблицы (п.1) делаем настройками MSSQLя недоступными для конечных пользователей - чтобы через odbc к ним подлезть не могли.
4) вьюхи (п.2) авторизация по доменной учётке/группе конечных пользователей, и на них строим формы ввода. В итоге, по идее должно получиться, что каждый пользователь долбит и видит только свои записи. А визард построения формы ввода работает с одинаковой "статичной" вьюхой (никаких динамических WHERE в коде на клиенте - т.е. vba-макросы форм можно даже не закрывать паролем).
5) для построения сводных шахматок "в центре" придётся построить ещё дополнительные вьюхи, и раграничить доступ другой доменной группой.

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

Собственно конечная цель - не спрыгивать со старого-доброго ацесса на всякое новомодное "web-чтонибудь". Потому как хотелосьы бы сохранить удобство проектирования на коленке всяких "лоскутков" по нечётким ТЗ (и перепроектирования по 10 раз "ой мы забыли вам сообщить, нам вот тут ещё и это приплюсовать надо").

http://www.sql.ru/forum/1301257/access-odbc-mssql-i-razgranichenie-dostupa-k-dannym


Разделенные формы

Понедельник, 20 Августа 2018 г. 01:11 + в цитатник
Здравствуйте все.
Я разрабатываю базы данных в среде Access'07. Если применяется форма в табличном виде, можно на экране мышкой выделить несколько подряд идущих строк табличного вида, и затем через операторы Sel.Top и Sel.Height выйти на записи в порождающей таблице базы данных (для формы используется в качестве порождающей только одна таблица).
В некоторых случаях используется разделенная форма, вверху форма, внизу таблица. Но при выделении на экране строк в такой таблице операторы Sel.Top и Sel.Height не дают этой же требуемой возможности, именно, оператор Sel.Top дает правильное значение начальной выбранной строки на экране, а вот оператор Sel.Height стабильно дает значение 0, видимо, не сохраняется состояние выделения на экране для выделяемых строк таблицы.
Если кто знает, как сохранить выделение на экране и затем использовать соответствующие данные, подскажите.
Заранее признателен.

http://www.sql.ru/forum/1301249/razdelennye-formy


Статическая таблица в форме Аccess

Пятница, 17 Августа 2018 г. 15:48 + в цитатник
Доброго времени суток!
Есть следующие вводные: в форме (отчете) сделать статическую таблицу (или несколько таблиц) из набора показателей (список данных показателей не меняется) и несколько столбцов с расчетами план/факт, которые расчитываются соответствующими запросами и зависят от предприятия.

Прошу гуру подсказать, как можно реализовать данную задачу?

ПС. элемента "таблица" не нашел, поэтому единственное, что придумал, это "рисовать" таблицу (ячейки таблицы) с помощью "списков", где источником данных будут запросы...

http://www.sql.ru/forum/1301154/staticheskaya-tablica-v-forme-access


Еще раз об экспорте документа в Exel

Пятница, 17 Августа 2018 г. 13:01 + в цитатник
Уважаемые профессионалы, помогите! Просмотрел все по поиску, везде отдельные фрагменты процессы экспорта. Цельной картины не нашел. Я не профессиональный прогер, поэтому, пожалуйста, не закидывайте меня "умными" советами, просто напишите код для этого процесса. Бд и файл Ексель прилагаю. В форме, из которой надо делать вывод, сначала задаем фильтр, заполняем поля для ручного ввода (белый фон), потом нужно выводить в готовый файл Ексель. Готов оказать материальную поддержку).

http://www.sql.ru/forum/1301137/eshhe-raz-ob-eksporte-dokumenta-v-exel


Связанные поля в форме не обновляются

Пятница, 17 Августа 2018 г. 08:11 + в цитатник
Работал в MS Access еще в универе, прошло лет пять, решил опробовать свои силы и столкнулся с проблемой.

Имеется две таблицы Договор и Заказчики.
Поля в таблицах : Договор - КодДоговора,НомерДоговора,ДатаДоговора,ИдЗаказчика
Заказчик - ИдЗакказчика, Заказчик

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

Рабочий файл прилагаю

http://www.sql.ru/forum/1301115/svyazannye-polya-v-forme-ne-obnovlyautsya


Здравствуйте! Необходимо определить минимальную суммарную продажу за каждые 7 подряд идущ

Четверг, 16 Августа 2018 г. 20:27 + в цитатник
Здравствуйте! Необходимо определить минимальную суммарную продажу за каждые 7 подряд идущи дней. Использовать при этом конструктор запроса в Ассess. SQL не разрешено(. Помогите пожалуйста.

http://www.sql.ru/forum/1301104/zdravstvuyte-neobhodimo-opredelit-minimalnuu-summarnuu-prodazhu-za-kazhdye-7-podryad-idushh


Параметр в запросе в VB скрипте

Четверг, 16 Августа 2018 г. 15:03 + в цитатник
Всем привет!
Есть форма, на ней кнопка.
Мне нужно чтобы по нажатию кнопки формировался эксель из результата моего запроса.
Но в моем запросе есть параметр, который пользователь руками вводит.
И при нажатии кнопки у меня ругается что слишком мало параметров, хотя вводить параметр окно не показывает.

Запрос типа:
SELECT * FROM TABLE1
WHERE Дата=[Введите дату:];


Привязал к кнопке процедуру:
Private Sub Кнопка36_Click()
On Error GoTo Err1
    'Переменные
    Dim XLApp As Object, XLBook As Object, XLSheet As Object, RS As Object
    Dim CountColumn As Integer, WidthColumn As Integer, StrSQLInExcel As String
    'Создаем объекты: Excel, Книгу, Лист
    Set XLApp = CreateObject("Excel.Application")
    Set XLBook = XLApp.Workbooks.Add
    Set XLSheet = XLBook.Worksheets(1)
    Set RS = CurrentDb.OpenRecordset("Тест")
    'Узнаем количество колонок в Recordset
    CountColumn = RS.Fields.Count
    'Циклом заполняем заголовки колонок
    For i = 0 To CountColumn - 1
        'Передвигаемся по колонкам в Excel путем смещения
        XLSheet.Range("A1").offset(0, i).Value = RS.Fields(i).Name
        'Немного подкорректируем внешний вид выгрузки
        'Ширину колонки определим динамически на основе длины поля, но не более 20 и не менее 6
        WidthColumn = Len(RS.Fields(i).Name) + 2
        If WidthColumn > 20 Then
            WidthColumn = 20
        ElseIf WidthColumn < 6 Then
            WidthColumn = 10
        End If
        'Задаем для заголовка
        'Перенос по словам
        XLSheet.Rows(1).WrapText = True
        'Выравнивание
       
        'Цвет фона
        XLSheet.Rows(1).Interior.ColorIndex = 15
        'Ширина
        XLSheet.Columns(i + 1).ColumnWidth = WidthColumn
    Next
    'Записываем Recordset в Excel
    XLSheet.Range("A2").CopyFromRecordset RS
    'Делаем видимым Excel
    XLApp.Visible = True
    'Закрываем Recordset
    RS.Close
    Set RS = Nothing
Ex1:
    Exit Sub
Err1:
    MsgBox Err.Description
    Resume Ex1
End Sub

http://www.sql.ru/forum/1301078/parametr-v-zaprose-v-vb-skripte


Как определить дату последнего обращения к таблице

Четверг, 16 Августа 2018 г. 09:40 + в цитатник
Здравствуйте. Использую MS Access 2003, в списке таблиц есть столбцы с датой последнего изменения и датой создания. Но мне нужна дата последнего обращения к таблице. Скажите пожалуйста как можно определить эту дату?

http://www.sql.ru/forum/1301046/kak-opredelit-datu-poslednego-obrashheniya-k-tablice


Обновление свободной подчиненной формы по значению из подчиненной формы

Среда, 15 Августа 2018 г. 19:13 + в цитатник
Доброго времени суток, прошу помочь с такой ситуацией:
есть главная форма Просмотр, на ней подчиненная форма События_просм в виде таблицы и источника данных таблица События,
есть на этой же форме свободная подчиненная форма Ресурс_просм в виде таблицы.
Вопрос как сделать при переходе по записям в подчиненной форме События_просм, выводились данные в форме Ресурс_просм из таблицы Ресурс, отфильтрованные по полю Код формы События_просм = Код таблицы Ресурс.

Сама база

http://www.sql.ru/forum/1301020/obnovlenie-svobodnoy-podchinennoy-formy-po-znacheniu-iz-podchinennoy-formy


Как сделать запрос на добавление записей в таблицу (GUID)

Среда, 15 Августа 2018 г. 13:55 + в цитатник
Здравствуйте!

В форме есть кнопка при нажатии на которую нужно выполнить запрос на добавление записи в таблицу:
INSERT INTO OrderList ( ID_Order, SortOrderList, NameOrderList, Price ) SELECT [TempVars]![VarOrderID] AS 1, [TempVars]![VarProductShort] AS 2, [TempVars]![VarProductName] AS 3, [TempVars]![VarProductPrice] AS 4;


В переменную VarOrderID присваиваю из формы значение поля [ID_Order] с типом код репликации (GUID), пробовал напрямую, и через преобразование GUID к String. Запрос выдаёт ошибку (нарушение уникальности ключа).

Как это можно сделать?

Решение:
+
Пока писал, получилось решить, может кому пригодится:
В запросе источника данных формы, добавил поле ID_Order_String: StringFromGUID([ID_Order]) сразу с преобразованием GUID к String в запросе а не в переменной, а в переменную записываю напрямую значение поля.
И всё, всё заработало!

http://www.sql.ru/forum/1300996/kak-sdelat-zapros-na-dobavlenie-zapisey-v-tablicu-guid


проверка по условию

Среда, 15 Августа 2018 г. 09:52 + в цитатник
Добрый день. Есть форма для отбора записей (см. рис.) надо чтоб при постановке птички во вторую строку выдавало сообщение что такой покупатель уже есть (MsgBox "Покупатель с таким кодом уже есть." & vbCrLf & "Выберите только одного!!!!").

http://www.sql.ru/forum/1300976/proverka-po-usloviu


Импорт из XML

Вторник, 14 Августа 2018 г. 21:36 + в цитатник
Всем привет!
Появилась необходимость вытаскивать данные из XML. Но вытаскивать из него не все данные, а например:
managedObject class="IPNB" или managedObject class="WBTS", но не совсеми объектами.
Небольшой образец в аттаче.

Перепробовал с этого форума несколько образцов импорта, но все обламываются на считывании файла.
Если беру другой файл XML, то по крайней мере считывание происходит. Я подозреваю, что в аттаче не совсем стандартная структура файла.
Помогите пожалуйста распарсить. И как лучше реализовать выбор только нужных объектов? По эталонной таблице. В принципе данных надо не много, но может понадобиться их расширять.


  Dim xmlDoc As Object
    Dim xmlNode As MSXML2.IXMLDOMNode
    Dim xmlNodeList As MSXML2.IXMLDOMNodeList
    Dim xml_path As String
    Dim i As Integer
    Dim SourceFile$
  '
    Set xmlDoc = CreateObject("MSXML2.DOMDocument")
    xmlDoc.async = False ' флаг асинхронной загрузки документа
    'Документ не загружен
    SourceFile = "C:\temp\IPNB.XML"
    If Not xmlDoc.Load(SourceFile) Then Exit Sub   ' <========ВОТ ТУТ ПРОИСХОДИТ ВЫХОД
    '
    xml_path = "/raml/cmData/managedObject[@class='IPNB']"
    '
    Set xmlNodeList = xmlDoc.DocumentElement.SelectNodes(xml_path)
    i = 1
    For Each xmlNode In xmlNodeList
        MsgBox i
      MsgBox xmlNode.NodeValue
      i = i + 1
     ' тут надо будет писать в таблицу(ы)
    Next

http://www.sql.ru/forum/1300968/import-iz-xml


ScrollBar, как скрыть, но оставить возможность крутить мышкой?

Понедельник, 13 Августа 2018 г. 23:25 + в цитатник
Подскажите, как скрыть ScrollBar в подчиненной ленточной форме, но оставить возможность крутить записи колесиком мышки, или сделать scrollbar с левой стороны формы?

http://www.sql.ru/forum/1300910/scrollbar-kak-skryt-no-ostavit-vozmozhnost-krutit-myshkoy


Outlook is Access

Понедельник, 13 Августа 2018 г. 17:14 + в цитатник
Уважаемый форум,

понимаю, что бОян, но все-таки. Простая задача: база на Аксе должна создавать и показывать пользователю мыло, используя Outlook. Офис 2016. Использую код:
    Set outlObj = CreateObject("Outlook.Application")
    Set outlItem = outlObj.CreateItem(olMailItem)
    outlItem.Importance = olImportanceNormal
....
    outlItem.Attachments.Add "C:\Users\" & Environ("USERNAME") & "\" & flname & ".xlsx"
    outlItem.Subject = "Something..."    
    outlItem.Body = "Bla-bla-bla"
    outlItem.Display

Проблема в том, что если Outlook в это время не запущен, то все виснет и ничего не происходит. Если Outlook запущен - все работает на ура. Есть варианты, как побороть?

http://www.sql.ru/forum/1300899/outlook-is-access


В Access в запросе не открывается окно Would You like a detail or summary query

Понедельник, 13 Августа 2018 г. 12:35 + в цитатник
Привет, форумчане!
Не могу понять, почему при создании запроса не всегда появляется окно "Would You like a detail or summary query", позволяющее выбирать опцию Summary?

http://www.sql.ru/forum/1300872/v-access-v-zaprose-ne-otkryvaetsya-okno-would-you-like-a-detail-or-summary-query


Очередная загадкО с CommandBar-ами.

Воскресенье, 12 Августа 2018 г. 21:59 + в цитатник
При наличии на CommandBar контролов msoControlEdit наблюдается такой казус:
Если погулять фокусом по ним, Tab-ом, например, а затем убрать фокус с CommandBar,
то для каждого из получавших фокус контролов генерится событие Change,
хотя значение свойства Text и не менялось.

Избавиться от ложных срабатываний Change, точнее не транслировать их дальше, удалось заплаткой.

Интересно, а можно ли собрать все Change, а отдать "один на всех" агрегированный Change?

Стенд в прицепе "простыней", дабы избежать возможных паразитных флуктуаций.

+
ps: Специально для Константина: "таймер - плохая замена овсу" (с)
:)

http://www.sql.ru/forum/1300845/ocherednaya-zagadko-s-commandbar-ami


Использование таблиц Excel хранящихся в поле типа OLE

Воскресенье, 12 Августа 2018 г. 10:54 + в цитатник
Коллеги, подскажите решение задачи:
в поле типа OLE сохранил таблицу Excel.
Как отредактировать эту таблицу по кнопке из формы, например, значениями полей формы
(в таблице с новыми данными вычисляются какие-то значения, а затем результат вычислений отправляется обратно в форму или отчет, т.е. какому-то полю формы или отчета присваивается значение таблицы Excel) Выводить такую таблицу в присоединенной рамке формы или отчета мне не надо. Пользователь не должен вообще догадываться даже, не то чтобы видеть, что используется какая-то таблица Excel. Измененную таблицу Excel таким образом взятую из поля OLE, нужно сохранить в тоже поле OLE, т.е. обновить.

Сейчас у меня задача реализована "горбато": таблица Excel хранится в поле таблицы Access как вложение. Эту таблицу сохраняю на диск, снова открываю сохраненную таблицу и уже ее мордую (редактирую, нужный результат отправляю в ту же форму, а другие в отчет, и т.д.), а потом удаляю таблицу с диска - Пользователь этого не видит, а ждет терпеливо :)

А можно ли с полем типа OLE такое реализовать, чтобы вне БД Access не вылазить?

Спасибо сочувствующим и Большое спасибо отзывчивым.

http://www.sql.ru/forum/1300829/ispolzovanie-tablic-excel-hranyashhihsya-v-pole-tipa-ole


Копирование данных из одной БД в другую

Суббота, 11 Августа 2018 г. 22:06 + в цитатник
Уважаемые знатоки ,можно ли сделать и как копирование из открытых БД.Необходимо копировать(нажатием кнопки) из БД называется Справочник.accdb форма называется Главная ,поля- Препарат,Количество,Доза,МНН копировать в БД называется Пациент.accdb форма называется Справочник ,поля- Препарат,Количество,Доза,МНН. Спасибо !!!

http://www.sql.ru/forum/1300821/kopirovanie-dannyh-iz-odnoy-bd-v-druguu


Поиск

Суббота, 11 Августа 2018 г. 09:34 + в цитатник
Уважаемые помогите пожалуйста ,как сделать в форме Главная поле со списком Выбор препарата-необходимо чтоб при вводе названия происходил поиск по всему полю(так как в одном поле содержаться по 2 -3 названия).Если такое возможно ,помогите пожалуйста очень необходимо.Спасибо!!!!

http://www.sql.ru/forum/1300808/poisk


чудеса

Пятница, 10 Августа 2018 г. 14:33 + в цитатник
На форме есть 2 treeview
при отладке приходится поверх формы вручную открывать напрямую таблицы (из базы)
при закрытии таблицы тоже вручную на treeview иногда откуда то поступает команда expand по всем нодам....
У меня в коде нигде такой команду нет.... Никто не сталкивался с похожим?
Акс то ли 13 то ли 16

http://www.sql.ru/forum/1300781/chudesa



Поиск сообщений в rss_sql_ru_access_programming
Страницы: 353 ... 317 316 [315] 314 313 ..
.. 1 Календарь