Microsoft Access connection to MYOB ODBC developer mode - odbc

I am running 32-bit Microsoft Access on Windows 8.1 and MYOB Premier 19.10
Have no problem setting up a 32 bit DSN and accessing MYOB in read only mode from Access.
Have installed developer key and have tested connection using TestConnection from MYOB. Test OK
When I now try to link to a MYOB table, I get a ODBC call failed - Cannot launch MYOB #20066 error. Have tried changing MYOB and Access to XP compatibility mode - still the same.
I also get the same error running on a Windows 7 machine.
Can someone please help.
gary

I am not familiar with Access, but if you are going to use a DSN to write to MYOB ODBC tables your connection string must look something like "DSN=YourMyobDsnName;ACCESS_TYPE=READ_WRITE". If Access does not allow you to add parameters to the connection string it's probably not going to work.
Another way connect to the company file is to use an ADO connection string. It would look something like "Driver={MYOAU1001};TYPE=MYOB;UID=Administrator; PWD=MyPassword;DATABASE=C:\PathToYourCompanyFile\CompanyFile.myo; HOST_EXE_PATH=C:\PathToTheMyobExecutable\MYOBP.exe;
ACCESS_TYPE=READ_WRITE;DRIVER_COMPLETION=DRIVER_NOPROMPT;KEY=AAAA...DDDD". Your paths and credentials will of course differ, as may the version of MYOB ODBC you are using. 10.01 is the most recent version in AU.
Following your comments I looked into it and now understand this capability is not available in Access. A common approach is to create a small executable that exchanges information between MYOB v19 ledgers and whatever it is you need to integrate with. Again, I am not an expert but it seems to me that you could use VBA in Access to accomplish this. VBA can use the ADO libraries.

I had to disable UAC on Windows 10 to get MYOB to launch via ODBC:
https://superuser.com/questions/83677/disabling-uac-on-windows-7

Related

Getting Windows to detect IBM AS400 provider

I am trying to get a connection to work on my machine to an AS400 database as per this link.
I have confirmed that there is no firewall blocking the machine I am working on. I have confirmed that the connection info works on a different machine with a .UDL file. I have installed the requisite C++ runtime libraries onto the machine and confirmed it has the appropriate .NET framework (it has 4.7.2). When I try to run the UDL file with the same connection information, I get "Provider cannot be found. Ensure that the provider has been installed properly." As far as I can tell I did, but it is not detecting that?
Can someone help me understand how to get it set up so that the UDL file will indicate if the connection was successful or not? I'm not really sure what is at issue at this point.
edit: I got lucky on more searching and so on further inspection, I can see that it is not in the registry editor. Could that be the issue? How would I add it there properly so that it shows up as a Data Link so that I can configure it correctly?
go here to download and install access client solutions
after installing the base package, navigate in the install folder and find the Windows_Application folder. In that folder, double click on install_acs_64.js. That will install the ODBC drivers.
run the ODBC Data Source Adminstrator app on the windows PC. Click the Add button. Select the IBM i Access ODBC Driver. Make sure to click the Server tab and set the default schema and library list.
Once the ODBC driver is installed you can test the connection by opening Excel and use the Data tab to config a connection to the IBM i database.

How to get the driver version using ODBC API without connecting to the database?

We have code to connect to various databases and we get the driver version after connecting using the SQLGetInfo() call with the parameter SQL_DRIVER_VER.
However, we want the driver version in other cases too, e.g., before connecting, and in case of an error on trying to connect. The only way to get the driver version in these cases at least on Windows seems to be via the file metadata information of the driver DLL. The drivers on other platforms do not even have this file metadata.
So, is there a way to get the driver version using ODBC when we are not connected?
Thanks,
Ed
The ODBC API doesn't support this interrogation until the connection is live.
There are tricks you can bring to bear, such as those used by the iODBC Administrator.app on OS X. You might look into that source code.

Adaptive server anywhere ASA SqlAnywhere 8.0 ODBC driver

Well, I've searched the interwebs like crazy and I am unable to find this driver.
I am trying to convert data from a client's database that was built using the ASA 8.0 engine. ASA 8 has been out of support since 2008. The software company that created this no longer supports it, so can't provide me with the drivers. I've scoured the web and can't find anything.
I managed to get the installation files for this old software called BailCredit built by a company called SentryLink. I found what I presume to be the ODBC driver in the installation files (dbodbc8.dll) and I've tried manually registering that (Windows Server 2008 R2) but didn't get anywhere. When I try to create a new datasource, the ODBC Data Source Administrator gives me an error.
My company has done hundreds of data migrations and this is the first time I've had to resort to this.
I'd post a link to the database file, but simply can't because of privacy.
Please help if you can! Thanks in Advance.
Matt
For 64 Bit operating system you need to copy the dll's to %windir%\syswow64\ so you need to change install.cmd to the following code. The rest is the same.
COPY %~dp0dbcon8.dll %windir%\syswow64\dbcon8.dll
COPY %~dp0dblgen8.dll %windir%\syswow64\dblgen8.dll
COPY %~dp0dbodbc8.dll %windir%\syswow64\dbodbc8.dll
regedit %~dp0SAS8.REG
pause
It take's me a few hours to figure it out i hope it help someone else.
This is how I finally solved it.
OPTION 1:
Get a copy of the following files from a computer with a working setup of the SQL Anywhere ODBC driver:
dbodbc8.dll
dbcon8.dll
dblgen8.dll
Create an install.cmd file with this:
COPY %~dp0dbcon8.dll %SystemRoot%\system32\dbcon8.dll
COPY %~dp0dblgen8.dll %SystemRoot%\system32\dblgen8.dll
COPY %~dp0dbodbc8.dll %SystemRoot%\system32\dbodbc8.dll
regedit %~dp0SAS8.REG
pause
Create an SAS8.REG file with this:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Adaptive Server Anywhere 8.0]
"Driver"=hex(2):25,00,57,00,49,00,4e,00,44,00,49,00,52,00,25,00,5c,00,73,00,79,\
00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,62,00,6f,00,64,00,62,00,\
63,00,38,00,2e,00,64,00,6c,00,6c,00,00,00
"Setup"=hex(2):25,00,57,00,49,00,4e,00,44,00,49,00,52,00,25,00,5c,00,73,00,79,\
00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,62,00,6f,00,64,00,62,00,\
63,00,38,00,2e,00,64,00,6c,00,6c,00,00,00
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"Adaptive Server Anywhere 8.0"="Installed"
Run install.cmd
This will work when Windows is installed in C:\WINDOWS, otherwise edit the registry entries.
OPTION 2:
If someone left a copy of the Powerbuilder CD in the client's computer, look for the folder asa801runtime and install that to get the ODBC driver working
EDIT:
Example connection string with default username/password:
Driver={Adaptive Server Anywhere 8.0};UID=dba;PWD=sql;DatabaseName=base;EngineName=gestion;CommLinks=TCPIP(HOST=GRA06:2638)
Answering my own question:
I wasn't able to find this commercially available anywhere. I happened to be able to get my hands on the installation for the software package that was using SQLAnywhere 8. By installing this, it installed the necessary drivers (but only worked on 32-bit OS).

Can not tnsping but can sqlplus connect

I have a question hopefully someone could explain it to me. I have an Oracle 11g installed properly on the server. From a workstation, I have installed the oracle client which tnsname.ora pointed to the Oracle database. I can ping to the server where oracle db was installed. I can sqlplus connect to the database and I can even connect to the database programmatically using C#. However, I can not tnsping to it. I got error Message 3511 not found when trying to do so. So my question is: in what scenario tnsping is used and how do I make tnsping works? In other word, if my tnsping does not work but I still can connect to the database programmatically using C#, what are the concerns that I should be worrying about? I am new to Oracle.. Thanks!
I have tried to do the following actions without success although they are the most popular answers to similar scenario similar to mine.
1) Set Oracle_Sid to my oracle sid
2) Set Oracle_Home to my oracle home directory
What I did to solve the issue:
1) Uninstall oracle client
2) Reinstall the oracle client with the newest version 11.2.xx.
I believe, re-installing the oracle client of earlier version would just work as well.
However, since I have to re-install the client, I might want to get the newest version.
The cause is probably improper installation at the first time as we have an disk image of pre-installed application to automatically prep a new computer.
Not able tnsping does not seem to impede with other Oracle operations (at least not that I know of).
If someone knows what is the limitation of not able to tnsping but can sqlplus connect, ping... , I would appreciate if you could share.
Either your $Oracle_Home value is not set or your default sid is not set in $ORACLE_SID
Try this :
set ORACLE_SID=mysid
export ORACLE_SID
tnsping mysid
and see what it comes back with.

JET and ODBC driver missing, can not get data from MDBs

These are MY symptoms: (XP Pro, 32bit)
-Programs that access .mdb databases (aside from Access 2007 itself) can not get any data.
-Using the Data Sources in Visual Studio 2008 to connect to an MDB shows tables, but you can not query. you receive "Unknown Error" from the Microsoft JET Database Engine
-ArcCatalog can not read a personal geodatabase (mdb), after opening the database it has no feature classes within it
-Trying to bring up the properties of a User DSN "MS Access Database" in the ODBC Data Source Administrator returns error
"The setup routines for the Microsoft Access Driver (*.mdb, *.accdb) ODBC driver could not be found. Please reinstall the driver."
I attempted to reinstall latest MDAC (by setting it to compatibility mode of windows 2000) and latest JET driver. Reinstalled XP SP3.
Also tried a lot of regsvr32 gymnastics with the dao350.dll and dao360.dll, uninstalled the dao350, etc, etc. Nothing worked.
(Yes, I'm answering my own question, to record my solution)
I should also note, in addition to above, I couldn't use the SQL Native Client driver either.
In the registry, under HKLM\SOFTWARE\ODBC the \ODBC.INI branch contains any defined connections, and the \ODBCINST.INI contains records for the installed drivers.
I checked a similar development machine, and my ODBCINST.INI was missing A LOT of entries. I blame the ccleaner application that was recently used to clean up my system of junk.
After exporting the registry branch from the other computer, and importing over my existing keys, everything worked again.
Below are some of the core records, to generate a .reg script. You should get the full list from a similar machine to yours.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI]
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb)]
"UsageCount"=dword:00000002
"Driver"="C:\\WINDOWS\\system32\\odbcjt32.dll"
"Setup"="C:\\WINDOWS\\system32\\odbcjt32.dll"
"APILevel"="1"
"ConnectFunctions"="YYN"
"DriverODBCVer"="02.50"
"FileUsage"="2"
"FileExtns"="*.mdb"
"SQLLevel"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb, *.accdb)]
"UsageCount"=dword:00000003
"Driver"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE12\\ACEODBC.DLL"
"Setup"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE12\\ACEODBC.DLL"
"APILevel"="1"
"ConnectFunctions"="YYN"
"DriverODBCVer"="02.50"
"FileUsage"="2"
"FileExtns"="*.mdb,*.accdb"
"SQLLevel"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Microsoft Excel Driver (*.xls)]
"UsageCount"=dword:00000002
"Driver"="C:\\WINDOWS\\system32\\odbcjt32.dll"
"Setup"="C:\\WINDOWS\\system32\\odexl32.dll"
"APILevel"="1"
"ConnectFunctions"="YYN"
"DriverODBCVer"="02.50"
"FileUsage"="1"
"FileExtns"="*.xls"
"SQLLevel"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)]
"UsageCount"=dword:00000003
"Driver"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE12\\ACEODBC.DLL"
"Setup"="C:\\PROGRA~1\\COMMON~1\\MICROS~1\\OFFICE12\\ACEODEXL.DLL"
"APILevel"="1"
"ConnectFunctions"="YYN"
"DriverODBCVer"="02.50"
"FileUsage"="2"
"FileExtns"="*.xls,*.xlsx, *.xlsb"
"SQLLevel"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Native Client]
"UsageCount"=dword:00000001
"Driver"="c:\\WINDOWS\\system32\\sqlncli.dll"
"Setup"="c:\\WINDOWS\\system32\\sqlncli.dll"
"APILevel"="2"
"ConnectFunctions"="YYY"
"CPTimeout"="60"
"DriverODBCVer"="09.00"
"FileUsage"="0"
"SQLLevel"="1"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Server]
"UsageCount"=dword:00000002
"Driver"="C:\\WINDOWS\\system32\\SQLSRV32.dll"
"Setup"="C:\\WINDOWS\\system32\\sqlsrv32.dll"
"SQLLevel"="1"
"FileUsage"="0"
"DriverODBCVer"="03.50"
"ConnectFunctions"="YYY"
"APILevel"="2"
"CPTimeout"="60"

Resources