Содержание
- Ошибки Run-Time ADO
- Excel VBA ERROR ODBC connection failed
- kashif.special2005
- Excel Facts
- mole999
- VBABEGINER
- kashif.special2005
- kashif.special2005
- ScottR
- kashif.special2005
- ScottR
- kashif.special2005
- ADOdb
- User Tools
- Site Tools
- Table of Contents
- Error Handling In ADOdb
- Default Behaviour
- PHP set_error_handler
- adodb-errorhandler.inc.php
- error_reporting
- Override Error Trap/Resume
- Using A Class Method
- Combining With Custom Error Handling
- Exception Trapping
- Logging Error Messages
- PEAR_ERROR
- MetaError and MetaErrMsg
- Error Messages
- Adodb error connection failed
- Asked by:
- Question
- All replies
- Adodb error connection failed
- Answered by:
- Question
- Answers
- All replies
Ошибки Run-Time ADO
Ошибки ADO передаются в программу в виде ошибок во время выполнения. Для их перехвата и обработки можно использовать механизм перехвата ошибок языка программирования. Например, в Visual Basic используйте инструкцию On Error . В Visual C++ это зависит от метода, используемого для доступа к библиотекам ADO. При использовании #import используйте блок try-catch . В противном случае программистам C++ необходимо явно получить объект ошибки, вызвав GetErrorInfo. Следующая вложенная процедура Visual Basic демонстрирует перехват ошибки ADO:
Эта процедура Form_Load события намеренно создает ошибку, пытаясь дважды открыть один и тот же объект Connection . Во второй раз при вызове метода Open обработчик ошибок активируется. В этом случае ошибка имеет тип adErrObjectOpen, поэтому обработчик ошибок отображает следующее сообщение перед возобновлением выполнения программы:
Сообщение об ошибке содержит все сведения, предоставляемые объектом Err Visual Basic, за исключением значения LastDLLError , которое здесь не применяется. Номер ошибки указывает, какая ошибка произошла. Описание полезно в тех случаях, когда вы не хотите обрабатывать ошибку самостоятельно. Вы можете просто передать его пользователю. Хотя обычно требуется использовать сообщения, настроенные для приложения, вы не можете предвидеть каждую ошибку; описание дает некоторую подсказку о том, что пошло не так. В примере кода сообщение об ошибке было сообщено объектом Connection . Здесь вы увидите тип объекта или программный идентификатор, а не имя переменной.
Объект Visual Basic Err содержит только сведения об последней ошибке. Коллекция ошибок ADO объекта Connection содержит один объект Error для каждой ошибки, вызванной последней операцией ADO. Используйте коллекцию Errors , а не объект Err для обработки нескольких ошибок. Дополнительные сведения о коллекции ошибок см. в разделе «Ошибки поставщика». Однако если нет допустимого объекта Connection , объект Err является единственным источником сведений об ошибках ADO.
Какие виды операций могут привести к ошибкам ADO? Распространенные ошибки ADO могут включать открытие объекта, например Connection или Recordset, попытки обновления данных или вызова метода или свойства, которое не поддерживается вашим поставщиком.
Ошибки OLE DB также можно передать приложению в виде ошибок во время выполнения в коллекции ошибок .
В следующем разделе содержатся дополнительные сведения об ошибках ADO.
Источник
Excel VBA ERROR ODBC connection failed
kashif.special2005
Active Member
I have a linked table in ms-access which is linked to a sql server table, and when I am trying to fetch the data in excel via VBA from ms-access linked table the error message «ODBC connection failed» showing.
Note:- I am manually successfully able to refresh ms-access linked table in ms-access, «peoplemain» is the name of linked table.
Note:- When I tried to fetch data from non linked table, it is running successfully.
Please help me to resolve this problem.
Excel Facts
mole999
Well-known Member
VBABEGINER
Well-known Member
Hi Kashif, i think after rs.open you have to give source name..
You can try this may b worked for you..
kashif.special2005
Active Member
Thank you so much for reply, however after making changes suggested by you, still not working.
kashif.special2005
Active Member
I somehow manage to retrieve the query’s result in recordset, however setting the accdb=nothing, it show the error message like below.
Microsoft Access has stopped working
Windows can try to recover your information
ScottR
Well-known Member
kashif.special2005
Active Member
Thanks for reply, actually my main database is MS-Access database, and all the required tables are in MS-Access database except 4 tables, that’s why I created linked table’s for these 4 in MS-Access so that I can create a join query from one platform, in my post for example purpose I gave linked table name ‘peoplemain’, actually those queries are not working that is taking reference of «Linked» table.
I hope I clarify your thought.
Thanks for your reply.
ScottR
Well-known Member
Well. exactly. Those connections are failing because you’re routing the query through a different «engine» to a different location with a different native syntax and (most importantly) a completely different security environment. Access is designed to handle that internally but for pass through queries? I seriously doubt it.
Query separately then join the results. Failing that create a query in Access that exposes the actual data in the underlying SQL Server tables you need and query that.
kashif.special2005
Active Member
Thanks for reply, actually it is working in excel 32-bit version, 32-bit users are successfully getting the results from linked tables from join query, but some users moved in excel 64-bit version, and 64-bit users are facing the query problem from linked table error » ODBC connection failed» .
Источник
ADOdb
Database Abstraction Layer for PHP
User Tools
Site Tools
Table of Contents
Error Handling In ADOdb
Default Behaviour
By default, errors in the execution of SQL statements are handled by the database driver that is being accessed by PHP. No errors are normally handled and it is necessary to query the last error code to see if there has been an error. This is done by use of the ‘@’ PHP value, that causes errors in the statement to be ignored.
PHP set_error_handler
Once the PHP set_error_handler is used to override the default error handling, then the ‘@’ PHP value ceases to be honored, and any SQL statement execution that fails will then produce a fatal error in the statement. We must then implement an error handling layer to trap the error and process it as the required. The first way to do that is by the use of the adodb-errorhandler.inc file.
See Also
adodb-errorhandler.inc.php
This file is designed to be copied off and customized for your own use. In it’s simplest form, it can be used to emulate the ‘@’ continue-on-error character, but it can be used to trigger or log errors, or do any kind of error handling processing required.
error_reporting
The ADOdb error handler is not dependent on PHP Error Reporting being set to a value greater than zero. However, the default behaviour of adodb-errorhandler.inc.php is to respect this setting by returning immediately from the error trap. You can change this by modifying the source of that file.
Override Error Trap/Resume
In certain circumstances, it may be necessary to trap errors differently or override the normal error handling. The current error handler, which is stored in the class variable raiseErrorFn , can be temporarily replaced. In this example, we use that functionality to ignore a database error.
Using A Class Method
Combining With Custom Error Handling
If you use adodb-errorhandler.inc.php , you can still define your own error handling to deal with non-adodb errors.
Exception Trapping
ADOdb supports exception trapping using the adodb-exceptions.inc.php file. This can be used to catch exceptions on errors as they occur. In the following example, we trap an invalid user name/password combination as an exception.
Logging Error Messages
If you want to log the error message, you can do so by defining the following optional constants:
ADODB_ERROR_LOG_TYPE is the error log message type (see error_log. In the example below, the value is set to 3, which means log to the file defined by the constant ADODB_ERROR_LOG_DEST.
The following message will be logged in the error.log file:
PEAR_ERROR
The second error handler is adodb-errorpear.inc.php. This will create a PEAR_Error derived object whenever an error occurs. The last PEAR_Error object created can be retrieved using ADODB_Pear_Error().
You can use a PEAR_Error derived class by defining the constant ADODB_PEAR_ERROR_CLASS before the adodb-errorpear.inc.php file is included. For easy debugging, you can set the default error handler in the beginning of the PHP script to PEAR_ERROR_DIE, which will cause an error message to be printed, then halt script execution:
Note that we do not explicitly return a PEAR_Error object to you when an error occurs. We return false instead. You have to call ADODB_Pear_Error() to get the last error or use the PEAR_ERROR_DIE technique.
If you need error messages that work across multiple databases, then use MetaError(), which returns a virtualized error number, based on PEAR DB’s error number system, and MetaErrMsg().
Error Messages
Error messages are outputted using the static method
By default, it sends the messages to the standard output. You can override this to perform error logging.
Источник
Adodb error connection failed
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Asked by:
Question
I’m coding a ruby script that has to write data in an existing Access Database. With following code I don’t manage to make a connection with the database:
Error: 800A0E7A — «Provider cannot be found. It may not be properly installed.»
Access 2010 32-bit and Windows 10 64-bit OS. I did find questions with the same error, but the solutions doesn’t seem to apply for me.
Based on your description, you installed Access 2010, but in your code, you used Microsoft.ACE.OLEDB.12.0. As far as I know, the provider of Access 2010 is Microsoft.ACE.OLEDB.14.0, and the Microsoft.ACE.OLEDB.12.0 is the provider of Access 2007. Do you install the AccessDatabaseEngine.exe i ndependently? I suggest you use 14.0 instead of 12.0.
In addition, I suggest you do as below to check the provider available in your machine.
1.Goto Control Panel
2.Goto Administrator Tools
3.Goto Data Sources (ODBC)
4.Click the «Drivers» tab.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey.
Источник
Adodb error connection failed
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
Just got this error in my vb2008 programs when trying to install on other computers (customers running XP and Vista). I am on a Win7 computer and are using MS Access 2007 databases. Up to now everything was just perfect — but now.
Tried to search the net for solutions, but got a lot of mumbo-jumbo I can not understand. Can somebody please give me an idea of what to do in order to supply a set-up program which works.
Kind regards
Jorgen
Answers
Yes, that is the next major step — but for the time beeing I have to use the MS Access because of all the programs I have. So for the next half year I have to live with MS Access connections.
I am looking for a solution to my VB2008 set-up problem, I cannot modify my customers computers in order to get the installation to work.
The error message:
Unable to cast COM object of type ADODB.Connection Class. This operation failed because the QueryInterface call on COM component for the interfacewith IID(00001550-0000-0010-8000-00AA006D2EA4) failed due to the following error: No such intefrace supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).»
I have Windows 7 , VS2010.
I created program VB2010 for XP users to access data from Access 2007 using ADODB.Connection.
As above said it worked fine until i had Service Pack1. When published again after SP1 user getting same error.
Your code above did not work for me.
Please help with.
I had to force my clients to install the «AccessRuntime.exe» (you can get it for free from Microsoft). If I catch the error number 3706 when opening the main form, I install the Access Runtime(which I have included in the Set-Up files). So far everything has worked out perfectly.
User has full version of Access 2007 on their pc.
Also how to add runtime version of access (along with setup files)? Can i down load from web?
I have access 2010 on my machine. I created 2007 db from remote machine.
Thank you so much for help.
This is my way of installing the MS runtime, the following is added to the form_Load event:
MsgBox(Err.Description, MsgBoxStyle.Critical, «Load Form»)
If Err.Number = 3706 Then
Dim p As New System.Diagnostics.Process
p.StartInfo.FileName = m_Path & «AccessRuntime.exe»
MsgBox( «Will install the Access Runtime in order to rectify the problem» & vbCrLf & «Try to run the program again after the installation!» , MsgBoxStyle.Information, «Error solving» )
The access runtime is included in the set-up files, and can be downloaded free of charge from microsoft.
i installed AccessRuntime 2007 C:AccessRuntime
User still get the same error
«Unable to cast COM object of type’System._ComObject’ to interface type ‘ADODB.Connection’. This operation failed because the QueryInterface call on COM component for the interfacewith IID(00001550-0000-0010-8000-00AA006D2EA4) failed due to the following error: No such intefrace supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).»
User has full versiof of Access 2007. Program is in VB2010. Installed runtime (2007) also.
Источник
I’m trying to connect VBA to sql server f. I’m using Windows server 2016 data center and sql sever management studio V17.3 . So I used following objects in my VBA reference
While I’m trying to execute below line
Dim Cn As ADODB.Connection
I’m getting error message
Run time error -2147467259(80004005)
Automation error,Unspecified error
Can you guide me to resolve this error
Pᴇʜ
55.8k9 gold badges49 silver badges72 bronze badges
asked Mar 4, 2019 at 5:41
Your ADO version is old (ADO 2.8 was included in Windows XP and Windows Server 2003). The next version is ADO 6 and «Microsoft ActiveX Data Objects 6.1 Library» is the newest.
It should be installed already on your computer, so just scroll down and mark that reference instead:
answered Mar 4, 2019 at 12:56
AsgerAsger
3,7823 gold badges12 silver badges37 bronze badges
Try this
Sub GetData()
Dim cnDump As ADODB.Connection
Set cnDump = New ADODB.Connection
' Provide the connection string.
Dim strConn As String
'Use the SQL Server OLE DB Provider.
strConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=XXXX;Data Source=XXXXXXXX;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=XXXX;Use Encryption for Data=False;Tag with column collation when possible=False;"
'Now open the connection.
cnDump.Open strConn
answered Mar 4, 2019 at 7:24
6
Gibby 154 / 154 / 10 Регистрация: 16.10.2012 Сообщений: 354 Записей в блоге: 1 |
||||
1 |
||||
28.01.2013, 17:43. Показов 3741. Ответов 14 Метки нет (Все метки)
Добрый день, уважаемые форумчане. Проблема у меня в следующем. Есть в моей программе такая функция:
И в принципе возможно. что login и pass в нее будут переданы неправильные. Функция ADODB.Connection.Open реагирует на подобное событие крайне аггрессивно: сразу останавливает мою программу с Run-time error. Отсюда вопрос: есть ли у ADODB.Connection более гуманный способ сообщить мне, что я пытаюсь подключиться с неправильными учетными данными? И если да — как его можно вызвать? Я в курсе, что существует On Error GoTo, но пользоваться им принципиально не хочу.
0 |
11464 / 3757 / 675 Регистрация: 13.02.2009 Сообщений: 11,097 |
|
29.01.2013, 01:58 |
2 |
Может попробовать между conn_str и «User Id=» разделитель поставить типа «;»?
0 |
Gibby 154 / 154 / 10 Регистрация: 16.10.2012 Сообщений: 354 Записей в блоге: 1 |
||||
29.01.2013, 10:25 [ТС] |
3 |
|||
Может попробовать между conn_str и «User Id=» разделитель поставить типа «;»? Наверное, это было бы правильно, но проблема не в этом. Если передать в функцию правильный login/pass — все работает замечательно, соединение устанавливается, по ссылке возвращается, все счастливы. А вот если учетные данные неправильные, то вместо ошибки из программы с предложением повторить ввод, пользователь получает жесткий Run-time Error и делает на меня круглые глаза. Добавлено через 1 час 3 минуты
Но я хочу сделать то же саме без On Error.
0 |
11464 / 3757 / 675 Регистрация: 13.02.2009 Сообщений: 11,097 |
|
29.01.2013, 10:27 |
4 |
ИМХО:
0 |
154 / 154 / 10 Регистрация: 16.10.2012 Сообщений: 354 Записей в блоге: 1 |
|
29.01.2013, 11:05 [ТС] |
5 |
Ну раз вопрос стоит так принципиально, то придётся обратиться к разработчикам ADODB! Я уверен, разработчики ADODB не идиоты, и они предусмотрели такую возможность. Надо только выяснить, как ее реализовать.
0 |
11464 / 3757 / 675 Регистрация: 13.02.2009 Сообщений: 11,097 |
|
29.01.2013, 11:09 |
6 |
Найдёшь — отпишись! Добавлено через 2 минуты
0 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
29.01.2013, 11:12 |
7 |
Я уверен, разработчики ADODB не идиоты пример нелогичности разработчиков. В программе Excel почти любая задача связана с определением последней строки с данными на листе. Разрабочики VBA-Excel не предусмотрели такой инструмент. Программистам приходится придумывать различные способы, как определять на листе последнюю строку с данными; таких способов, наверное штук 5 наберётся. Поэтому можно всё, что угодно ожидать от разработчиков.
1 |
Модератор 33878 / 18905 / 3981 Регистрация: 12.02.2012 Сообщений: 31,695 Записей в блоге: 13 |
|
29.01.2013, 11:23 |
8 |
Я в курсе, что существует On Error GoTo, но пользоваться им принципиально не хочу. — между тем эта возможность решает Вашу проблему элементарно… И незачем лезть вглубь ADO.
1 |
Gibby 154 / 154 / 10 Регистрация: 16.10.2012 Сообщений: 354 Записей в блоге: 1 |
||||
29.01.2013, 11:44 [ТС] |
9 |
|||
Разрабочики VBA-Excel не предусмотрели такой инструмент.
?
— между тем эта возможность решает Вашу проблему элементарно… Мне не нравится конструкция своей искусственностью. Но, судя по тому, что я прочитал, другого выхода действительно нет. Только писать Open и ловить ошибки.
0 |
15131 / 6405 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
29.01.2013, 19:38 |
10 |
Я в курсе, что существует On Error GoTo, но пользоваться им принципиально не хочу. Тогда пользуйтесь On Error Resume Next и опрашивайте объект Err.
0 |
Заблокирован |
||||
29.01.2013, 19:45 |
11 |
|||
У тебя проблема в строке соединения, подробнее о строках подключения тут: http://www.connectionstrings.com/
conn.ConnectionString = conn_str & «User Id=» & login & «; Password=» & pass & «;» У тебя не показана строка подключения! Какую версию базы ты используешь, этого нет! Ссылку выше смотри. Вот примерный код:
Тут для .DBF баз данных.
0 |
154 / 154 / 10 Регистрация: 16.10.2012 Сообщений: 354 Записей в блоге: 1 |
|
30.01.2013, 15:41 [ТС] |
12 |
Вы не обратили внимание, что строка подключения передается в функцию извне?
0 |
Заблокирован |
|
30.01.2013, 18:20 |
13 |
conn_str Gibby, Выложи проект я посмотрю исправлю.
0 |
Gibby 154 / 154 / 10 Регистрация: 16.10.2012 Сообщений: 354 Записей в блоге: 1 |
||||
30.01.2013, 18:23 [ТС] |
14 |
|||
Проект прекрасно работает, строка подключения:
В ней всё замечательно, ничего править не надо, спасибо.
0 |
5468 / 1148 / 50 Регистрация: 15.09.2012 Сообщений: 3,514 |
|
03.02.2013, 14:40 |
15 |
Gibby, здесь вы написали вроде решение проблемы, что всё нормально, всё просто, никакой проблемы нет, программисты из организации Microsoft молодцы: https://www.cyberforum.ru/post4066428.html А если есть скрытые строки, например в результате применения Автофильтра, то что вы предпримите? Допустим задача определить на Excel-листе последнюю строку с данными. Это же не означает, что нужно определить последнюю видимую строку с данными. Определение на Excel-листе последней строки с даннными очень распространённая задача.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
03.02.2013, 14:40 |
Помогаю со студенческими работами здесь Run time error 3001 ‘sSql = "create table… Run-time error 1004 Ошибка run time error 9 Ошибка run time error Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 15 |
-
03-04-2019, 06:00 AM
#1
Registered User
Run time error -2147467259(80004005) for using ADODB.Connection
I’m trying to connect VBA to sql server f. I’m using Windows server 2016 data center and sql sever management studio V17.3 . So I used following objects in my VBA reference
KiSlR.png
While I’m trying to execute below lineI’m getting error message
Run time error -2147467259(80004005)
Automation error,Unspecified error
Can you guide me to resolve this error
-
03-04-2019, 06:31 AM
#2
Forum Contributor
Re: Run time error -2147467259(80004005) for using ADODB.Connection
Check the «Microsoft Office 16.0 Access Database engine object library»
please ignore you where trying to connect to SQL, not access.
-
03-04-2019, 06:53 AM
#3
Registered User
Re: Run time error -2147467259(80004005) for using ADODB.Connection
Hi aarona, I got access to a client machine & looking like it’s Microsoft Azure server. I don’t have «Microsoft access» in the system. As per your suggestion, I have added the «Microsoft Office 16.0 Access Database engine object library» Please refer the screen shot.Object Reference.png.
But still I’m getting the same error. Here is the error message
Object Reference.png Kindly suggestLast edited by VBALearn12; 03-04-2019 at 06:56 AM.
-
03-04-2019, 09:50 PM
#4
Forum Contributor
Re: Run time error -2147467259(80004005) for using ADODB.Connection
Hi, maybe you can check your firewall, check this link
-
03-05-2019, 02:26 AM
#5
Re: Run time error -2147467259(80004005) for using ADODB.Connection
What makes you think the Dim line is causing the problem?
-
03-05-2019, 02:59 AM
#6
Registered User
Re: Run time error -2147467259(80004005) for using ADODB.Connection
Hi rorya, I ran the one line code, dim statement initially. The problem got resolved now after changing the statement
.
I’m using office 64 bit & wrote following code to pull the data from sql serverBut I got following error
Object Reference.pngCan you guide me to resolve this issue?
-
03-05-2019, 03:03 AM
#7
Re: Run time error -2147467259(80004005) for using ADODB.Connection
On which line?
You should never dim as new. Always use separate dim and set lines:
-
03-05-2019, 05:01 AM
#8
Registered User
Re: Run time error -2147467259(80004005) for using ADODB.Connection
OK rorya. I will do that. Can you please help me to resolve the execution of sql query mentioned in my previous post?
-
03-05-2019, 05:13 AM
#9
Re: Run time error -2147467259(80004005) for using ADODB.Connection
Maybe, if you answer my question about which line actually causes the error?
-
03-05-2019, 05:50 AM
#10
Registered User
Re: Run time error -2147467259(80004005) for using ADODB.Connection
Originally Posted by rorya
Maybe, if you answer my question about which line actually causes the error?
-
03-05-2019, 05:57 AM
#11
Re: Run time error -2147467259(80004005) for using ADODB.Connection
I’d guess you either don’t have a table1, don’t have permissions to access it, or you need to qualify it with an owner, like dbo.Table1
-
#1
Hello,
I have a UNION query in Access that merges two tables — OLD vehicles and NEW vehicles
I have a form in Excel that brings Vehicle data in from that UNION query.
So when a user searches a vehicle reg number it matches the reg and should return other details about the vehicle.
When I search (using the form) for a reg that originated from the OLD vehicles table, it works fine. When I search a reg that originated from the NEW vehicle table I get the error that’s in my title.
If I run the UNION query in Access and search for a reg from the NEW table it’s there, so I know it exists.
Can anyone help me understand why I get this error?
«OrderBookMerge» is my UNION query
Here is my code in excel:
VBA Code:
Private Sub CommandButton5_Click()
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim SearchX As Variant
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=C:DataQCandWarranty.accdb"
Set rs = New ADODB.Recordset
rs.Open "OrderBookMerge", cn, adOpenKeyset, adLockOptimistic, adCmdTable
SearchX = ComboBox1.Value
Debug.Print SearchX
Set rs = cn.Execute("SELECT [WoNo],[LineX],[Cust],[Vehicle],[BOM], [SpecNo], [Chassis], [VehicleUniqueID] " & "FROM [OrderBookMerge]" & "WHERE [Reg] = '" & SearchX & "'")
TextBox1.Text = rs.Fields("Vehicle")
TextBox2.Text = rs.Fields("Cust")
TextBox3.Text = rs.Fields("BOM")
TextBox4.Text = rs.Fields("SpecNo")
TextBox5.Text = rs.Fields("WoNo")
TextBox6.Text = rs.Fields("LineX")
TextBox7.Text = ComboBox1.Value
TextBox8.Text = rs.Fields("Chassis")
End Sub
Why are there 1,048,576 rows in Excel?
The Excel team increased the size of the grid in 2007. There are 2^20 rows and 2^14 columns for a total of 17 billion cells.
Legacy 456155
Guest
-
#2
This line is redundant. You can comment it out.
‘rs.Open «OrderBookMerge», cn, adOpenKeyset, adLockOptimistic, adCmdTable
Is Reg a text field? Beyond that, I don’t see any reason why you are not returning records.
Check that Reg is of the same datatype in both tables.
-
#3
Reg is a text field and the same for both.
I should have mentioned that the UNION query is actually getting the data from two other queries NOT tables. Each of those queries require data from several tables.
I plumbed in some raw data from each of those queries straight into normal tables and ran it again, this time without an error. It seems there is some issue with the way I am running those queries.
I’ll keep digging, thanks for your help, and the redundant line tip.
Legacy 456155
Guest
-
#4
Blah. I’m having internet issues and somehow double-posted.
Last edited by a moderator: Sep 7, 2020
Legacy 456155
Guest
-
#5
I should have mentioned that the UNION query is actually getting the data from two other queries NOT tables. Each of those queries require data from several tables.
Should not typically matter though, I suppose, something is not typical in the case.
If you wish, upload a barebones copy of your db and workbook here or share by some other method and I’ll take a look at it.
-
#6
It doesn’t really sound related to your error message but I would assume that union queries are not updateable. You probably should be opening this with a read only or snapshot type of recordset (and possibly it could cause the error you are describing even if it doesn’t seem to fit the problem … some errors are like that).
For that matter, adcmdTable also doesn’t seem to fit very well … that can’t be a table if its a query.
Although to be fair these things usually get ironed out by ADO and if the parameters don’t fit it tries its best (usually successfully) to give you something that works anyway…
Also if it happens that the problem is exactly what it says it is (either BOF or EOF is true) then you just need to move the recordset to the beginning of the file… (i.e., rs.MoveFirst or something like that … please don’t trust my memory though check this …) …
Also I may be reading this wrong — it seems you load the recordset, don’t use it, then load it again, then try to use it, so my comments above are all about the first time you are loading it. If you aren’t getting results the second time then you probably got no results from the search … noticing you don’t have spaces in front of FROM or WHERE, which might be a problem (not sure).
Last edited: Sep 8, 2020
-
#7
I have spotted the issue but still can’t work out why it would happen?
As explained above, I have two select queries (one for the old table and one for the new) that acquire the info I need from each table. The union query then puts the two queries together.
In one of the select queries I had criteria filtering out certain BOM numbers. Weirdly it seems that if I try and pull a record-set via ADODB from that select query it returns ZERO records, even though I see plenty of records if I run the query in Access??
I tested this by running an append query triggered through excel. It didn’t append anything! When I ran the append query in Access, success!
I deleted the criteria in the select query and guess what? It now works when I run the append query through excel. Weird….
Why was the criteria preventing ADODB from seeing the recordset?
Legacy 456155
Guest
-
#8
Did the criteria include any property only available to Access such as a form control’s value or user defined function or a parameter? What was your criteria?
-
#9
Did the criteria include any property only available to Access such as a form control’s value or user defined function or a parameter? What was your criteria?
so in the BOM field I put a simple — Like»111-*» and not like «*-4444» —
As far as I can see there is no exclusive properties or user defined functions or parameters.
what’s also strange is I have criteria on other fields that don’t seem to interfere. The only ‘difference’ I can see is I ‘renamed’ the BOM field in question;
so in the field section of the query I put : BOM: Item_0
Item_0 is the original field name from the table. Without testing, could this be the issue?
thanks for your on going help.
Legacy 456155
Guest
-
#10
Try Like»111-%» and not like «%-4444»