Действительно, я думаю, что это будет кусок пирога.Это правда, как Тони сказал, что вы можете продолжать использовать те же таблицы / бэкэнд, и я, вероятно, рекомендую этот путь.Вам нужно будет установить драйверы ODBC MySQL на любой компьютер, который будет связываться с базой данных MySQL.После этого создайте DSN, а затем получите доступ к таблицам через Access.Возможно, вы захотите добавить код позже, чтобы связать таблицы каждый раз, когда программное обеспечение загружается с использованием таблиц без DSN.Таким образом, база данных может работать на компьютере, на котором не настроен DSN.Я рекомендую вам использовать MySQL или SQL Server Express в отличие от бэкэнда MS Access, но я не собираюсь тратить время на то, чтобы объяснить, почему.
Я думаю, что вы действительно можете получить гораздо больше функциональностииз традиционного Windows Desktop Application (встроенного в MS Access или VB.Net), чем с PHP.И я лично считаю, что вы сможете сделать это с меньшим количеством кода и меньшими затратами времени.Я упомянул VB.Net, но я бы, вероятно, рекомендовал MS Access через VB.Net для баз данных, хотя любой из них сделает свою работу.
Как уже упоминал Тони, Access использует язык VBA.Требуется некоторое время, чтобы действительно поднять его, если у вас уже нет опыта работы с другими языками программирования, которые используют синтаксис Basic.Я обнаружил, что переход с VBA / ASP на PHP / Javascript идет медленно, но не обязательно так сложно.PHP использует код в стиле C с фигурными скобками, а VBA - нет.
Исходя из PHP, вот некоторые вещи, которые могут быть для вас новыми:
Более сильная типизация переменных -В Access вы можете объявить переменные с указанным типом данных, таким как String, Date, Integer, Long, Single, Double и т. Д. Я рекомендую использовать это как можно больше.Очень редко вам нужно использовать более общие типы, такие как Object или Variant.Переменные, объявленные с указанным типом данных, выдают ошибку, если вы попытаетесь ввести в них неправильный тип данных.На мой взгляд, это поможет вам написать лучший код.
Option Explicit - Option Explicit - это объявление, которое вы можете поместить в верхней части каждого модуля кода, чтобы обеспечить необходимость объявления переменной с помощью оператора Dim перед использованиемЭто.Я настоятельно рекомендую вам сделать это.Это сэкономит вам много времени на устранение неполадок.
Set MyVariable = Nothing - Очистка переменных объекта после их использования - одна из лучших практик использования MS Access.Вы будете использовать это для очистки переменных набора записей DAO, переменных подключения ADO, переменных набора записей ADO, переменных формы и т. Д. Любая переменная, которую вы объявляете как объект (или какой-либо конкретный тип объекта), должна быть очищена, если для нее установлено значение Nothing.когда вам больше не нужно использовать переменную.
Нет включений - в MS Access нет такого понятия, как оператор включения.Вы можете импортировать модули кода из других баз данных Access.Вы можете вызывать функции, содержащиеся в DLL.Но в Access нет включения, как в PHP.
DoCmd - вам придется использовать объект DoCmd MS Access для открытия форм и отчетов и выполнения других общих задач.Просто предупреждение: это часто иррационально.Пользователи с длительным доступом не думают об этом, но я обнаружил, что эти команды имеют небольшую согласованность или последовательность.Позвольте привести пример.Если вы хотите закрыть форму, вы используете этот код: DoCmd.Close acForm, "frmSomeFormName" , но если вы хотите открыть форму, вы используете этот код: DoCmd.OpenForm "frmName" В этом примере, почему открытие формы получает свою собственную функцию OpenForm, а закрытие формы просто использует Close, за которым следует константа, которая сообщает Access, что вы хотите закрыть форму?У меня нет ответа.DoCmd полон этого типа несоответствия.Blueclaw неплохо справляется со списком наиболее распространенных DoCmd, хотя я не думаю, что приведенные здесь примеры являются просто звездными.
Ссылки - Вам не нужно использовать ссылки очень часто.Вам придется использовать их для включения таких вещей, как DAO и ADO (см. Далее) или Microsoft Scripting Runtime (часто используется для доступа, чтения, записи и т. Д. К файлам и папкам).По сути, это то, что вы делаете один раз, и затем вы забываете об этом.
Элементы управления ActiveX - Вероятно, лучше попытаться построить свой проект без их использования.Они требуют одинакового контроля на каждом компьютере, на котором будет запускаться ваше программное обеспечение.Я не знаю много об этом, но я понимаю, что есть некоторые проблемы совместимости, которые могут возникнуть, если вы используете элементы управления ActiveX в своем проекте.
DAO - Объекты доступа к данным - DAO - это доступ Accessоригинальный, нативный набор объектов, используемый для взаимодействия с вашим контейнером данных.Хотя он в основном используется для доступа к дате, хранящейся в бэкэнде / контейнере базы данных Access, он также может использоваться для некоторых задач при использовании таблиц, связанных с ODBC.DAO очень полезен, когда вам нужно перебирать наборы записей для массовых изменений.Вы даже можете использовать его для обхода элементов управления формы.Одно из мест, где я это использую, - это изменение порядка номеров строк в деталях счета-фактуры после удаления строки.Другое типичное использование - это использование в «служебных» функциях, где вам нужно что-то изменить в данном поле или полях, которые нельзя сделать с помощью запроса на обновление.
CurrentDb.Execute («Запрос на обновление или удаление»).здесь ... ") Метод Execute объекта CurrentDb, в моем понимании, является неявным вызовом DAO.Это позволяет запускать запросы на обновление или удаление локальных и связанных таблиц из кода VBA.Вы также можете добиться этого, используя DoCmd.RunSQL, но CurrentDb.Execute является предпочтительным методом, потому что он дает вам улучшенные сообщения об ошибках, если что-то не получается, если вы добавляете «, dbFailOnError» в качестве второго аргумента.
ADO -Объекты данных ActiveX - я рекомендовал не использовать элементы управления ActiveX, но это одна из технологий ActiveX, которая может вам понадобиться.Насколько мне известно, ADO - единственное, что вы можете использовать для запуска хранимых процедур из Access.ADO похож на DAO и должен был заменить DAO, хотя на самом деле это не так.Я склонен использовать их обоих в своих приложениях.Требуется время, чтобы выяснить, кто из вас сделает работу за вас или кто сделает ее лучше.В общем, я придерживаюсь DAO для всего, кроме запуска хранимых процедур или подключения к внешним источникам данных (т.е. без использования связанных таблиц).DAO и ADO являются частью MDAC (Microsoft Access Access Components), который устанавливается вместе с MS Access.
Объект файловой системы - Этот объект, упомянутый выше, часто используется для доступа к файлам и папкам.Возможно, вам придется использовать его для копирования файлов, создания текстовых файлов, чтения текстовых файлов, записи в текстовые файлы и т. Д. Это часть Microsoft Scripting Runtime, которая является частью Windows Script Host (существует на всех компьютерах Windows, хотяэто может стать "сломанным").Access дает вам несколько способов доступа к файлам и папкам с помощью встроенных функций / методов VBA, таких как Dir (), но эти функции не охватывают все основы.
SQL - язык запросов сервера - Вы, вероятно, уже знакомы с SQL, но вам нужно привыкнуть к «расширенному набору» Access языка SQL.Он не сильно отличается, но Access позволяет вам использовать функции Access (например, Len, Left, right) или ваши собственные пользовательские функции.Ваши собственные функции просто должны существовать в модуле кода и быть объявлены как общедоступные.Примером вашей собственной функции будет Repeat (не существует в MS Access, существует в MySQL), который иногда используется для создания отступов на основе Count (*) в таблицах с дочерними родительскими отношениями.Я привожу это в качестве примера, хотя вряд ли вам понадобится использовать такую функцию, если вы не собираетесь использовать модель вложенного набора для хранения иерархических категорий.
Переменные не могут быть в буквальных строках - это огромная разница между Access и PHP.PHP позволяет писать: «SELECT * FROM tag, ГДЕ tagtext = '$ mytag'» В MS Access вам нужно написать это так: «SELECT * FROM tag, ГДЕ tagtext = '" & strMyTag & "'" (Вы можетене нужно беспокоиться об этом, если только вы не форматируете запрос в VBA для получения набора записей DAO или ADO. То, что я только что указал, обычно не влияет на источник записей вашей формы или отчета или сохраненные запросы, потому что вы обычно не используетепеременные в них.)
Запрос - не сложно понять, но в Access запрос - это в основном представление MySQL.Я на самом деле не сохраняю запросы очень часто.Обычно я использую их только для получения своего «кода» SQL, а затем беру этот SQL и вставляю его в свою форму в качестве источника записей вместо привязки формы к сохраненному запросу.Неважно, каким образом вы хотите это сделать.Есть плюсы и минусы, так или иначе, вы решите это сделать.Как примечание, не бойтесь создавать представления в MySQL и ссылаться на них в Access.Когда вы ссылаетесь на них, Access видит их как таблицы.Возможность обновления или записи будет зависеть от конструкции представления.Некоторые типы запросов / представлений (например, союзы) доступны только для чтения.
В качестве заключительного замечания я рекомендую MS Access через OpenOffice.org Base.Я опробовал Base пару лет назад и обнаружил, что в ней не так много возможностей.Тем не менее, я уже имел опыт работы с MS Access, поэтому не уверен, что предоставил OpenOffice Base справедливое испытание.Что я пропустил, так это события.Я привык настраивать свои формы в MS Access, чтобы дать пользователям очень отзывчивый пользовательский интерфейс с большим количеством отзывов, и я не мог понять, как это сделать в Base.Может быть, что-то изменилось с тех пор, как я в последний раз попробовал это, я не знаю. Вот статья, сравнивающая Base с доступом к MS.
Другие гуру SO SO Access, не стесняйтесь указывать на любые ошибки в моем ответе.Я все еще считаю себя новичком в программировании.