Перейти к основному контенту
Поддержка
Поддержка
Войти
Войти с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Select a different account.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой вы хотите войти.
Проблемы
Ошибка 3704 не разрешается, когда объект закрыт «» queing Catalog Failed «(каталог) ошибки возникают при формировании отчета.
Причина
Поврежденный файл FRxque32. mdb.
Решение
Выйдите из сервера отчетов FRx. Удалите файл FRxque32. mdb, расположенный в каталоге Sysdata. Снова откройте сервер отчетов. Этот actionwill повторно создает файл FRxQue32. mdb на основе шаблона, который позволит вам отправлять отчеты в очередь без ошибок.
Ссылки
Нужна дополнительная помощь?
Совершенствование навыков
Перейти к обучению >
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт >
Были ли сведения полезными?
(Чем больше вы сообщите нам, тем больше вероятность, что мы вам поможем.)
(Чем больше вы сообщите нам, тем больше вероятность, что мы вам поможем.)
Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
Моя проблема решена
Очистить инструкции
Понятно
Без профессиональной лексики
Полезные изображения
Качество перевода
Не соответствует интерфейсу
Неверные инструкции
Слишком техническая информация
Недостаточно информации
Недостаточно изображений
Качество перевода
Добавите что-нибудь? Это необязательно
Спасибо за ваш отзыв!
×
В этой статье представлена ошибка с номером Ошибка 3704, известная как Вы попытались открыть базу данных, которая уже открыта пользователем ‘| 2’ на компьютере ‘| 1’, описанная как Вы попытались открыть базу данных, которая уже открыта пользователем «| 2» на компьютере «| 1». Повторите попытку, когда база данных станет доступной.
О программе Runtime Ошибка 3704
Время выполнения Ошибка 3704 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- База данных . База данных — это организованный набор данных.
Симптомы Ошибка 3704 — Вы попытались открыть базу данных, которая уже открыта пользователем ‘| 2’ на компьютере ‘| 1’
Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.
Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.
(Только для примера)
Причины Вы попытались открыть базу данных, которая уже открыта пользователем ‘| 2’ на компьютере ‘| 1’ — Ошибка 3704
При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.
Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.
Методы исправления
Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.
Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.
Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.
Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.
Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.
Метод 1 — Закройте конфликтующие программы
Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.
- Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
- Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
- Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
- Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.
Метод 2 — Обновите / переустановите конфликтующие программы
Использование панели управления
- В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
- В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
- Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
- В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
- Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.
Использование других методов
- В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
- В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
- Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
- Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.
Метод 4 — Переустановите библиотеки времени выполнения
Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.
- Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
- Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
- Загрузите последний распространяемый пакет от Microsoft и установите его.
Метод 5 — Запустить очистку диска
Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.
- Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
- Вы также можете очистить кеш и перезагрузить компьютер.
- Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C
- Щелкните «Свойства», а затем — «Очистка диска».
Метод 6 — Переустановите графический драйвер
Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:
- Откройте диспетчер устройств и найдите драйвер видеокарты.
- Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.
Метод 7 — Ошибка выполнения, связанная с IE
Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:
- Сбросьте настройки браузера.
- В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
- Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
- Отключить отладку скриптов и уведомления об ошибках.
- В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
- Установите флажок в переключателе.
- Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.
Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.
Другие языки:
How to fix Error 3704 (You attempted to open a database that is already opened by user ‘|2’ on machine ‘|1’) — You attempted to open a database that is already opened by user ‘|2’ on machine ‘|1’. Try again when the database is available.
Wie beheben Fehler 3704 (Sie haben versucht, eine Datenbank zu öffnen, die bereits von Benutzer ‘|2’ auf Computer ‘|1’ geöffnet wurde.) — Sie haben versucht, eine Datenbank zu öffnen, die bereits von Benutzer ‘|2’ auf Rechner ‘|1’ geöffnet wurde. Versuchen Sie es erneut, wenn die Datenbank verfügbar ist.
Come fissare Errore 3704 (Hai tentato di aprire un database già aperto dall’utente ‘|2’ sulla macchina ‘|1’) — Hai tentato di aprire un database già aperto dall’utente ‘|2’ sulla macchina ‘|1’. Riprova quando il database è disponibile.
Hoe maak je Fout 3704 (U heeft geprobeerd een database te openen die al is geopend door gebruiker ‘|2’ op computer ‘|1’) — U hebt geprobeerd een database te openen die al is geopend door gebruiker ‘|2’ op computer ‘|1’. Probeer het opnieuw wanneer de database beschikbaar is.
Comment réparer Erreur 3704 (Vous avez tenté d’ouvrir une base de données déjà ouverte par l’utilisateur ‘|2’ sur la machine ‘|1’) — Vous avez tenté d’ouvrir une base de données déjà ouverte par l’utilisateur ‘|2’ sur la machine ‘|1’. Réessayez lorsque la base de données est disponible.
어떻게 고치는 지 오류 3704 (시스템 ‘|1’에서 사용자 ‘|2’가 이미 연 데이터베이스를 열려고 시도했습니다.) — 시스템 ‘|1’에서 사용자 ‘|2’가 이미 연 데이터베이스를 열려고 시도했습니다. 데이터베이스를 사용할 수 있을 때 다시 시도하십시오.
Como corrigir o Erro 3704 (Você tentou abrir um banco de dados que já foi aberto pelo usuário ‘| 2’ na máquina ‘| 1’) — Você tentou abrir um banco de dados que já foi aberto pelo usuário ‘| 2’ na máquina ‘| 1’. Tente novamente quando o banco de dados estiver disponível.
Hur man åtgärdar Fel 3704 (Du försökte öppna en databas som redan är öppnad av användaren ‘|2’ på maskinen ‘|1’) — Du försökte öppna en databas som redan har öppnats av användaren ‘| 2’ på maskinen ‘| 1’. Försök igen när databasen är tillgänglig.
Jak naprawić Błąd 3704 (Próbowałeś otworzyć bazę danych, która jest już otwarta przez użytkownika „|2” na komputerze „|1”) — Próbowałeś otworzyć bazę danych, która jest już otwarta przez użytkownika ‘|2’ na komputerze ‘|1’. Spróbuj ponownie, gdy baza danych będzie dostępna.
Cómo arreglar Error de 3704 (Intentó abrir una base de datos que ya está abierta por el usuario ‘| 2’ en la máquina ‘| 1’) — Intentó abrir una base de datos que ya estaba abierta por el usuario ‘| 2’ en la máquina ‘| 1’. Vuelva a intentarlo cuando la base de datos esté disponible.
Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.
Следуйте за нами:
Последнее обновление:
29/11/22 02:33 : Пользователь Windows 10 проголосовал за то, что метод восстановления 3 работает для него.
Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.
ШАГ 1:
Нажмите здесь, чтобы скачать и установите средство восстановления Windows.
ШАГ 2:
Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.
ШАГ 3:
Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.
СКАЧАТЬ СЕЙЧАС
Совместимость
Требования
1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.
ID статьи: ACX013620RU
Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000
Совет по увеличению скорости #47
Оптимизируйте Windows с помощью средства устранения неполадок производительности:
Оптимизируйте свой компьютер с Windows 7 и Windows 10 с помощью средства устранения неполадок производительности для повышения скорости работы. Этот инструмент может находить проблемы и предлагать действенные решения по их устранению. Просто введите «средство устранения неполадок» в поле поиска на панели управления.
Нажмите здесь, чтобы узнать о другом способе ускорения работы ПК под управлением Windows
1 / 1 / 0 Регистрация: 29.04.2015 Сообщений: 88 |
|
1 |
|
03.12.2015, 09:14. Показов 9093. Ответов 9
Такая ситуация — происходит коннект к внешней базе через коннект отправляется sql запрос, объект rs =New ADODB.Recordset, затем, при методе «Do while not rs.EOF» возникает ошибка 3704, но если перед циклом поставить задержку в секунду то, запрос нормально пробегается, такое ощущение, что не хватает времени для открытия запроса. Но ставить задержку в секунду как-то накладно, если необходимо 1000 раз обращаться, то это уже 1000 секунд задержки просто так. Как можно победить данную ошибку?
__________________
0 |
7262 / 4465 / 287 Регистрация: 12.08.2011 Сообщений: 13,448 |
|
03.12.2015, 10:05 |
2 |
А если ошибку игнорировать, всё работает как надо?
0 |
1 / 1 / 0 Регистрация: 29.04.2015 Сообщений: 88 |
|
03.12.2015, 10:06 [ТС] |
3 |
да, но при этом нужно идти в Debug и продолжить выполнение, т.е. происходит задержка, я поставил перед циклом задержку на 0.6 секунд и вроде не вылетает, но это костыль какой-то получается
0 |
mobile 26772 / 14451 / 3192 Регистрация: 28.04.2012 Сообщений: 15,782 |
||||
03.12.2015, 10:08 |
4 |
|||
Попробуйте использовать DoEvents
1 |
Модератор 11267 / 4597 / 740 Регистрация: 07.08.2010 Сообщений: 13,182 Записей в блоге: 4 |
|
03.12.2015, 10:20 |
5 |
не помешает вставить счетчик повторов, иначе можно зациклиться
0 |
Silmaril 1 / 1 / 0 Регистрация: 29.04.2015 Сообщений: 88 |
||||
03.12.2015, 10:43 [ТС] |
6 |
|||
Спасибо! Получается, но немного изменил:
0 |
shanemac51 Модератор 11267 / 4597 / 740 Регистрация: 07.08.2010 Сообщений: 13,182 Записей в блоге: 4 |
||||
03.12.2015, 10:54 |
7 |
|||
Решение
1 |
1 / 1 / 0 Регистрация: 29.04.2015 Сообщений: 88 |
|
03.12.2015, 10:59 [ТС] |
8 |
Спасибо! Точно! Нужная вещь о количестве повторов, т.к. я не задумался, что связи может не быть
0 |
шапоклякистка 8-го дня 3672 / 2232 / 391 Регистрация: 26.06.2015 Сообщений: 4,647 Записей в блоге: 1 |
|
03.12.2015, 11:00 |
9 |
Помнится, читала я в какой-то из рекомендованый mobile книг, что для отлавливания такой ситуации есть свойство .State у ADODB.Recordset — оно меняется, когда рекордсет уже открыт и готов к работе. Честно говорю, что сама еще не пробовала (повода не было), просто отложилось в памяти.
1 |
1 / 1 / 0 Регистрация: 29.04.2015 Сообщений: 88 |
|
03.12.2015, 11:09 [ТС] |
10 |
Да, тоже имеет место быть, когда State = 1 то всё готово, но State в условии существенно увеличивает время обработки
0 |
-
Aug 1st, 2017, 11:36 AM
#1
Thread Starter
Lively Member
[RESOLVED] Run-Time Error 3704
Hello friends! Is there any way where I can handle ‘Run-Time error 3704’ error in the application-level specifically in the record set? Something like this:
Code:
If Err.Number = "3704" Then MsgBox "No file found!", vbOKOnly + vbCritical, App.ProductName End If
I am googling but didn’t find except the following one and it doesn’t help much:
Code:
If rs.State = adStateOpen Then rs.Close
-
Aug 1st, 2017, 12:42 PM
#2
Re: Run-Time Error 3704
What is the actual line of code that throws the error?
-
Aug 1st, 2017, 04:11 PM
#3
Re: Run-Time Error 3704
I think you should be testing the recordset’s State property. 3704 is because your recordset is closed, correct? Search this forum for key words: Error 3704. You will find several threads related to that error.
Edited: Why do you assume that error 3704 is related to a file not existing? The error seems to indicate your recordset was not opened.
Last edited by LaVolpe; Aug 1st, 2017 at 04:43 PM.
-
Aug 3rd, 2017, 10:48 AM
#4
Thread Starter
Lively Member
Re: Run-Time Error 3704
Finally resolved @LaVolpe. I was trying to open an excel file that doesn’t exist or doesn’t have any data in it. The following line worked perfectly to get rid of the error:
Code:
If rs.State = adStateOpen Then rs.Close
11-24-2008, 11:49 AM
#1
Excel and ADO Run-Time Error 3704
Hi all.
I’m trying to run a stored procedure on SQL server from Excel, something which I have done many times before. In this instance however, when I try to copy the contents of the recordset to the target range (using the Range.CopyFromRecordSet method) I get the following error message:
Run-time error ‘3704’:
Operation is not allowed when the object is closed.
Now, I am fairly certain that the problem is that the problem is that the stored procedure uses a couple of SELECT … INTO statements to create some temporary tables which the main SELECT is then run on the joined temporary tables, and therefore returns more than one recordset as each SELECT … INTO staement generates a recordset (I think!).
From reading through the first couple of hits on Google, it would appear that I need to loop through the different recordsets but I am not sure how to do this.
Is anyone able to shed some light on this problem?
Thanks
[vba]Sub ADO(sRef As String, sWS As String, sServer As String, sDatabase As String, sUsername As String, sPassword As String)
Dim rg As Range
Dim rst As ADODB.Recordset
Dim sConn As Variant
Dim sSQL As Variant
Dim i As Long‘Set target range
Set rg = Worksheets(sWS).Range(«A2»)
‘Create a new recordset object
Set rst = New ADODB.Recordset‘Connection Details
sConn = «Provider=SQLOLEDB;Server=» & sServer & «;Database=» & sDatabase & «;User ID=» & sUsername & _
«;Password=» & sPassword & «;Trusted_Connection=False»sSQL = «EXEC sp_ADOExport @REF = ‘» & sRef & «‘»
‘Open and query recordset
rst.Open sSQL, sConn‘Set column headers
For i = 0 To rst.Fields.Count — 1
Worksheets(sWS).Cells(1, i + 1).Value = rst.Fields(i).Name
Next i‘Copy recordset to target range
rg.CopyFromRecordset rst‘Close the recordset
rst.Close‘Clean Up
Set rst = Nothing
Set rg = Nothing[/vba]
Edit: Out of interest, here is the type of stored procedure that the sub is calling…[vba]
CREATE sp_ADOExport
@REF As VarChar(50)
As
SELECT column1, column2
FROM table1
INTO #temp1
WHERE column1 = @REFSELECT column3, column4
FROM table2
INTO #temp2
WHERE column3 = @REFSELECT *
FROM table3
INNER JOIN #temp1
ON table3.column5 = #temp1.column1
INNER JOIN #temp2
ON #temp1.column1 = #temp2.column3
[/vba]
Last edited by DRJD; 11-24-2008 at 11:59 AM.