Why do I get error "Failed to open SMB channel" when using the Access ODBC driver?

The Easysoft Access ODBC driver uses the libsmbclient library, which is part of the Samba suite, to:

Without this mechanism, there is the potential for database file corruption when Windows users and Access ODBC driver users are working with the database specified by mdbfile.

To configure the driver for use with the libsmbclient, you use the smb* attributes in the driver data source.

If the "Failed to open SMB channel" error contains "file not found", check the smbpath attribute in the data source. The smbpath attribute needs to specify the SMB URL for the database file specified with mdbfile. The SMB URL has the format smb://host/share/path/mdbfilename.

In the following example, a remote Access database named Northwind.mdb is located on the Access ODBC driver machine in /mnt/myshare_mountdir. The mount command shows that /mnt/myshare_mountdir is the mount point for a share named myshare on a machine named myremotemachine.

$ grep mdbfile /etc/odbc.ini
mdbfile = /mnt/myshare_mountdir/Northwind.mdb
$ mount
//myremotemachine/myshare on /mnt/myshare_mountdir type smbfs (rw)

The SMB URL for the database file would therefore be:

smb://myremotemachine/myshare/Northwind.mdb

If the "Failed to open SMB channel" error contains "errno=13", check the smbuser and smbauth attributes in the data source.

If the database file is located on a Samba share on Linux or UNIX, the smbuser and smbauth attributes need to specify the user name and password for a Samba user (created with Samba tools such as smbpasswd) who has read access to the share. To open a database file for read-write access (readonly data source attribute set to no), the Samba user also needs write access to the share).

If the database file is located in a Windows share, the smbuser and smbauth attributes need to specify the user name and password for a Windows user who can access the share. If smbuser only has read privilege to the database file (as opposed to read and write), the readonly attribute in the data source needs to be set to yes. Otherwise, an "errno=13" error will be returned.