![]() |
|
![]() |
Результаты опроса: Есть необходимость создавать свои статьи | |||
согласен (согласна) |
![]() ![]() ![]() ![]() |
6 | 100.00% |
не согласен (не согласна) |
![]() ![]() ![]() ![]() |
0 | 0% |
мне все равно |
![]() ![]() ![]() ![]() |
0 | 0% |
Голосовавшие: 6. Вы ещё не голосовали в этом опросе |
|
Рейтинг 4.65/857: ![]() |
![]() 547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
05.03.2012, 10:50 | |
Совместная работа MS Access и сервера MySQL
Уважаемые коллеги, любители, профессионалы, айтишники, бухгалтеры, логисты, здравствуйте! Возникла идея написать полезную статью, как организовать совместную работу бесплатного сервера MySQL и программного продукта MS Access (2003,2007,2010). У каждого человека в данной ветке, пользующегося аксессом в рабочих целях рано или поздно возникала мысль сделать работу программы пошустрей (особенно если использовалась обычная разделенная база данных , где таблицы просто лежали в какой либо папке и пользователь через оболочку аксесса/клиентской частью подключался к этим таблицам, которые все больше и больше тормозили из-за увеличивающегося количества информации и увеличивающегося количества пользователей). Хоть и обещают разработчики аксесса, что могут единовременно трудится в ней порядка 255 человек, но все это спорно. При моих таблицах нормальные тормоза уже возникали при 16-18 людях, которые одновременно использовали проект. Количество полей в некоторых таблах достигало порядка 100 штук. Причем проект был неплохо нормализован и логические связи в схеме данных были прописаны правильно. Решил избавиться от тормозов и поискать удобные решения работы через сервер. Расставаться с удобным и дружелюбным интерфейсом аксесса не хотелось и поэтому в качестве клиентской части оставил его. В качестве сервера перепробовал следующие варианты: 1) ORACLE 2)SQL LITE 3) MS SQL SERVER 2008 4) MYSQL Все эти сервера были поставлены и опробованы мной на локальной машине(обычном ноутбуке). Остановился на последнем варианте, а именно mysql server. Что понравилось: 1) самая большая скорость работы, по сравнению с остальными вариантами. (те, кто скажет что в мускуле нет транзакций, можно отхлестать по заднице до покраснения)) В версии 5 все есть) 2) Легкость в установке и настройке. 3) Возможность писать помимо аксесовского варианта еще и вэб интерфейс (то есть использовать БД как источник данных для сайта) 4) Хорошая отказоустойчивость. 5) Совместимость языка MySQL и обычного аксесовского JET SQL. 6) Легкий и интуитивно понятный интерфейс администратора сервера MYSQL. 7) Возможность обычной линковки таблиц через MyODBC driver (в случае если база используется на одном компе или в одной корпоративной сети с настроенным общим доступом к источнику данных. В остальных случаях доступ логичней организовать через connection string c точечными запросами к серверу. Мне вообще больше нравится второй вариант, ибо ...ибо нравится))) ГЛАВА 1. - Установка и настройка MySQL server на домашний комп.
Итак, желание есть, возможности есть, места известны, устанавливаем собственно на комп MySQL server и MyODBC driver.
1) Где найти MySQL . Предлагаю вам сразу поставить готовую сборку MySQL+PHP+HTML+APACHE от энтузиастов сайтостроения. Скачать эту сборку можно ЗДЕСЬ Заходите на сайт. Видите большую оранжевую кнопку?? Вот вот, ее и можно нажимать и заливать сервак к себе на комп. После скачивания дистрибутива, устанавливаете все это к себе на компьютер ("при установке следуйте за зеленым кроликом (С)"-Там все написано таким языком, что даже самый последний даун поставит мускул и апачи к себе на комп. Но не забудьте в конце установки сказать, чтобы иконки на рабочем столе появились.) После того, как вы все поставили у вас на рабочем столе появились три иконки в виде перышка. START,RESTART,STOP То есть соответственноЗАПУСТИТЬ МУСКУЛ И АПАЧ, ПЕРЕЗАПУСТИТЬ МУСКУЛ И АПАЧ, ЗАВЕРШИТЬ РАБОТУ С МУСКУЛОМ И АПАЧ Вот такие: Нажмите иконку перезапустить Денвер. После перезапуска в нижнем правом углу монитора появится значок перышка и шляпы. Это значит ,что апач и мускул заработал. Вот такое увидите : Все отлично, заработало,ура. Возник вопрос, как нам теперь попасть на сервак? Очень просто, открываете в интернет браузере следующий адрес http://localhost/PhpMyAdmin/ Появится подобная картинка: По умолчанию денвер никак не паролит сервер и дает свободный доступ к нему любого желающего на локальной машине. Вбиваете логин ROOT и нажимаете Ok Никакой пароль не забиваете. Все , процесс доступа свершился. Появляется примерно такая картинка: Видите обведенный поле красным? Это поле ждет, когда вы туда забьете имя своей базы данных, которую будете переносить потом с аксесса на MySQL. Вводите любое имя на английском и нажимайте Ок. Все, база данных создана и готова к импорту таблиц с аксесса. ГЛАВА 2. Перенос таблиц и запросов с аксесса на мускул. Линковка MS access и таблиц мускула через MyODBC driver
Что мы хотим сделать в этой главе? Мы хотим подружить аксесс и MySQL , чтобы мускул крутил наши таблы а аксесс выполнял функции погонщика и смотрителя за педалями этого велосипеда.
Создайте тестовую БД в обычном аксеccе . Создайте одну табличку. Назовите ее по английски Table1. Создайте в ней всего три поля schetchik,chislo,tekst. Типы данных надеюсь обьяснять не надо Заполните эту табличку какой нибудь произвольной хренью, которая придет в голову. Числом записей этак на двадцать. Все , пациент к экспорту на мускул готов и ждет его. Чтобы нормально, грамотно и очень быстро перенести данную таблицу на мускул (она может перенести естественно не только одну таблицу, но и тысячу. Сколько в аксессе есть, столько и перенесет. Если захотите, может и запросы прихватить), предлагаю установить дополнительную программку. Называется она Database Migration Toolkit. Ну собственно тушка и таблетка находится ТУТ
ESF Database Migration Toolkit Pro 6.3.27
Не забудьте про лекарства. Сейчас весна, переходный период. Витаминов не хватает. Таблетки помогут. Рецепт только немного почитайте. Скачиваете эту программку запускаете. В качестве источника указываете и находите вашу свежесозданную БД в аксеcсе. В качестве пункта назначения выбираете из списка MySQL database Server: localhost Port:3306 User:root Database: (Имя вашей базы, которую вы создали на серваке). Не забудьте, что в этот момент мускул должен быть запущен. То есть перышко и шляпа должны быть видны внизу вашего экрана. Ну там дальше прогресс бар, вы смотрите как заливается на мускул ваши таблы из акса, итд итп. После заливки закрываете программку миграции. Она вам больше не нужна сейчас (если еще ченить захотите потом экспортнуть, ради бога.) Все, сервер и база готовы к приему аксесса. Но аксесс не готов. Чтобы ему увидеть мускул, необходимо поставить переходник. То есть MyODBC driver . Это нужно для того, чтобы аксесс читал синтаксис сервака, и наоборот, сервак читал команды аксесса. Скачать драйвер можно ЗДЕСЬ. Или поставить из приложения в данной статье. Файл называется ДРОВА МУСКУЛ. На 32 битный и 64 битный виндоуз . Выбирайте. После скачки и установки драйвера, вам необходимо настроить источник данных , по которому аксесс будет связываться с серваком на мускуле. Чтобы попасть в настройку источника данных- самый простой вариант: ПУСК-> ВЫПОЛНИТЬ-> odbcad32-> Ок А далее смотрите по рисунку: Все. Источник для связки акса готов. Теперь открываете аксесс и делаете следующее: Все, вы прилинковались. Успехов. Далее работаете как в классике. Эксперементируйте. Не забывайте включать сервер перед работой акса и мускула. Осторожней с запросами на изменение. Иногда синтаксис не совпадает. Приятного аппетита. Если моя статья помогла вам, можете кликнуть спасибку. Кстати при выборе пакета MYSQL можно еще воспользоваться не менее креативной сборкой от наших земляков и поставить мускул от энтузиастов на NIMPBOX. Установить Апач,Мускул,Nginx,FileZilla можно ЗДЕСЬ. В самопальной сборке очень удобно править настройки обеих серверов. Доступ прямо к файлу htdocs. Все перед глазами. Это не отступление от самой статьи. Это просто для тех, кто освоит инструкцию выше и захочет чего то большего. Вот кстати сам сервак MySQL приложил. Установочный пакет. С Денвера. С Уважением, Сергей
72
|
05.03.2012, 10:50 | |
Ответы с готовыми решениями:
56
Сжатие базы данных по варианту 6.4. из темы Написание статей Написание IT статей написание статей |
![]() 2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17.03.2012, 18:22 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Пример разработки структуры базы данных для деканата факультета ВУЗа (в дополнение к статье "О разработке структуры базы данных")
1. Определяемся с целями и задачами нашей бд
Это будет база данных для деканата факультета ВУЗа для учета данных по студентам, преподавателям, для составления учебных планов и расписаний, расчета нагрузки преподавателей, учета сдачи студентами зачетов и экзаменов.
2. Определимся со списком данных, которые нужно хранить в бд
При этом распределяем данные по группам, в дальнейшем это поможет нам разбить данные по таблицам. Хотя набор таблиц может быть другим, но это может стать отправной точкой.
•Студенты в группах (форма обучения, бюджет/контракт, специальности, группы, специализации, ФИО студентов, дата рождения, их контактные данные) •Преподаватели (ФИО преподавателей, кафедра, должность, звание, научная степень, контактные данные) •Дисциплины (наименование дисциплины, кто из преподавателей читает или эту информацию отнести к Преподавателям?) •Учебные планы по курсам (сколько часов какой дисциплины положено на каком курсе по какой специальности и специализации) •Зачеты и экзамены (какие зачеты и экзамены должны сдавать студенты на определенном курсе, определенной специальности и специализации; результаты сдачи зачетов и экзаменов) •Расписание занятий для студентов (по каждой группе: неделя (числитель/знаменатель), день недели, время занятия, аудитория, преподаватель, название дисциплины) •Расписание занятий для преподавателей (по каждому преподавателю: неделя (числитель/знаменатель), день недели, время занятий, аудитория, дисциплина, группа) •Расчет нагрузки преподавателей (сколько пар каждый день, составление диаграммы) •Статистика по студентам (бюджет/контракт, рейтинги по оценкам за сдачу экзаменов) •Начисление стипендии студентам по результатам сдачи экзаменов При этом заметим, что некоторые данные будут входной информацией, некоторые выходной. Последние четыре пункта нашего списка можно отнести к выходной информации, т.к. введенных данных по всем предыдущим пунктам будет достаточно для получения этих данных. 3. Составим список таблиц
Каждой группе входных данных – своя таблица.
•Студенты •Преподаватели •Дисциплины •Учебные планы •Зачеты и экзамены •Расписание занятий Проанализируем каждую из таблиц на наличие повторяющихся данных: 1)Студенты: В примере студент 1-го курса, который еще не выбрал специализацию:
Специальность связана с группой, поэтому отнесем ее к таблице Группы. При этом название специальности все равно придется каждый раз дублировать, поэтому выделяем их в отдельную таблицу. Также мы видим, что будет происходить дублирование полей Основа обучения и Форма обучения, поэтому эти значения также выделим в отдельные таблицы. Аналогично со специализацией. Т.о., вместо одной таблицы Студенты мы получили следующие: •Специальности •Группы •Специализации •Формы обучения •Основы обучения •Студенты 2)Преподаватели:
Итак, вместо одной таблицы Преподаватели получаем следующие: •Кафедры •Должности •Звания •Научные степени •Преподаватели 3)Дисциплины: здесь мы задали себе вопрос, должна ли содержаться в этой таблице информация о том, какой преподаватель читает данную дисциплину, или эту информацию стоит отнести к таблице Преподаватели (т.е. какие дисциплины читает)
Если же мы сделаем наоборот и добавим дисциплину в таблицу Преподаватели, то будет происходить дублирование данных о преподавателе в случае чтения им нескольких дисциплин. Выход из положения – помимо таблиц Преподаватели и Дисциплины, создание дополнительной таблицы Дисциплины по преподавателям, связывающей Преподавателей и Дисциплины. •Дисциплины •Дисциплины по преподавателям 4)Учебный план: он будет разным для каждого курса, специальности и специализации:
•Курсы •Учебный план 5)Зачеты и экзамены, назовем эту таблицу Отчетность. Они будут также разными для курсов, специальностей и специализаций, а также семестров:
Кроме этого должна быть таблица по сдаче студентами зачетов и экзаменов:
Оценки также будут дублироваться, поэтому их тоже стоит выделить в отдельную таблицу. При чем, система оценивания зависит от вида отчетности (зачет/экзамен). Итак, получаем следующие таблицы: •Виды отчетности •Отчетность •Оценки •Сдача студентами экзаменов/зачетов 6)Расписание занятий:
•Недели •Дни недели •Расписание звонков •Типы занятий •Корпуса •Аудитории Итак мы получили следующий набор таблиц: •Курсы •Специальности •Группы •Специализации •Формы обучения •Основы обучения •Студенты •Кафедры •Должности •Звания •Научные степени •Преподаватели •Дисциплины •Дисциплины по преподавателям •Учебный план •Виды отчетности •Отчетность •Оценки •Сдача студентами экзаменов/зачетов •Недели •Дни недели •Расписание звонков •Типы занятий •Корпуса •Аудитории 4. Распределим данные по столбцам таблиц
•Курсы (Курс)
•Специальности (Специальность) •Группы (Год создания, Специальность, Номер группы) •Специализации (Специализация) •Формы обучения (Форма обучения) •Основы обучения (Основа обучения) •Студенты (ФИО, Дата рождения, Адрес, Телефон, Основа обучения, Форма обучения, Группа, Специализация) •Кафедры (Кафедра) •Должности (Должность) •Звания (Звание) •Научные степени (Научная степень) •Преподаватели (ФИО, Кафедра, Должность, Звание, Научная степень, Контакты) •Дисциплины (Дисциплина) •Дисциплины по преподавателям (Дисциплина, Преподаватель) •Учебный план (Курс, Специальность, Специализация, Дисциплина, Количество часов) •Виды отчетности (Вид отчетности) •Отчетность (Курс, Специальность, Специализация, Семестр, Дисциплина, Вид отчетности) •Оценки (Вид отчетности, Оценка) •Сдача студентами экзаменов/зачетов (Студент, Дата, Отчетность, Преподаватель, Оценка) •Недели (Вид недели) •Дни недели (День недели) •Расписание звонков (Номер пары, Время начала, Время окончания) •Типы занятий (Тип занятия) •Корпуса (Корпус) •Аудитории (Корпус, Аудитория, Тип аудитории, Количество посадочных мест) •Расписание занятий (Неделя, День недели, Время занятий, Группа, Специализация, Дисциплина, Тип занятия, Преподаватель, Аудитория) •Типы аудиторий (Тип аудитории) Появление последней таблицы обязано продумыванием полей для таблицы Аудитории: возникло бы дублирование типов аудиторий – лекционная, лаборатория и т.д. Совет: добавлять поля для иерархии, чтобы можно было отфильтровывать список значений поля, стоящего ниже по иерархии, для удобства и ускорения поиска. Например, на факультете есть специализации, каждая группа – выбранная специальность, она есть в таблице Группы, поэтому Специальность для Группы иерархически выше. Добавив выбор специальности в таблицу Студенты, можно будет отфильтровывать список групп для упрощения ее поиска в списке. Аналогично с Расписанием занятий: добавим сюда поле Специальность для последующей фильтрации списка групп в списке. И точно также поступим с Корпусами и Аудиториями в таблице Расписание занятий: добавим поле Корпус для иерархии (чтобы фильтровать аудитории по выбранному корпусу). Вспомним о правиле, что лучше разбивать информацию на минимальные логические компоненты, поэтому поля ФИО таблиц Студенты и Преподаватели разобьем на три поля, поле Контакты таблицы Преподаватели разобьем на Адрес и Телефон. В дальнейшем это может упростить поиск данных, например. Из поля ФИО сложнее получить Фамилию и инициалы, чем из трех полей Фамилия, Имя, Отчество. Как видим, наши таблицы не содержат вычисляемых данных, т.к. мы изначально определились, что будет входной информацией, а что выходной. Учтем советы об именах полей и таблиц: имена, состоящие из нескольких слов, запишем без пробелов, разделяя символом подчеркивания или выделим с большой буквы. Итак, после небольших корректировок таблицы будут содержать следующие поля: •Курсы (Курс) •Специальности (Специальность) •Группы (Год_создания, Специальность, Номер_группы) •Специализации (Специализация) •Формы_обучения (Форма_обучения) •Основы обучения (Основа_обучения) •Студенты (Фамилия, Имя, Отчество, Дата_рождения, Адрес, Телефон, Основа_обучения, Форма_обучения, Специальность, Группа, Специализация) •Кафедры (Кафедра) •Должности (Должность) •Звания (Звание) •Научные_степени (Научная_степень) •Преподаватели (Фамилия, Имя, Отчество, Кафедра, Должность, Звание, Научная_степень, Адрес, Телефон) •Дисциплины (Дисциплина) •Дисциплины/преподаватели (Дисциплина, Преподаватель) •Учебный_план (Курс, Специальность, Специализация, Дисциплина, Количеств_ часов) •Виды_отчетности (Вид_отчетности) •Отчетность (Курс, Специальность, Специализация, Семестр, Дисциплина, Вид_отчетности) •Оценки (Вид_отчетности, Оценка) •Сдача_ экз/зач (Студент, Дата, Отчетность, Преподаватель, Оценка) •Недели (Вид_недели) •Дни_недели (День_недели) •Расписание_звонков (Номер_пары, Время_начала, Время_окончания) •Типы_занятий (Тип_занятия) •Корпуса (Корпус) •Аудитории (Корпус, Аудитория, Тип_аудитории, Количество_мест) •Расписание_занятий (Неделя, День_недели, Время_занятий, Специальность, Группа, Специализация, Дисциплина, Тип_занятия, Преподаватель, Корпус, Аудитория) •Типы аудиторий (Тип_аудитории) 5. Определим ключевые поля таблиц
Воспользуемся советом о том, что самый лучший и простой ключ для таблицы – счетчик, поэтому добавим его в каждую таблицу с название Код…, где вместо троеточия будем подставлять сокращенные названия таблиц. Это делается для того, что по названию сразу было видно из какой таблицы данный счетчик-ключ.
•Курсы (КодКурса, Курс) •Специальности (КодСпециальности, Специальность) •Группы (КодГруппы, Год_создания, Специальность, Номер_группы) •Специализации (КодСпециализ, Специализация) •Формы_обучения (КодФормыОбуч, Форма_обучения) •Основы_обучения (КодОснОбуч, Основа_обучения) •Студенты (КодСтуд, Фамилия, Имя, Отчество, Дата_рождения, Адрес, Телефон, Основа_обучения, Форма_обучения, Специальность, Группа, Специализация) •Кафедры (КодКафедры, Кафедра) •Должности (КодДолжности, Должность) •Звания (КодЗвания, Звание) •Научные_степени (КодНаучСт, Научная_степень) •Преподаватели (КодПрепода, Фамилия, Имя, Отчество, Кафедра, Должность, Звание, Научная_степень, Адрес, Телефон) •Дисциплины (КодДисц, Дисциплина) •Дисциплины/преподаватели (КодДисцПреп, Дисциплина, Преподаватель) •Учебный_план (КодУчПлан, Курс, Специальность, Специализация, Дисциплина, Количество_часов) •Виды_отчетности (КодВидОтч, Вид_отчетности) •Отчетность (КодОтч, Курс, Специальность, Специализация, Семестр, Дисциплина, Вид_отчетности) •Оценки (КодОценки, Вид_отчетности, Оценка) •Сдача_ экз/зач (КодСдачи, Студент, Дата, Отчетность, Преподаватель, Оценка) •Недели (КодНед, Вид_недели) •Дни_недели (КодДняНед, День_недели) •Расписание_звонков (КодРасписЗв, Номер_пары, Время_начала, Время_окончания) •Типы_занятий (КодТипЗан, Тип_занятия) •Корпуса (КодКорп, Корпус) •Аудитории (КодАуд,Корпус, Аудитория, Тип_аудитории, Количество_ мест) •Расписание_занятий (КодРаспис, Неделя, День_недели, Время_занятий, Специальность, Группа, Специализация, Дисциплина, Тип_занятия, Преподаватель, Корпус, Аудитория) •Типы_аудиторий (КодТипАуд, Тип_аудитории) 6. Определим типы данных и другие ограничения для полей
Определяем типы данных полей. Например, Дата рождения таблицы Студенты будет иметь тип Дата/время. Тоже касается полей Время начала, Время окончания таблицы Расписание звонков.
Помним, что тип данных первичных и внешних ключей (т.е. ссылок на первичные ключи) должен совпадать, а т.к. у нас все первичные ключи таблиц – счетчики, то все внешние ключи будут числового типа. Т.е. во внешних ключах будут содержаться первичные ключи – коды записей из связанных таблиц. Например, поле Специальность таблицы Группы будет числовым, т.к. это внешний ключ таблицы Специальности, и будет связан с первичным ключом Специальностей на схеме данных. Кроме определения типов данных, задаем также некоторые ограничения для полей. Например, сделаем в поле Семестр подстановку значений 1,2 и зададим свойство Ограничиться списком = Да. Для полей Время начала и Время окончания таблицы Расписание звонков зададим Формат поля – Краткий формат времени. К примеру, для поля Курс таблицы Курсы можно задать размер поля 10, т.к. больше 10-символов в этом поле вряд ли будет. Этим мы уменьшаем размер бд, т.е. экономим дисковое пространство. 7. Определим связи между таблицами
Мы планировали связывание таблиц еще на этапе распределения данных по таблицам, поэтому изначально добавляли в нужные места внешние ключи (т.е. ссылки на первичные ключи). Поэтому мы просто соединяем первичные ключи таблиц с внешними ключами.
Например, для таблицы Специализации первичным ключом будет поле КодСпециализ, а внешними ключами для этой таблицы будут поля Специализация таблиц Студенты, Отчетность, Учебный план, Расписание занятий. На схеме данных соединяем их с первичным ключом таблицы Специализация. И так, проверяя каждую из таблиц, расставляем связи, используя Обеспечение целостности данных. Новичкам же, возможно, придется на этом этапе проектирования добавлять внешние ключи для связывания таблиц, а может и отдельные связующие таблицы. Обсуждение статьи
39
|
![]() 26820 / 14500 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||||||
14.01.2016, 16:58 | |||||||||||
В Microsoft выпустили хелп-файлы по идентификаторам интерфейса управления библиотеки офиса (Microsoft Office 14.0 Object Library) - https://www.microsoft.com/en-u... px?id=6627 для офиса 10. Статья была видимо подготовлена давно, но никаких ссылок на нее в сети не видел. А очень полезная. Дает имена контролов, тип и ID всех контролов, которые могут быть использованы в меню, контекстном меню, на ленте или выполнены. Особый интерес, для меня во всяком случае, что с помощью команды ExecuteMso можно выполнить любую команду меню. Синтаксис: (пример для вызова диалога принтера)
Весьма любопытно использование команд для других программ офиса. Например в екселе процедура красит цветом по умолчанию текущую ячейку (команды из файла ExcelControls.xlsx во вложении)
10
|
![]() 26820 / 14500 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
22.09.2016, 11:23 | |
В последнее время участились примеры баз с модулями без использования Option Explicit. Хотя и раньше их было немало. В связи с этим размещаю небольшую, но выразительную статью автора Shoker.Pro с другого форума.
К сожалению, по правилам cyberforum.ru не могу дать ссылку на первоисточник
6
|
![]() |
|
27.12.2016, 17:01 | |
0
|
1 / 1 / 0
Регистрация: 03.01.2015
Сообщений: 14
|
|
05.09.2017, 10:18 | |
Огромное Вам спасибо! И низкий поклон, за то что пролили свет на тёмные пятна моих познаний. Давно искал способы реализации такой идеи. Кнопку "Спасибка" не нашёл, но от вашей статьи и приложенных к ней файликов я в восторге!
Добавлено через 11 часов 39 минут Всё настроил. Запустил. Работает норм! только вот один косяк ![]() ![]()
1
|
![]() 3 / 3 / 0
Регистрация: 03.08.2015
Сообщений: 156
|
|
15.07.2020, 09:14 | |
alvk, я в том плане, что в случае, если установлен Офис 2016 и на дворе 2020 год, возможно, есть более современные методы переноса базы на сервер? Если есть - посоветуйте, плиз, где почитать. Ну а если нет, то буду пытаться делать всё по приведённой выше инструкции.
0
|
![]() 547 / 377 / 16
Регистрация: 17.12.2009
Сообщений: 991
|
|
15.07.2020, 20:11 | |
Да, актуально конечно. Но думаю переписать с реалиями выхода нового MySql 8.0.
Там появилось много новых плюшек, которые можно использовать совместно с клиентом на MS Access, да и Denwer уже давно не поддерживается ,не обновляется. Рекомендую сборку сервера mysql на wampserver , драйвера на MySql уже лучше ставить 8.0.. (сразу два , и 32х и 64х битную версию).
3
|
![]() 1342 / 263 / 16
Регистрация: 16.01.2014
Сообщений: 832
|
|
12.10.2021, 12:05 | |
Как оказывается, здесь можно размещать статьи. Хотя ветка и замаскирована под опрос.
Даже несколько своих статей нашел. Правда без указания авторства. Вот книга для программистов и о программистах. Эдвард Йордон. "Путь камикадзе или как разработчику программного обеспечения выжить в безнадёжном проекте" («Смертельный марш»). Если Вы считаете, что руководство ставит перед Вами непосильные задачи, что пользователи непроходимо тупы, что весь мир против Вас - прочтите книгу, и Вы узнаете, что Вы не одиноки. И пусть книга написана уже давно, она по прежнему интересна.
2
|
![]() 1342 / 263 / 16
Регистрация: 16.01.2014
Сообщений: 832
|
|
12.10.2021, 14:13 | |
В девятом посте в этой теме размещена моя статья о защите данных в базах Access. Она была написана в далёком 2007 году и устарела.
C тех пор прошло много времени, появился новый формат баз Access - accdb. Ушла в прошлое защита при помощи рабочих групп (в accdb она уже не поддерживается). Вот и я решил в 2017 году слегка причесать свою статью, добавить новые способы защиты. Подкорректировать старые. Очень многое я нашел в интернете, так что не ищите здесь чего-то сверхординарного. Я просто попытался свести вместе, то что рассыпано по разным сайтам. Примечание. В статье и в "Используемых материалах" даны ссылки на сайты, откуда я брал информацию и примеры. Но ничего не вечно. Часть сайтов уже закрылась и информация с них недоступна. В приложении добавил статьи с сайта http://msvb.narod.ru Защита и взлом баз данных Access Статья довольно старая, за 2005 год. Но ещё достаточно актуальная. Очень подробно рассмотрены защиты для форматов MDB (97, 2000,2002-2003). И если формат MDB 97 уже практически не встречается, то 2000 и 2002-2003 ещё достаточно распространены. Программы восстановления паролей Access Статья так же за 2005 год. Сделан обзор программ, актуальных на то время. Сейчас таких программ значительно больше. Как-то я попал на интернет-страницу с перечнем таких программ. Там их было более 50. И только одна из них была бесплатная. Ну, поскольку, формат MDB c 2003 (или 2002) года не менялся, то обзором вполне можно пользоваться для работы с MDB базами.
0
|
![]() 1342 / 263 / 16
Регистрация: 16.01.2014
Сообщений: 832
|
|
31.10.2022, 15:33 | |
Ещё несколько статей.
Когда-то, в 2002 году мне в руки попалась книга Стивена Форта, Тома Хоуна и Джеймса Релстона «Microsoft Access 2000 Development». В переводе - "Access 2000. Программирование, производительность, защита, сетевые решения, интернет. Энциклопедия пользователя" издательства ДиаСофт. Мне она очень помогла. Вот я и подумал, почему бы не разместить статьи (главы) из этой книги здесь. И так, первая серия статей - "Программирование на VBA." Серия состоит из четырех частей. - Создание объектов с помощью модулей классов; - Отладка приложений Access; - Профессиональная обработка ошибок; - Оптимизация приложений. Кроме текста, в архивах находятся и примеры. Поскольку тогда существовал только формат MDB, то все примеры даны в этом формате.
2
|
![]() 1342 / 263 / 16
Регистрация: 16.01.2014
Сообщений: 832
|
|
02.11.2022, 13:34 | |
Продолжаю выкладывать главы из книги Стивена Форта, Тома Хоуна и Джеймса Релстона «Microsoft Access 2000 Development».
Вторая серия "Взаимодействие приложений" В серию входят три части: 1 - использование метода автоматизации ActiveX; 2 - интеграция с Office 2000 3 - использование Visual Basic совместно с Access. В первой части описано: - Что такое автоматизация ActiveX - Для чего используется метод автоматизации - Отличие сервера автоматизации от клиента автоматизации - Определение требований к ресурсам автоматизации - Общие принципы работы - Создание и установка ссылок на другое приложение - Присваивание приложению объектной переменной - Запуск отдельной копии переменной - Использование свойств и методов объекта Automation - Освобождение объекта Automation - Создание цельного проекта - Закрытие приложения сервера автоматизации. Во второй части описано взаимодействие Acccess с программами Офиса. Зачем нужна интеграция с Office? Office представляет собой полный комплект программных продуктов, призванный удовлетворить запросы и потребности пользователей. Эти программные продукты обладают богатыми возможностями, внедренными и полностью протестированными компанией Microsoft. Office включает сотни объектов, которыми разработчики могут управлять программно с помощью VBA. Ни один другой офисный комплект сегодня не обеспечивает того уровня производительности и интеграции, который предлагает Office. В этой части описано следующее: - для чего нужна интеграция с Office - выбор нужного инструментального средства - вездесущий VBA - использование модуля, запись макроса для написания кода - использование автомакросов - Microsoft Forms - Браузер объектов - аргументы классов для приложений Office здесь описано так же взаимодействие со следующими программами Office: - Word - Exel - PowerPoint - Outlook - Graph - MapPoint - FrontPage - Binder кратко сказано о защите документов, шаблонов и кода. И хотя в статье описание дано для Office 2000, его с успехом можно использовать и для XP и для 2003-го. Ну и для следующих версий. Третья часть представляет собой скорее познавательную информацию, чем руководство к действию. Visual Basic, о котором говорится в статье, безнадёжно устарел. Установка его на современные ОС проблематична. Я пробовал несколько раз его ставить на Windows 7. Неудачно. Кроме того он является 32-х разрядной системой и не может создавать элементы для 64-х разрядного офиса. Но тем, кто работает с 32-х разрядными версиями Access она может быть полезна. Энтузиасты создали портабильную версию VB6, с которой можно работать без её инсталляции на компьютере. (вес в архиве - 30 МБ) Можно поискать в интернете по названию архива visual-basic-6_0_0_9782 или Portable Microsoft Visual Basic 6.0 SP6. Может кто и заинтересуется.
1
|
02.11.2022, 13:34 | ||||||
Помогаю со студенческими работами здесь
40
Написание статей на определенной странице Wordpress-написание разных статей
Каталоги статей, сколько статей стоит размещать Посоветуйте литературу по написание основам написание плагинов Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
|