Я уверен, что Вы доберетесь, тонна "не делают, это" отвечает, и я должен сказать, существует серьезное основание. Это не идеальное решение....
Однако я шел по этой дороге (и подобные) прежде, главным образом потому что задание определило его как трудное требование, и я не мог говорить об этом.
Вот несколько вещей рассмотреть с этим:
, Как легкий это должно связаться с Доступом от Excel с помощью ADO / ДАО? Это вполне ограничено с точки зрения функциональности, или я могу стать творческим?
Это справедливо straitforward. Вы более ограничены, чем Вы сделали бы вещи с помощью других инструментов, так как формы VBA и Excel немного больше ограничивают, чем самые полные языки программирования, но нет ничего, что будет выставочным стопором. Это работает - иногда это немного ужасно, но это действительно работает. В моей последней компании я часто должен был делать это - и иногда вытягивал данные из Доступа и Oracle через VBA в Excel.
я плачу потерю производительности (vs.using формы в Доступе как UI)?
Мой опыт состоит в том, что существует определенно штраф перфекта в выполнении этого. Я никогда не заботился (в моем варианте использования, вещи были достаточно маленькими, что это было разумно), но идущий Excel<-> Доступ намного медленнее, чем просто работа в Доступе непосредственно. Часть его зависит от того, что Вы хотите сделать....
В моем случае, вещь, которая, казалось, была самым медленным абсолютом (и самый болезненный) пыталась заполнить электронные таблицы Excel на основе данных Доступа. Это не было забавой и было часто очень медленно. Если необходимо идти по этой дороге, удостоверьтесь, что сделали все с Excel, hidden/invisible, или перерисовка абсолютно уничтожит Вас.
Предположение, что база данных будет всегда обновляться с помощью ADO / команды ДАО из Excel VBA, который означает, что у меня может быть несколько пользователей Excel, использующих, что одна база данных одиночного обращения и не сталкивается с какими-либо проблемами параллелизма и т.д.?
Вы в значительной степени используете Excel в качестве клиента - тот же способ, которым Вы использовали бы приложение WinForms или любой другой инструмент. Клиенты ADO/дао для Доступа довольно хороши, таким образом, Вы, вероятно, не столкнетесь ни с какими проблемами параллелизма.
Однако Доступ НЕ масштабируется хорошо. Это работает отлично, если Вы имеете 2 или 3 (или даже 10) пользователи. Если Вы соберетесь иметь 100, то Вы, вероятно, столкнетесь с проблемами. Кроме того, я был склонен находить, что Доступу было нужно регулярное техобслуживание, чтобы не иметь проблемы повреждения. Регулярные резервные копии DB Доступа - необходимость. Уплотнение базы данных доступа регулярно поможет предотвратить повреждение базы данных, по моему опыту.
Какие-либо другие вещи я должен знать?
Вы делаете это твердый путь. Используя Excel для удара Доступа будет намного большим количеством работы, чем просто использование Доступа непосредственно.
я рекомендовал бы изучить Доступ API VBA - большая часть из него совпадает с Excel, таким образом, у Вас будет небольшая кривая обучения. Части, которые отличаются просто, делают это легче. У Вас также будут все преимущества создания отчетов Доступа и Форм, которые намного более ориентированы на данные, чем те в Excel. Создание отчетов может быть большим для вещей как это, и наличие Макросов и Отчетов сделает жизнь легче в конечном счете. Если попытка пользователя использовать формы для управления всем, делая формы в Доступе будет очень, очень похожа на выполнение их в Excel, и будет выглядеть почти идентичной, но сделает все быстрее и более гладким.
Проверить настройку minimumZoomScale
и maximumZoomScale
; Согласно документы :
maximumZoomScale
должны быть большеminimumZoomScale
для включения масштабирования.
Таким образом, установка одинаковых значений должна отключить масштабирование.
Следуя совету fbrereto выше, я создал две функции lockZoom и unlockZoom. При блокировке масштабирования я скопировал максимальную и минимальную шкалы масштабирования в переменные, а затем установил максимальный и минимальный масштаб масштабирования на 1.0. Разблокирование масштабирования просто меняет процесс.
-(void)lockZoom
{
maximumZoomScale = self.scrollView.maximumZoomScale;
minimumZoomScale = self.scrollView.minimumZoomScale;
self.scrollView.maximumZoomScale = 1.0;
self.scrollView.minimumZoomScale = 1.0;
}
-(void)unlockZoom
{
self.scrollView.maximumZoomScale = maximumZoomScale;
self.scrollView.minimumZoomScale = minimumZoomScale;
}