Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 След.
Microsoft отказывается от Excel?, Что же теперь со всеми нами будет?
 
Цитата
Alemox написал:
А поменялось-то чего ...  . Да ничего.
Как это ничего!!? - скорость работы снизилась!
Microsoft отказывается от Excel?, Что же теперь со всеми нами будет?
 
Цитата
Установившаяся тенденция падения популярности программы .... заставила руководство компании Microsoft задуматься об отказе от последующего развития одного из собственных самых известных продуктов
У меня вообще чувство, что Microsoft сама себе копает могилу и скоро начнёт оправдывать своё название - "Мелкие программы"  :D
...телефоны делает плохие, Windows испортила, теперь за офис взялась!  :(  
Python как замена VBA, Microsoft рассматривает возможность задейсвовать Python в качестве своего скриптового языка
 
Цитата
нельзя решить все задачи с помощью одного языка программирования
Не соглашусь! Основная причина - человеческие амбиции: "Если Билли создал ОСь, то и я смогу!..." и вкусовые предпочтения.

Не говорите мне, что Lisp работает быстрее, чем C, или на нём можно сделать, что-то, что нельзя на С! База-то у всех языков одна - двоичный код некоторого процессора! Просто Lisp для конкретного программиста удобнее для обработки некоторых типов данных (очень часто в ущерб производительности). При этом, другой программист может взять С, применить другую структуру данных и получить на выходе лучший результат (а при неправильном типе данных - худший).

Мелкомягкие один раз уже пытались заменить VBA - на платформу .NET. Результат известен...
Python может постичь та же участь - дело-то не в языке, а в реализации!..
О вредном GoTo
 
Не борюсь ни за, ни против Go To. Однако, признаюсь, что последний раз применял Go To  ещё на ZX-Spectrum (и последний раз она выглядела, как JP или JR - ассемблер Z80).
Потребности непосредственно в Go To у меня не возникает, хотя часто применяю Exit (For, Do, Sub...). Так же замечаю, что для меня разобраться в работе программы, где часто применяют Go To сложнее, чем без оного (а если ещё и структура не поддерживается...  :( :excl: )
Кстати, по выходу из цикла через Go To. Компилирующие языки могут реализовывать циклы, храня на стеке счётчик цикла, поэтому "выпрыг" из каскада циклов, сделанный по привычке, может однажды стать ошибкой (пусть не в VBA, а в каком-то другом языке).
Удобно ли работать в Excel на планшете Windows?
 
Мне вообще не нравится работать с сенсорным экраном пальцами - не важно Excel или что-то ещё - никакой точности попадания.  :excl:
Стилусами не работал, не знаю.  8)
Покупал жене планшет, так и лежит где-то - текст в блокноте набрать можно, а вот мультики в плеер для ребёнка накидать уже проблема. Какой уж тут Excel?  :(  
Организация контроля изменений в базе данных
 
Всем большое спасибо.  :D
Задача поставлена, направление понято. Буду работать.  8)

P.S. по мере возможности буду разбираться с MS SQL.  :excl:  
Организация контроля изменений в базе данных
 
Цитата
Андрей VG написал:
Боятся, увы, использовать и причины находят
...учитывая наличие Microsoft SQL Management Studio...
     В первую очередь - это всё деньги (про пиратство здесь не будем), которые для небольшой подрядной организации могут много значить. А Excel, хочешь-не хочешь, везде стоит, да и к базе Access через ADODB на любом компьютере цепляешься, не зависимо от наличия  установленного Access'а
     Во вторую - когда это не твоя основная обязанность, а занимаешься всем этим факультативно (зачастую по ночам), то установка, настройка, администрирование и изучение MS SQL Server'а могут стать очень большой головной болью! :(
Цитата
Андрей VG написал:
таблица истории изменений
     Андрей, а что посоветуете: отдельную таблицу в этой же базе или всё-таки другую базу?
Организация контроля изменений в базе данных
 
Цитата
pharmaprofi написал:
Поменять БД на ms sql
     Изначально хотелось использовать MS SQL.
     Выбор в пользу Access пал вследствие отсутствия опыта работы с MS SQL и наличия в Access графической оболочки, позволяющей заранее собрать базу, не нагружая свою программу лишним кодом.
     Кстати, вопрос. Надо ли устанавливать SQL Server для использования всех вкусностей MS SQL или же можно так же работать через ADODB, ничего дополнительно не устанавливая?
Организация контроля изменений в базе данных
 
Цитата
Jack Famous написал:
либо при первой выгрузке базы, либо при закрытии файла
Моя вина, не описал в постановке задачи. У меня система является надстройкой, постоянно загруженной в Excel. Поэтому не совсем подходит.
Цитата
Jack Famous написал:
А ещё вариант
Вариант от Андрей VG более удобен.
Спасибо!
Организация контроля изменений в базе данных
 
Цитата
Андрей VG написал:
Тем самым, коллега, вы нарушаете
Две головы всегда лучше, чем одна!
Цитата
Андрей VG написал:
По существу, вам нужны две разные таблицы
Идея принята. И она мне нравится! В самом деле, у меня почти не изменится  основной код, а все нюансы спрячутся в дополнительный код по управлению изменениями.
Цитата
Андрей VG написал:
просто периодически либо чистите таблицу истории
Читая Ваше сообщение, я подумал, что обязанность по очистке таблицы истории изменений от старья можно вменить учётной записи администратора, выдав ему для этого специальную кнопку <Очистить базу>.
Спасибо!
Организация контроля изменений в базе данных
 
Здравствуйте, дорогие форумчане!

Вопрос касается организации баз данных. Но поскольку вопрос является теоретическим, а реализовываться будет на VBA в Excel, я задаю его на этом форуме.

     Я разрабатываю небольшую систему учёта документов для организации. Всё уже работает, но захотелось иметь возможность контроля изменений и реализации отката этих изменений.
     Система работает на связке Excel-VBA + база данных Access, подключаемая через ADODB.
     Работа системы организована следующим образом:
1. по нажатии кнопки на Ribbon выводится таблица с данными из базы;
2. двойным кликом на строке вызывается форма редактирования  строки (Записи);
3. при нажатии на кнопку <Принять> на форме происходит фиксация изменений и обновление таблицы.

     На данном этапе при любом изменении Записи, Запись переписывается в базе данных, замещая старые данные:
Код
Dim rs As New ADODB.Recordset
….
    rs.Open ………..
    If rs.RecordCount > 0 Then
        rs.MoveFirst
        rs.Update ……….
        rs.UpdateBatch adAffectCurrent
    End If
    rs.Close
     Теперь хочу сделать так, чтобы при любом изменении Записи, она не переписывалась, а добавлялась новая Запись с тем же ключом, новым временем изменения (добавления) и пользователем, что внёс эти изменения. Пользователи всегда будут видеть только «последнее состояние записи».
     Звучит красиво и несложно, но возникает одно большое «но»: засорение базы многими копиями объекта и, как следствие, увеличение объёма базы
     Напрашивается необходимость принять правило, что надо удалять дублирующиеся Записи со сроком давности более, чем ХХХХ. Для этого необходимо периодически сканировать таблицы в базе данных для поиска таких Записей. Если при программировании на «взрослых» языках программирования можно выделить отдельный процесс, занимающийся таким важным делом, то на VBA придётся встраивать сканирование в основной процесс, замедляя основные операции.
     Прошу вас высказать своё мнение, подкинуть новую идею, дать совет по вариантам реализации и организации этого процесса.
Изменено: Skif-F - 26 Июл 2017 00:46:30
Программно посчитать количество всех страниц (на печать) в книге Excel - VBA
 
Ну, решение "в лоб" (посчитал 23 страницы):
Скрытый текст
Изменено: Skif-F - 21 Июл 2017 14:34:19
Ускорить работу макроса, собирающего текст из нескольких ячеек в одну, - сделать код изящнее, Как бы так сделать, чтобы макрос работал быстрее
 
Цитата
Hugo написал:
Я тоже слегка изначальный код шлифанул
Какая была задача, таков и ответ. Есть смысл только от Delete избавиться.
Цитата
Hugo написал:
нужно делать как я выше написал
Если за это браться, то необходимо вникать во все тонкости и выпускать "готовый продукт".
А это разговор не то что не для этой темы, но и не для этого раздела.
Ускорить работу макроса, собирающего текст из нескольких ячеек в одну, - сделать код изящнее, Как бы так сделать, чтобы макрос работал быстрее
 
Решение "в лоб", не меняя логику автора, но без лишних обращений к ячейкам:
Скрытый текст
на полутора тысячах строк - выполнение мгновенное.
Можно ускорить ещё, применив массивы и выгрузку на другой лист, чтобы не удалять строки (достаточно медленная операция)
ERP Система, Нужен совет по внедрению на предприятии полноценной ERP Системы
 
Цитата
Vladimir1985 написал:
SAP это очень круто
SAP, как и 1С, - болванка, которую надо конфигурировать. Основная стоимость расходов, насколько я знаю, именно в конфигурации. У нас в городе на заводе конфигурацию SAP уже лет 10 до ума доводят, но тут в SAP запрятано всё: бухгалтерия, документооборот, складской учёт и т.д., и т.п.
TreeView NEW . Для ненаглядной UserForm
 
Цитата
yozhik написал:
что это и какая от этого польза? ничего не понял, прочитав всю тему.
Это элемент управления "Дерево" (TreeView), предназначенный для вставки на UserForm. Автор называет его TreeViewNEW.
Предназначен в качестве замены стандартному TreeView, поставляемому (подключаемому) библиотеками "msComctl.ocx, MSComctlLib, Microsoft Windows Common Controls 6.0 (SP6)".

Зачем надо.
1. Вышеуказанные стандартные библиотеки имеют свойство глючить при работе с VBA - то им версия не нравится, то ещё какие причины найдут.
2. Можно сделать что-то, что отсутствует в стандартных библиотеках, а вот в наш проект надо!

Состоит из 4 модулей класса:
- TreeViewNEW - само дерево. Добавляется в модуль UserForm:  Public WithEvents ИмяНашегоДерева As TreeViewNEW
- NodeNEW - класс, описывающий один узел
- NodesNew - коллекция узлов
- tvwInterface - "внутренняя шина передачи данных". Предназначен для сокрытия от пользователя всех лишних методов и свойств, чтобы пользователь работал с привычным интерфейсом TreeView.
Цитата
SuperCat написал:
Подскажите, а как понять использование интерфейса (tvwInterface) для РАЗНЫХ объектов
Написал выше.
При появлении программно созданой формы не срабатывает UserForm_Initialize
 
А у кого они (слова) есть? Вроде бы разжевали Бейсику всё до последнего: "Взять из модуля UserForm1 объект CB1..." Ан, нет! Тоже не нравится!
При появлении программно созданой формы не срабатывает UserForm_Initialize
 
Цитата
Jungl написал: попробуйте вызывать форму из другой процедуры
Хуже!
Замените строку:
Код
myForm.codemodule.insertlines 7, "pFilter.Open sSQL, FConn: UserForm1.CB1.Column = pFilter.GetRows"
на
Код
myForm.codemodule.insertlines 7, "pFilter.Open sSQL, FConn: Me.CB1.Column = pFilter.GetRows"
При появлении программно созданой формы не срабатывает UserForm_Initialize
 
Конечно нет. Если бы отображались, не стал бы проверять "напрямую"
При появлении программно созданой формы не срабатывает UserForm_Initialize
 
Здравствуйте.
Прошу прощения. 4 и 12 - не имеет значения. Ошибку нашёл у себя - при переносе и удалении кавычек строчкой выше sPath превратилась в msPath. В остальном работает!
При появлении программно созданой формы не срабатывает UserForm_Initialize
 
Ronin751, а Вы код обращения к базе данных напрямую пробовали прогнать? У меня на строке
Код
FConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & ";"
выдал ошибку:
Цитата
Run-time error '-2147217843 (80040e4d)':
Не выполнена проверка подлинности.
Поправка макроса с выпадающим календерем
 
JeyCi, воспользуйтесь наработками Nerv'a и не нервничайте. Это достаточно сложная тема.  :(
Вопрос, скорее, организации данных и хранения их в массиве(ах) текстового типа и вытаскивания отдельных значений из текстовых значений
 
Где-нибудь там
Вопрос, скорее, организации данных и хранения их в массиве(ах) текстового типа и вытаскивания отдельных значений из текстовых значений
 
Цитата
Kirill Gureev написал:
Дайте, пожалуйста, какие-то свежие мысли!
1. Зачем хранить тип элемента верхнего уровня, если это всегда свёртка?
2. Зачем ссылки формировать на основании уровень/позиция_в_уровне? Предлагаю уходить на Dictionary или Collection и работать просто с порядковыми номерами.
3. На что влияет "правый" или "левый"? Нужна ли эта информация?
4. В дополнение к Dictionary и Collection можно ещё освоить классы. После этого каждый узел представить объектом и хранить в словаре/коллекции ссылки на эти объекты. При правильной организации данных и связей между ними Вы можете реально ускорить работу программы.
Макрос для автоматического изменения высоты объединенных строк
 
А может быть разработка nerv'a подойдёт: http://www.excelworld.ru/forum/3-23520-1?
Функция VBA "не видит" нулевые ячейки и значения, полученные формулами масивов
 
Попробуйте сделать явное преобразование типов:
Код
If Val(Power.Cells(k, 1)) > 0 Then ...
или
Код
If CDbl(Power.Cells(k, 1)) > 0 Then
Так же рекомендую избавиться от Variant - определить правильно типы:
Код
Public Function ERASYL(Min_Prices As Worksheet, Power As Worksheet, Power_Max As Double, Surplus As Double, Price_Cap As Double) As Double
   Dim k As Long
   Dim M As Double
   Dim C As Double
   Dim Z As Double
   Dim OTVET As Double
   Dim D As Double
Ну, и хотелось бы увидеть файл-виновник
Корректная передача UserForm как параметр Sub-а, Корректность использования процедуры типа sub test (frm as UserForm)
 
Цитата
vikttur написал: без Call ошибка возникает на строке перехода к процедуре: WaitForInput (UserForm1)
с Call в процедуру заходит: Call WaitForInput(UserForm1)
Господа, Вы забыли, что в первом случае VBA вычисляет выражение в скобках и передаёт его в процедуру. Тогда как, во втором случае VBA обращается к процедуре с параметром UserForm1. Эти два варианта даже различаются написанием:
- в первом случае между именем процедуры и открывающей скобкой VBA вставляет пробел;
- во втором - имя процедуры и скобка пишутся вместе.
Чтобы избавиться от "Call" надо убрать скобки вокруг параметра.
Очень интересная книга по Excel
 
В торрентах есть, правда на английском. Яндекс находит
Что меня больше всего раздражает в Excel, Раз есть лучшее, значит должно быть и худшее
 
Ограничения на применение типов, определённых пользователем.  :cry:
XML: можно ли размер вставляемой на ленту иконки задать вручную?, например: <button id="openlist" imageMso="OpenList" size="5"/>
 
Бахтиёр, не соглашусь, там всё на примерах, с картинками. Да, и онлайн-переводчики всегда есть!
Страницы: 1 2 3 4 5 6 След.
Наверх