Runtime error 3146

Ошибка 3146 Ошибка Microsoft Access 3146 ошибки могут привести к зависанию или сбою компьютера, а также к возможному заражению вредоносным ПО. Выполните следующие простые действия, чтобы исправить Runtime Errors ошибки быстро и просто.

В этой статье представлена ошибка с номером Ошибка 3146, известная как Ошибка Microsoft Access 3146, описанная как ODBC — вызов не удался.

О программе Runtime Ошибка 3146

Время выполнения Ошибка 3146 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.

Определения (Бета)

Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!

  • Доступ — НЕ ИСПОЛЬЗУЙТЕ этот тег для Microsoft Access, используйте вместо него [ms-access]
  • Вызов — Вызов действие по вызову подпрограммы кода, внешней программы или сценария в среде программирования.
  • Odbc — Open Database Connectivity ODBC предоставляет стандартный программный интерфейс для доступа к СУБД систем управления базами данных .
  • Access — Microsoft Access, также известный как Microsoft Office Access, представляет собой систему управления базами данных от Microsoft, которая обычно сочетает в себе реляционную СУБД Microsoft JetACE с графическим пользовательским интерфейсом и программным обеспечением. -инструменты разработки.
  • Доступ к Microsoft — Microsoft Access, также известный как Microsoft Office Access, представляет собой систему управления базами данных от Microsoft, которая обычно объединяет реляционное ядро ​​СУБД Microsoft JetACE с графическим пользователем. интерфейс и средства разработки программного обеспечения

Симптомы Ошибка 3146 — Ошибка Microsoft Access 3146

Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.

Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

Fix Ошибка Microsoft Access 3146 (Error Ошибка 3146)
(Только для примера)

Причины Ошибка Microsoft Access 3146 — Ошибка 3146

При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.

Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.

Методы исправления

Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.

Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.

Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.

Метод 1 — Закройте конфликтующие программы

Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.

  • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
  • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
  • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
  • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

Метод 2 — Обновите / переустановите конфликтующие программы

Использование панели управления

  • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
  • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
  • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
  • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
  • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

Использование других методов

  • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
  • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
  • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
  • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

Метод 4 — Переустановите библиотеки времени выполнения

Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

  • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
  • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
  • Загрузите последний распространяемый пакет от Microsoft и установите его.

Метод 5 — Запустить очистку диска

Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.

  • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
  • Вы также можете очистить кеш и перезагрузить компьютер.
  • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C :)
  • Щелкните «Свойства», а затем — «Очистка диска».

Метод 6 — Переустановите графический драйвер

Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:

  • Откройте диспетчер устройств и найдите драйвер видеокарты.
  • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

Метод 7 — Ошибка выполнения, связанная с IE

Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

  1. Сбросьте настройки браузера.
    • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
    • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
  2. Отключить отладку скриптов и уведомления об ошибках.
    • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
    • Установите флажок в переключателе.
    • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.

Другие языки:

How to fix Error 3146 (Microsoft Access Error 3146) — ODBC—call failed.
Wie beheben Fehler 3146 (Microsoft Access-Fehler 3146) — ODBC—Aufruf fehlgeschlagen.
Come fissare Errore 3146 (Errore di Microsoft Access 3146) — ODBC: chiamata non riuscita.
Hoe maak je Fout 3146 (Microsoft Access-fout 3146) — ODBC—aanroep mislukt.
Comment réparer Erreur 3146 (Erreur Microsoft Access 3146) — ODBC—l’appel a échoué.
어떻게 고치는 지 오류 3146 (마이크로소프트 액세스 오류 3146) — ODBC—호출에 실패했습니다.
Como corrigir o Erro 3146 (Erro 3146 do Microsoft Access) — ODBC — falha na chamada.
Hur man åtgärdar Fel 3146 (Microsoft Access-fel 3146) — ODBC-samtal misslyckades.
Jak naprawić Błąd 3146 (Błąd Microsoft Access 3146) — ODBC — wywołanie nie powiodło się.
Cómo arreglar Error 3146 (Error 3146 de Microsoft Access) — ODBC: la llamada falló.

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Последнее обновление:

24/05/22 01:21 : Пользователь Android проголосовал за то, что метод восстановления 1 работает для него.

Рекомендуемый инструмент для ремонта:

Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX06523RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

Icon Ex Номер ошибки: Ошибка 3146
Название ошибки: Microsoft Access Error 3146
Описание ошибки: ODBC—call failed.
Разработчик: Microsoft Corporation
Программное обеспечение: Microsoft Access
Относится к: Windows XP, Vista, 7, 8, 10, 11

Обзор «Microsoft Access Error 3146»

Как правило, практикующие ПК и сотрудники службы поддержки знают «Microsoft Access Error 3146» как форму «ошибки во время выполнения». Когда дело доходит до Microsoft Access, инженеры программного обеспечения используют арсенал инструментов, чтобы попытаться сорвать эти ошибки как можно лучше. К сожалению, многие ошибки могут быть пропущены, что приводит к проблемам, таким как те, с ошибкой 3146.

Некоторые люди могут столкнуться с сообщением «ODBC—call failed.» во время работы программного обеспечения. Сообщение об этой ошибке 3146 позволит разработчикам обновить свое приложение и исправить любые ошибки, которые могут вызвать его. Затем Microsoft Corporation исправит ошибки и подготовит файл обновления для загрузки. Эта ситуация происходит из-за обновления программного обеспечения Microsoft Access является одним из решений ошибок 3146 ошибок и других проблем.

Почему возникает ошибка времени выполнения 3146?

«Microsoft Access Error 3146» чаще всего может возникать при загрузке Microsoft Access. Рассмотрим распространенные причины ошибок ошибки 3146 во время выполнения:

Ошибка 3146 Crash — Ошибка 3146 является хорошо известной, которая происходит, когда неправильная строка кода компилируется в исходный код программы. Это возникает, когда Microsoft Access не реагирует на ввод должным образом или не знает, какой вывод требуется взамен.

Утечка памяти «Microsoft Access Error 3146» — если есть утечка памяти в Microsoft Access, это может привести к тому, что ОС будет выглядеть вялой. Возможные искры включают сбой освобождения, который произошел в программе, отличной от C ++, когда поврежденный код сборки неправильно выполняет бесконечный цикл.

Ошибка 3146 Logic Error — логическая ошибка возникает, когда Microsoft Access производит неправильный вывод из правильного ввода. Когда точность исходного кода Microsoft Corporation низкая, он обычно становится источником ошибок.

Как правило, такие Microsoft Corporation ошибки возникают из-за повреждённых или отсутствующих файлов Microsoft Access Error 3146, а иногда — в результате заражения вредоносным ПО в настоящем или прошлом, что оказало влияние на Microsoft Access. Как правило, решить проблему можно заменой файла Microsoft Corporation. Помимо прочего, в качестве общей меры по профилактике и очистке мы рекомендуем использовать очиститель реестра для очистки любых недопустимых записей файлов, расширений файлов Microsoft Corporation или разделов реестра, что позволит предотвратить появление связанных с ними сообщений об ошибках.

Ошибки Microsoft Access Error 3146

Эти проблемы Microsoft Access, связанные с Microsoft Access Error 3146, включают в себя:

  • «Ошибка программы Microsoft Access Error 3146. «
  • «Недопустимая программа Win32: Microsoft Access Error 3146»
  • «Извините, Microsoft Access Error 3146 столкнулся с проблемой. «
  • «Microsoft Access Error 3146 не может быть найден. «
  • «Microsoft Access Error 3146 не найден.»
  • «Ошибка запуска программы: Microsoft Access Error 3146.»
  • «Microsoft Access Error 3146 не работает. «
  • «Ошибка Microsoft Access Error 3146. «
  • «Неверный путь к программе: Microsoft Access Error 3146. «

Обычно ошибки Microsoft Access Error 3146 с Microsoft Access возникают во время запуска или завершения работы, в то время как программы, связанные с Microsoft Access Error 3146, выполняются, или редко во время последовательности обновления ОС. Важно отметить, когда возникают проблемы Microsoft Access Error 3146, так как это помогает устранять проблемы Microsoft Access (и сообщать в Microsoft Corporation).

Создатели Microsoft Access Error 3146 Трудности

Заражение вредоносными программами, недопустимые записи реестра Microsoft Access или отсутствующие или поврежденные файлы Microsoft Access Error 3146 могут создать эти ошибки Microsoft Access Error 3146.

В частности, проблемы Microsoft Access Error 3146 возникают через:

  • Недопустимая или поврежденная запись Microsoft Access Error 3146.
  • Вредоносные программы заразили Microsoft Access Error 3146, создавая повреждение.
  • Другая программа (не связанная с Microsoft Access) удалила Microsoft Access Error 3146 злонамеренно или по ошибке.
  • Другая программа, конфликтующая с Microsoft Access Error 3146 или другой общей ссылкой Microsoft Access.
  • Microsoft Access (Microsoft Access Error 3146) поврежден во время загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

  • Home
  • VBForums
  • Visual Basic
  • Office Development
  • RUNTIME ERROR ‘3146’..ODBC-Call Failed

  1. May 9th, 2005, 11:41 PM


    #1

    nagasrikanth is offline

    Thread Starter


    Hyperactive Member

    nagasrikanth's Avatar


    Lightbulb RUNTIME ERROR ‘3146’..ODBC-Call Failed

    Hi..

    Im using SQL server as my backend and MS Access as F.E..

    Im using to update around 10 to 20 records one by one by upto 2 to 3 records it was updating, later for 4th record it was saying «RUNTIME ERROR ‘3146’..ODBC-Call Failed»(at «rst.update» it was showing)
    ..at that time if i start agian from «rst.addnew» then for upto 3 to 4 it was okay..Is there any limitation in adding records.???
    FYI: Im not getting if i update 1 or 2 records..and
    one more thing that i came to know was ,If the table was a ordinary Access Table..Im not getting any error..
    One more thing was If i place some time delay using msgbox (like msgbox «Updated…» for example)that means for each record I placed a message updated..then it was working perfectly on to my surprise..

    Please help me in this regard..Please..

    Thanks & regards
    Anu…


  2. May 9th, 2005, 11:46 PM


    #2

    Re: RUNTIME ERROR ‘3146’..ODBC-Call Failed

    Sounds like your updating/adding records through Access tables/queries and not directly to the SQL tables? Alos, probably
    using a recordset to add/update when you could execute a sql INSERT statement or an sql UPDATE statement.

    Recordsets are slow. You can create a connection to SQL using ADO, DAO, ODBC to perform your actions.

    VB/Office Guru� (AKA: Gangsta Yoda)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum. Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru� Word SpellChecker�.NETVB/Office Guru� Word SpellChecker� VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24″ LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6


  3. May 9th, 2005, 11:59 PM


    #3

    nagasrikanth is offline

    Thread Starter


    Hyperactive Member

    nagasrikanth's Avatar


    Lightbulb Re: RUNTIME ERROR ‘3146’..ODBC-Call Failed

    Hi Rob,
    Thanx for u r quick reply..
    But Im using SQL tables it self,(Sql tables are linked in my database..)
    and whenever i want to insert new records im opening a connection using
    set rst=currentdb.openrecordset(sql string…….)
    and im inserting a new row by using AddNew and Update methods (not by using sql Queries)

    What i have to do speed up my recordset..Please help..

    Thanx & Regards
    Srikanth


  4. May 10th, 2005, 12:09 AM


    #4

    Re: RUNTIME ERROR ‘3146’..ODBC-Call Failed

    The slowness is from Access having to connect its linked ODBC connection to your SQL db/table via a rs. You could
    execute a statement like so.

    VB Code:

    1. Dim lRecs As Long

    2.     Access.CurrentDb.Connection.Execute "INSERT INTO Table1 VALUES('Testing')", lRecs

    3.     MsgBox lRecs & " records added", vbOKOnly + vbInformation

    VB/Office Guru� (AKA: Gangsta Yoda)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum. Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru� Word SpellChecker�.NETVB/Office Guru� Word SpellChecker� VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24″ LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6


  • Home
  • VBForums
  • Visual Basic
  • Office Development
  • RUNTIME ERROR ‘3146’..ODBC-Call Failed


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
  • BB code is On
  • Smilies are On
  • [IMG] code is On
  • [VIDEO] code is On
  • HTML code is Off

Forum Rules


Click Here to Expand Forum to Full Width

  • Remove From My Forums
  • Question

  • Hi,

    I didn’t have much experience in Access programming. I am giving support for existing system. Please let me know if my question is not clear. We are facing new problem in access program ‘Run time error 3146 ODBC call failed’ for certain group of users.

    When program department trying to view report in word doc in the access program, they are getting ‘Run time error 3146, ODBS call failed’ error at  ‘DoCmd.OutputTo’ command. But while using our department machines we didnt receive any
    error. I have checked in their machine they do have permission on the downloaded word file path and DB access also. They could delete and create new word file in the same path. But when using in access they are seeing run time error. They have been using
    these reports for long time, they didnt receive any error message. By sudden they couldnt use. I am not sure how to debug.

    FYI

    In the same folder some other work doc file are there. But they are not receiving error for other word files to view.

    If they try to open report in the word doc that got deleted from the folder.

    Since i am not getting the error for every workaround i need to use their system. Please guide me how to debug/approach this problem correctly.

    Thanks in Advance.

Answers

  • Find report rptProduct in DatabaseWindow/NavigationPane (depends of Access version)

    and try open in prev view.

    If you get error ODBC, open in design view and chacke property RecordSource 


    Michał

    • Marked as answer by

      Wednesday, January 22, 2014 6:41 PM

  • #1

Hi,

Suddenly I facing ODBC call failed issue to store record in a linked table… I had previously stored 3-4 records and there were no issue but this error occurred today. My net connection is also fine MemoID is autonumber field….

Could you please help me.

Code:

Dim db As DAO.Database

Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Select * from T_Memos Where MemoREf='" & MemoRef & "'", dbOpenDynaset, dbSeeChanges)

If rst.EOF = True And rst.BOF = True Then
rst.AddNew

'rst!MemoID = Me.MemoID
rst!MemoRef = Me.MemoRef
rst!MemoDate = Me.MemoDate
rst!SalutationE = Me.SalutationE
rst!SalutationA = Me.SalutationA
rst!SubjectLineE = Me.SubjectLineE
rst!SubjectLineA = Me.SubjectLineA
rst!MemoTypeE = Me.MemoTypeE
rst!MemoTypeA = Me.MemoTypeA
rst!Para1E = Me.Para1E
rst!Para1A = Me.Para1A
rst!Para2E = Me.Para2E
rst!Para2A = Me.Para2A
rst!ShukranE = Me.ShukranE
rst!ShukranA = Me.ShukranA
rst!Authority1 = Me.Authority1
rst!Authority2 = Me.Authority2
rst!NB_E = Me.NB_E
rst!NB_A = Me.NB_A
rst!CNo = Nz(Me.CNo, 0)
rst!CName = Me.CName
rst!FromDate = Me.FromDate
rst!ToDate = Me.ToDate
rst!FromDateA = Me.FromDateA
rst!ToDateA = Me.ToDateA
rst!OccasionType = Me.OccasionType
rst!OccasionTypeA = Me.OccasionTypeA

    rst.Update
    rst.Close
    Set rst = Nothing

End If

  • #2

If it’s a linked table, why do you need recordset to create record? Why not a bound form?

  • #3

If it’s a linked table, why do you need recordset to create record? Why not a bound form?

Due to lots of table and records, I am controlling to fetch records to keep the form light weight….

  • #4

Solved : I noticed that Hijri date was not storing in datetime format so I simply changed to nvarchar() and it worked.

Thanks…..:)

  • Home
  • Forum
  • Access Forums
  • Access
  • Run-time error 3146 in Access 2010 Runtime version

  1. Run-time error 3146 in Access 2010 Runtime version

    Hi, I have created an Access database where all of the queries, forms, macros and VBA codes work; however, when we try to run this in the client’s environment using Access 2010 Runtime, we are getting a run-time error 3146. We are assuming that it is related to the linking to their database, but cannot figure out the issue. When we test the linking in their environment using Excel, it works fine, but it won’t work using Access 2010 Runtime. Does anyone have any suggestions? Thank you!


  2. What is the exact error message? A number of threads on 3146 error. Search forum and should see at least 9.


  3. I don’t have access to the client’s system at this time; therefore, I can’t get an answer to this question yet. I will let you know when I do. Thank you for your time.


  4. We are assuming that it is related to the linking to their database, but cannot figure out the issue.

    What are you linking to and how? Can you provide an example? Be sure to hide sensitive data within connection strings.


  5. We are linking to tables in the client’s payroll system through system DSN.


  6. It is difficult to say without additional info. Maybe this is helpful …
    https://www.accessforums.net/sql-ser…ere-52914.html


Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 1

    Last Post: 06-25-2015, 08:14 AM

  2. Replies: 12

    Last Post: 04-17-2015, 11:41 AM

  3. Replies: 3

    Last Post: 10-15-2013, 09:29 AM

  4. Replies: 4

    Last Post: 08-10-2012, 11:48 AM

  5. Replies: 2

    Last Post: 12-23-2010, 09:11 AM


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
  • BB code is On
  • Smilies are On
  • [IMG] code is On
  • [VIDEO] code is On
  • HTML code is Off

Forum Rules

hi,

personally I’d do the task completely server side without «moving» 60k x 2 rows back and forth «manually» via 60k OpenRecordSet calls..

this can be simply performed via a JOIN operation which INSERTs missing rows in the target table, similarly to

SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t1 (
 Id int NOT NULL PRIMARY KEY,
 Data1 varchar(10) NOT NULL,
 Data2 datetime NOT NULL,
 Data3 decimal(18,4) NOT NULL
 );
GO
CREATE TABLE dbo.t2 (
 Id int NOT NULL PRIMARY KEY,
 Data1 varchar(10) NOT NULL,
 Data2 datetime NOT NULL,
 Data3 decimal(18,4) NOT NULL
 );
GO
INSERT INTO dbo.t1
 VALUES (1, ‘a’, ‘2010-01-01’, 1.23),
   (2, ‘b’, ‘2010-01-01’, 1.24),
   (3, ‘c’, ‘2010-01-02’, 1.23),
   (4, ‘d’, ‘2010-02-01’, 1.23);

INSERT INTO dbo.t2
 VALUES (1, ‘a’, ‘2010-01-01’, 1.23),
   (3, ‘c’, ‘2010-01-02’, 1.23);
GO
INSERT INTO dbo.t2
 SELECT t1.Id, t1.Data1, t1.Data2, t1.Data3
  FROM dbo.t1 t1
   LEFT JOIN dbo.t2 t2 ON t2.Id = t1.Id
  WHERE t2.Id IS NULL
 ORDER BY t1.Id;

SELECT *
 FROM dbo.t1 t1
 JOIN dbo.t2 t2 ON t2.Id = t1.Id;

GO
DROP TABLE dbo.t1, dbo.t2;

problems are if your comparison is more than a «simple» ID comparison… think if you have to compare table1{Id=1, Data1=’A’, …} with table2{Id=1, Data1=’B’}… in this case you have to first insert missing rows and then update different rows.. this is
ok, but if you are on SQL Server 2008 you can achieve the complete result via the MERGE statement, which result in the UPSERT well know action, similarly to

SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t1 (
 Id int NOT NULL PRIMARY KEY,
 Data1 varchar(10) NOT NULL,
 Data2 datetime NOT NULL,
 Data3 decimal(18,4) NOT NULL
 );
GO
CREATE TABLE dbo.t2 (
 Id int NOT NULL PRIMARY KEY,
 Data1 varchar(10) NOT NULL,
 Data2 datetime NOT NULL,
 Data3 decimal(18,4) NOT NULL
 );
GO
INSERT INTO dbo.t1
 VALUES (1, ‘a’, ‘2010-01-01’, 1.23),
   (2, ‘b’, ‘2010-01-01’, 1.24),
   (3, ‘c’, ‘2010-01-02’, 1.23),
   (4, ‘d’, ‘2010-02-01’, 1.23);

INSERT INTO dbo.t2
 VALUES (1, ‘a’, ‘2010-01-01’, 1.23),
   (3, ‘c’, ‘2010-01-02’, 1.23);
GO
INSERT INTO dbo.t2
 SELECT t1.Id, t1.Data1, t1.Data2, t1.Data3
  FROM dbo.t1 t1
   LEFT JOIN dbo.t2 t2 ON t2.Id = t1.Id
  WHERE t2.Id IS NULL
 ORDER BY t1.Id;

SELECT *
 FROM dbo.t1 t1
 JOIN dbo.t2 t2 ON t2.Id = t1.Id;
GO
UPDATE dbo.t1
 SET Data1 = ‘z’
 WHERE Id = 1;

UPDATE dbo.t1
 SET Data1 = ‘y’
 WHERE Id = 2;

UPDATE dbo.t1
 SET Data1 = ‘x’
 WHERE Id = 3;

PRINT ‘show diferences..’ 
SELECT *
 FROM dbo.t1 t1
 JOIN dbo.t2 t2 ON t2.Id = t1.Id;

PRINT ‘updating joined rows..’;
UPDATE dbo.t2
 SET Data1 = t1.Data1,
  Data2 = t1.Data2,
  Data3 = t1.Data3
 FROM dbo.t2 t2
  JOIN dbo.t1 t1 ON t1.Id = t2.Id

SELECT *
 FROM dbo.t1 t1
 JOIN dbo.t2 t2 ON t2.Id = t1.Id;
GO
TRUNCATE TABLE dbo.t1;
TRUNCATE TABLE dbo.t2;
GO
INSERT INTO dbo.t1
 VALUES (1, ‘a’, ‘2010-01-01’, 1.23),
   (2, ‘b’, ‘2010-01-01’, 1.24),
   (3, ‘c’, ‘2010-01-02’, 1.23),
   (4, ‘d’, ‘2010-02-01’, 1.23);

INSERT INTO dbo.t2
 VALUES (1, ‘z’, ‘2010-01-01’, 1.23),
   (3, ‘x’, ‘2010-01-02’, 1.23);

GO
MERGE INTO dbo.t2 AS Target
USING (SELECT Id, Data1, Data2, Data3
  FROM dbo.t1)
       AS Source
ON Target.Id = Source.Id
WHEN MATCHED THEN
 UPDATE SET Data1 = Source.Data1, Data2 = Source.Data2, Data3 = Source.Data3
WHEN NOT MATCHED BY TARGET THEN
 INSERT (Id, Data1, Data2, Data3) VALUES (Source.Id, Source.Data1, Source.Data2, Source.Data3);

SELECT *
 FROM dbo.t1 t1
 LEFT JOIN dbo.t2 t2 ON t2.Id = t1.Id;
GO
DROP TABLE dbo.t1, dbo.t2;

again… this is the way I’d go… straight to the server :)

BTW… «DAO.Database» ??? old fashioned, isn’t it? :)

regards


http://www.asql.biz — DbaMgr2k — DbaMgr and further SQL Tools http://www.hotelsole.com/ — http://www.hotelsolericcione.de

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Runtime error 53 file not found macpdfm
  • Runtime error 216 at 0040824e
  • Runtime error 52 bad filename or number
  • Runtime error 5174 excel
  • Runtime error 5151

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии