I’ve installed the Microsoft Access Database Engine in order for an app to read and update and Excel file using OLEDB on a 64bit operating system. It all still works fine on 32 bit however i get a «Failure Creating File» error on a 64 bit machine.
I’m using the following connectionstring(VB.Net) as per connectionstrings.com(http://www.connectionstrings.com/excel-2007):
lstrConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:tempexcelfile.xlsx;Extended Properties=""Excel 12.0;HDR=YES"";"
Any advice would be greatly appreciated. Thanks a lot!
asked Jul 12, 2010 at 11:04
0
You’ll need to install the 64-bit version. Download from here.
The generic solution is to force your program to run in 32-bit mode. Project + Properties, Compile tab, scroll down, Advanced Compile Options, Target CPU = x86.
answered Jul 12, 2010 at 12:52
Hans PassantHans Passant
919k145 gold badges1681 silver badges2525 bronze badges
feos 2 / 2 / 0 Регистрация: 21.03.2017 Сообщений: 74 |
||||
1 |
||||
Ошибка при попытке создания имеющегося файла14.12.2017, 10:48. Показов 1190. Ответов 6 Метки нет (Все метки)
Добрый день!
0 |
mobile 26784 / 14463 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
14.12.2017, 11:00 |
2 |
|||
Сообщение было отмечено feos как решение Решение
Если нажать кнопку «не заменять», то возникает ошибка… А как должно быть если не заменять? Файл должен сохраниться под другим именем? Нужен алгоритм, правило создания дополнительных файлов, если такое имя уже есть. А перед сохранением надо проверить есть ли такой файл в папке сохранения
1 |
2 / 2 / 0 Регистрация: 21.03.2017 Сообщений: 74 |
|
14.12.2017, 11:25 [ТС] |
3 |
А перед сохранением надо проверить есть ли такой файл в папке сохранения Замечательно! А как можно имеющийся файл удалить при помощи VBA??? Добавлено через 2 минуты Добавлено через 16 минут
If Dir(CurrentProject.Path & «Прайс_для_» & [Компания] & «.xls»)<>»» Then Run-time Error ’13’
0 |
26784 / 14463 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
|
14.12.2017, 14:36 |
4 |
Run-time Error ’13’ Насколько я понимаю, такое может быть только в случае если поле [Компания] какого-то объектного типа, не текстовое и не числовое. Иначе я просто не вижу возможности ошибки в показанной строке кода. Может быть ошибка в другом месте?
0 |
7334 / 4475 / 288 Регистрация: 12.08.2011 Сообщений: 13,551 |
|
14.12.2017, 16:34 |
5 |
Может в компании кавычки?
0 |
2 / 2 / 0 Регистрация: 21.03.2017 Сообщений: 74 |
|
14.12.2017, 16:39 [ТС] |
6 |
Может быть ошибка в другом месте?
Может в компании кавычки? Уже исправил. Не знаю почему так получилось, но заработало когда пошел от обратного! вместо «<>» поставил = «» Ребята! Извините за оффтопик, но есть ещё один вопрос:
0 |
7334 / 4475 / 288 Регистрация: 12.08.2011 Сообщений: 13,551 |
|
14.12.2017, 16:47 |
7 |
Нужно добавить ещё одно поле, назвать его метка, проставить 1 кого не надо выводить и 0 кого надо.
0 |
Аварийная ситуация. Мистическая ошибка “Файл уже используется”
Теперь,
когда БД с многопользовательской
поддержкой создана, вы рассчитываете,
что она будет
поддерживать толпу пользователей,
поэтому вас приводит почти в шоковое
состояние
таинственная ошибка «Файл уже
используется» («File
already
in
use»).
Разве не
для того создаются БД с многопользовательской
поддержкой, чтобы оставаться доступными,
даже когда кто-нибудь их использует?
Эта
ошибка возникает, поскольку кто-то уже
открыл БД с монопольным доступом
(Exclusive
mode).
Монопольный доступ (см.
разд. «Открытие БД с монопольным
доступом »
далее в этой главе) позволяет
одному пользователю связаться с БД и
заблокировать попытки всех остальных.
Хитрость заключается в том, что при
определенных обстоятельствах
программа Access
может применять монопольный доступ,
даже если вы ее об этом не просили.
Наиболее
распространенная проблема — отсутствие
у пользователя подходящих разрешений
на папку с общим доступом, в которой
хранится многопользовательская БД.
(Разрешения (Permissions)
— составляющая системы безопасности
ОС Windows,
определяющая способ использования
файлов и папок тем или иным пользователем.)
В особенности эта проблема проявляется,
когда вы первым открываете БД и не имеете
разрешения
на создание новых файлов. В этой ситуации
программа Access
не может создать
файл с расширением laccdb.
Этот файл отслеживает блокировки (см.
разд. «Применение
блокировок для предотвращения наложения
обновлений» далее в этой главе). Без
файла с расширением laccdb
Access
не может координировать работу многих
пользователей.
Поэтому программа тихо переходит в
режим монопольного доступа, который
блокирует остальные
обращения к БД.
Понятно,
что решением может быть точное определение
всех, нуждающихся в использовании
БД, и гарантированное предоставление
им разрешения на создание новых файлов
в папке с общим доступом. Конечно, все
было бы гораздо проще, если бы программа
Access
могла предупредить вас о том, что не
может нормально открыть БД и вынуждена
применить
монопольный доступ.
Разделение БД
вручную
Для
разделения БД не обязательно применять
мастер. Вы можете самостоятельно
перенести таблицы
в отдельный файл БД и затем вручную
установить с ними связь. Главная причина
такого
подхода заключается в желании разделить
вашу БД на несколько фрагментов —
например, вы хотите создать одну
клиентскую часть и четыре серверных
файла.
Для разделения серверной
БД существуют некоторые веские основания.
К ним относятся
следующие.
■ Повышение
надежности. На
самом деле, если один файл будет поврежден,
остальные
останутся
в прежнем состоянии.
-
Повышение
уровня безопасности. С помощью
средств ОС Windows
вы можете управлять разрешениями
на открытие конкретных файлов. Благодаря
этим средствам можно использовать
преимущества разделения БД для
блокирования доступа пользователей к
тем
частям серверной БД, с которыми они не
связаны.
■ Возможность
дальнейшего роста файла БД. Как
упоминалось ранее, программа
Access
ограничивает
размер БД 2 Гбайт. Если планируется
хранить большое число записей с
вложениями
(например, изображениями), хорошо бы
иметь уверенность в том, что дос
таточно
дискового пространства доступно в
данный момент и будет доступно в
обозри
мом
будущем.
Для
разделения БД вручную необходимо
использовать средства импорта и экспорта
программы Access.
Описанные далее действия продемонстрируют
разделение БД Boutique
Fudge
на три отдельных файла, таким образом,
вы сможете хранить данные кредитных
карт отдельно от
остальной информации. (Если хотите
повторять эти действия на компьютере,
найдите БД примеров на странице «Missing
CD»
Web-сайта
www.missingmanuals.com.)
1. Создайте
необходимые серверные БД.
В данном
примере вам нужны две серверные БД: одна
для хранения данных кредитных карт
(назовем ее BoutiqueFudgeSecrets_be.accdb)
и вторая для остальных подробностей
(назовем ее BoutiqueFudge_be.accdb).
Прежде чем двигаться дальше, создайте
обе эти БД в программе Access
и поместите их в общедоступную папку,
но пока оставьте пустыми.
2. Откройте
файл серверной БД.
Следующая
задача — добавить соответствующие
таблицы в каждую из серверных БД. Для
этого используйте мастер импорта
программы Access.
Начнем
с файла BoutiqueFudgeSecretsJbe.accdb.
Он легче, поскольку должен включать
всего
одну таблицу.
3.
Выберите на ленте Внешние
данные →
Импорт →
Access
(External
Data
→
Import
→
Access).
Начнет работу мастер импорта (рис. 18.6).
Примечание
В
данном примере импортируются таблицы,
необходимые для серверной БД. Можно
попробовать
и обратный прием — экспортировать
таблицы из клиентской БД. Но у операций
экспорта больше ограничений, чем у
импорта, т. к. они позволяют преобразовать
только одну таблицу одновременно.
Рис.
18.6.
В первом окне мастера импорта выбирается
файл с таблицами, которые надо
импортировать,
и затем решается, копировать таблицы
или просто создать ссылки на них
4. В
поле Имя файла (File
name)
задайте местоположение вашей клиентской
БД.
В данном примере — это файл
BoutiqueFudge.accdb,
в настоящий момент содержащий полный
набор (таблицы, запросы, формы и отчеты).
5. Выберите
первый переключатель Импорт
таблиц …
в текущую базу данных
(Import
tables
… into
the
current
database).
Второй
переключатель позволяет создать
связанные таблицы. Вы примените их позже
в этом
процессе.
6.Щелкните мышью
кнопку ОК.
На
экране появится окно Импорт
объектов (Import
Objects)
со всем содержимым вашей БД
(рис. 18.7).
-
Выделите
таблицы, которые хотите импортировать,
и щелкните мышью кнопку ОК.
БД
BoutiqueFudgeSecrets_be
нужна единственная таблица CreditCards
(кредитные
карты).
После
нажатия кнопки ОК
программа Access
копирует таблицы в вашу БД. Файл БД можно
закрыть.
8.Повторите
пункты 2—7 для заполнения остальных
файлов серверных БД.
В данном
примере необходимо открыть файл
BoutiqueFudge_be.accdb
и импортирован в него все таблицы за
исключением таблицы CreditCards.
Рис.
18.7.
На вкладке Таблицы
перечислены
все таблицы вашей БД. Выделите
одинарным щелчком кнопки мыши те, которые
хотите импортировать
После завершения
передачи данных в серверные БД, самое
время обновить клиентскую БД.
9.Откройте
клиентскую БД.
В нашем случае файл
BoutiqueFudge.accdb.
10. Удалите
все таблицы.
Не
бойтесь — в конце концов, вы только что
скопировали их в файлы серверных БД.
После завершения
удаления следует выполнить последний
шаг — создать нужные вам связи
в клиентской БД. Если ваши таблицы
связаны друг с другом, начните с
подчиненных
или дочерних таблиц.
11. Выберите
на ленте Внешние
данные → Импорт →»
Access
(External
Data
→
Import
→
Access).
Снова запустится мастер импорта.
12. Укажите
мастеру импорта на первый серверный
файл, выберите переключатель Создать
связанную таблицу для связи с источником
данных (Link
to
the
data
source)
и затем нажмите
кнопку ОК.
Начните
с
файла
BoutiqueFudgeSecrets_be.accdb.
13. Выберите
все таблицы и щелкните мышью кнопку ОК.
Программа
Access
создаст соответствующие связанные
таблицы в вашей БД. Рядом с каждой
таблицей в области переходов отображается
сигнальная пиктограмма стрелки, чтобы
дать вам знать о применении связи.
14. Повторите пункты 11 — 13 для каждой
серверной БД.
Если
вы начали с файла BoutiqueFudgeSecrets_be,
пора перейти к файлу BoutiqueFudge_be,
содержащему все остальные нужные вам
таблицы.
Если вы выполнили все
перечисленные действия, то получите
три файла БД, работающие
вместе: BoutiqueFudgeSecrets__be.accdb
с информацией о кредитных картах,
Boutique-Fudge__be.accdb
с остальными таблицами и BoutiqueFudge.accdb
с запросами, формами и отчетами. Если
хотите увидеть окончательный продукт,
загляните в загружаемые из Интернета
примеры к данной главе. Перейдите в
разд.
«Защита базы данных» далее в этой
главе, чтобы
узнать, как применять разные параметры
безопасности к различным серверным БД.
Блокировка вашей
клиентской БД
Прежде чем выпустить вашу
БД в жизнь, стоит подумать о вредных
последствиях. В руках не
слишком смышленых пользователей Access
ваши любовно создаваемые формы и отчеты
могут быть безнадежно испорчены. Эта
самая частая жалоба в случаях совместного
использования
БД Access:
раньше или позже любопытные или небрежные
пользователи изменят что-нибудь,
что не стоило трогать, и их клиентская
БД перестанет работать.
Несмотря
на то, что вы не сможете стоять за плечом
каждого из них, можно предотвратить
проделки пользователей с помощью
блокировки клиентской БД. В этом случае
другие люди
не смогут изменять формы и отчеты. (При
этом они все равно смогут просматривать
и редактировать
данные.)
Секрет установки блокировки
вашей клиентской БД заключается в замене
расширения файла accdb
на расширение accde.
Несмотря на разницу всего в одной букве
формат с расширением accde
ограничивает пользователей несколькими
способами:
-
они не
могут изменять формы и отчеты, на самом
деле они даже не могут открывать
эти
объекты
в режиме Конструктора; -
они не могут создавать новые формы и
отчеты; -
они не могут переименовывать существующие
формы и отчеты (хотя могут их удалить); -
они не могут редактировать
или даже просматривать ваш программный
код и макросы. В
действительности весь программный код
откомпилирован, т. е. преобразован из
операторов кода, о которых вы узнали в
главах
16—17, в
«стенографическую» запись, понятную
только
компьютеру.
Примечание
Программа
Access
предоставляет такие же возможности в
отношении БД более старого mdb-формата.
Для блокировки внесения изменений в
файл с расширением mdb
создайте файл с расширением
mde.
Создать
файл с расширением accde
проще простого. Достаточно выполнить
следующие действия.
-
Откройте вашу клиентскую БД.
-
Убедитесь, что она запускается как
надежная БД или БД с полным доверием.
Если
вы открыли ее не из надежного расположения
(см.
разд. «Задание надежного расположения»
главы 15), необходимо
щелкнуть мышью кнопку Параметры
(Options)
на
панели
сообщений, выбрать команду Включить
содержимое (Enable
Content)
и затем щелкнуть
мышью кнопку ОК.
3, Выберите
на ленте Работа
с базами данных → Работа с базами данных
→ Создать ACCDE
(Database
Tools
→
Database
Tools
→
Make
ACCDE).
На
экране появится диалоговое окно Сохранить
как
(Save
As).
4. Введите
имя для вашего файла с расширением
accde.
Программа
Access
не изменит исходную БД — вместо этого
она создаст копию нового формата.
После
создания файла с расширением accde
убедитесь в том, что исходный файл с
расширением accdb
у вас в руках. Рано или поздно вам придется
вносить изменения. Программа
Access
не предоставляет никакого способа
обратного преобразования файла с
расширением accde
в исходный формат, поэтому единственная
возможность вернуться к первоначальному
файлу — внести изменения и затем
экспортировать его в новый файл с
расширением
accde.
Примечание
Если
исходный файл с расширением accdb
потерян, нет возможности изменить ваши
формы и отчеты.
Вы остаетесь с неизменной во времени
БД. В качестве последнего средства можно
обратиться к Web-пространству,
в котором другие компании предлагают
утилиты, умеющие (обычно)
преобразовывать файл с расширением
accde
в файл с расширением accdb.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
17.03.20158.02 Mб11ARBITRAZhNYJ_PROTsESS (2).doc
Обновляя парк компьютеров и программное обеспечение, столкнулся с тем, что при открытии в Microsoft Access 2007 проекта, созданного в более ранних версиях, появилась ошибка следующего содержания:
База данных или проект [НАЗВАНИЕ ПРОЕКТА] содержит отсутствующую или неправильную ссылку на файл «DTE.OLB» версии 7.0
Так же при работе в самом проекте стала появляться ошибка про функцию Left: «неопределена функция left в выражении».
Решение проблемы
В открытом файле Access переходим на вкладку «Работа с базами данных», после чего нажимаем на кнопку «Visual Basic».
Откроется окно редактора Microsoft Visual Basic, где нужно раскрыть меню Tools и выбрать пункт «References. «.
И находим пункт начинающийся с «MISSING«, и снимаем с него галочку.
После этого, перезапускаем Access и проверяем, пропала ли ошибка при открытии и стали ли доступны ранее нерабочие функции.
Ошибка «Не удается запустить Access, так как на этом компьютере нет лицензии» при запуске Access
При запуске Access 2007 или Access 2010 возникает следующую ошибку:
Microsoft Access не может запуститься, так как на этом компьютере нет лицензии на него.
Причина
В реестре возникла проблема с разрешениями, которая препятствует правильному открытию Access.
Решение
Чтобы назначить соответствующие разрешения, выполните следующие действия.
Нажмите кнопку « Пуск» и нажмите кнопку «Выполнить».
Введите Regedit и нажмите клавишу ВВОД.
Перейдите к следующему разделу реестра:
Access 2007
Access 2010
Проблемы с разрешениями могут возникнуть в любом месте от GUID до ключа розничной торговли. Если у вас возникает проблема с разрешениями в GUID, вам также потребуется повторить шаги 4–10 для ключа 12.0 или 14.0, а также ключа розничной торговли.
Щелкните правой кнопкой мыши ключ и выберите пункт «Разрешения».
Нажмите кнопку Дополнительно.
Выберите вкладку «Владелец «.
Измените владельца на «Администраторы».
Нажмите кнопку « Применить» и нажмите кнопку «ОК».
Нажмите кнопку « Добавить», введите «Все» и нажмите кнопку «ОК».
Убедитесь, что установлен флажок «Полный доступ», и нажмите кнопку «ОК».
Почему не открывается access
Лучший отвечающий
Вопрос
Всем доброго времени суток!
Расскажу подробно (может разобраться поможет), есть ноутбук с лицензионным ПО: Windows 10 (x64) и MS Office 365 Home (x32).
Помогали мне дистанционно ставить чужое лицензионное ПО и что-то сделали с компьютером (использовалась программа OLE32Register.exe+командная строка+regsrv32). После этого некоторые другие программы перестали запускать и потребовали OLEPRO32.dll, самостоятельно скачал и скопировал в папку System32 и перезагрузился. После этого программы запустились.
Далее стал стал запускать Excel, хотел поставить надстройку «Поиск решения», ничего не получилось — появилось окно, что он не может выполнить какой-то макрос VBA.
Потом решил запустить Access. Ситуация с ним такова.
1.При импорте внешних данных (txt и др.) появляется белое окно «mx_FrmMain» и никакие кнопки (Cancel, OK, Finish) не действуют.
2.Пытаюсь открыть чужую базу Access появляется окно с надписью «Проект Visial Basic в проекте поврежден». Нажимаю Справку — указывается «Эта ошибка может возникнуть при попытке преобразовать базу данных Access 97 в базу данных более поздней версии. «. И база не открывается.
3.Открываю базу Access, ранее созданную в версии 2016, открывается, но сразу после этого 3 раза промелькнуло окно «Поиск файла stdole2.tlb». Потом запускаю команду «Сжать и восстановить» для этой базы — также мелькает это окно.
4.Создаю пустую базу с одной пустой таблицей, сохраняю и закрываю. Снова пытаюсь ее открыть и получаю окно «Не удается открыть базу данных из-за ошибки ее VBA-проекта. База данных может быть открыта, только если сначала удалить VBA-проект. При удалении VBA-проекта будут удалены все программы в модулях, формах и отчетах. «
Стал проверять положение и размеры файла stdole2.tlb. Он записан в 5-ти местах, причём, есть размером 18Кb и есть размером 297b. В общем, почитав в интернете, я понял, что 32-х битный следует записать в SysWOW64. и в WinSxSwow64. _stdole2_. , а 64-х битный — в system32 WinSxS. и в WinSxSamd64. _stdole2_. И они все должны быть 18Kb.
Теперь не знаю, правильно ли это, и как это сделать, если доступ к папкам закрыт. Помогите, пожалуйста, разобраться в причинах и найти способ устранения ошибки?
Укажите отработанное время
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Note |