Frequently Asked Questions
- warning Unable to load odbcji32.dll
- How do I enter the "License Key" to unlock the Test Version?
- I want to download the latest version
- My license key is not working with the latest version
- I want to download a previous version
- warning How to define "Column Names" and "Data Types" in MS Excel
- Settings > Folder > Data Folder > Change Folder
- "Error: Cannot open ODBC" when using a target database/sheet inside a Dropbox folder
- How can I exclude the timestamp from "Order: abcd 2016-02-01"
- The program does not start any longer
- Security and SQL Injections
- Target Column Type: Date and Time
- Target Column Type: Numerical Values and Currencies
- Target Column Type: Integer
- warning MS Excel: The program says "x messages processed" but I cannot find the records in Excel
- How to transfer all program settings and the program database to a new computer
- Error Message "No Source Fields defined ... Nothing to do here"
- Error Message "No Account selected"
- Error Message "No Table selected"
- I have selected an "ODBC Connection" as "Connection Target", but no "Tables" will be shown
- How to store large text fields (>255chars) in an Excel sheet?
- warning ERROR: ExecuteSQL failed: E: String data, right truncated SQL: INSERT ...
- warning I am using a Gmail account and the program does not process any message
- How to extract and save the complete message text
- How to restart from scratch
- How can I enter one of the header fields, e.g. the sender email address to my database?
- IMAP settings for a Shared Mailbox (Office 365 Exchange Online)
- The program does not save the "Column Relationship" when using an Excel sheet as target.
- warning MS SQL Server: The program does not show any columns after selecting the table.
- Duplicate field names in the source email
- ERROR: ExecuteSQL failed! E: An INSERT INTO query cannot contain a multi-valued field.
- ERROR: ExecuteSQL failed! E: Datetime field overflow
- Can I use MS Access Database Engine 2016 instead of 2010?
- ODBC Driver (32bit) for *.accdb not found!
- ERROR: ExecuteSQL failed! E: Invalid character value for cast specification
Related Knowledge Base Articles
comment How do I enter the "License Key" to unlock the Test Version?
Click on "Settings" and "Enter License Key" after you purchased a license.
Enter your license key and click on "Validate".
The license key has the format: AIDBXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX
comment How to define "Column Names" and "Data Types" in MS Excel
Using an MS Excel sheet as "Connection Target" requires two steps:
- Define the "Column Names" (field names) by
typing in the names in the first row.
Samples: Address1, Address2, First_Name, Last_Name, Name, FirstName, LastName
Important: Don't use spaces, commas, ", ', ... in the column name!
- Add a sample row (record) and define the field
types by formatting the cell(s), e.g. data type "Date", "Integer", etc.
MS Excel auto detects the correct data type in most cases. Make sure, that you add a complete sample row including all cells.
If you don't add a sample line all data types will be defaulted to 255 chars.
Add more than 255 chars in the sample cell for large text fields.
- Make sure that the column names in the first row
of the Excel Sheet have no extra spaces at the beginning
or at the end.
Such additional characters are often added inadvertently by the user when copying and pasting.
Sample: Change "Name: " to "Name:"
The MS Excel sheet should look like this:
The first row contains the "Column Names", e.g. Name, Email, Date, Total and the second row contains a sample record with the data type definition (use the Excel format cell functions). Format each cell which should not be text, e.g. "07.11.2014" as "Date" and "199" as "Number"
If you don't add a sample row, then all columns will be treated as text with max. 255 chars!
comment Settings > Folder > Data Folder > Change Folder
Important: Changing the data folder using Folder > Data Folder > Change Folder creates a new blank program database. This equals a restart from scratch. The new program database will NOT contain data connections or information about processed messages from the previous data folder. All messages in the inbox will be processed again!
If you want keep the data connections (and information about processed messages) copy the data folder before changing the folder in the program:
- Locate the current data folder
- Exit the program (make sure it's not running in tray-mode!)
- Copy the current data folder to the new location
- Start the program and change the data folder to the new location
- Optional: delete the old data folder if you are sure you don't need it anymore
comment "Error: Cannot open ODBC" when using a target database/sheet inside a Dropbox folder
The ODBC driver cannot update the database or sheet because the Dropbox
client has locked the file during the Dropbox synchronization.
Please disable/end the Dropbox client when running the program or move the target database/sheet out of the Dropbox folder.
comment How can I exclude the timestamp from "Order: abcd 2016-02-01"
To extract "abcd" in:
Order: abcd 2016-02-01
- Source Field incl. Separator: Order:[SPACE]
- Source End Marker: [SPACE]
(type in "[SPACE]" - don't use the space button)
comment Security and SQL Injections
Arclab Inbox2DB adds values from an email into a database, which means that you cannot rely on the input data, e.g. someone could send a manipulated SQL statement. The program uses “bind parameter” to avoid SQL injections, e.g. it uses:
SQLBindParameter to bind each parameter before calling:
INSERT INTO tablename (col1,col2,col3) VALUES (?,?,?);
instead of directly calling:
INSERT INTO tablename (col1,col2,col3) VALUES ('abc', 'abc', 'abc');
This ensures, that no manipulated SQL statement could be used for SQL injections. If you access the database values using a third-party application or script, then you should do the same or filter the values before you run any SQL call containing one of the values.
Read more about SQL Injections: http://en.wikipedia.org/wiki/SQL_injection
comment Target Column Type: Date and Time
The program accepts a date in the formats:
The program accepts a time in the formats:
The program accepts a timestamp (a timestamp contains the date and time) in the formats:
- MM/DD/YYYY HH:mm
- MM/DD/YYYY HH:mm:SS
- DD.MM.YYYY HH:mm
- DD.MM.YYYY HH:mm:SS
- YYYY-MM-DD HH:mm
- YYYY-MM-DD HH:mm:SS
There must be a space between date and time!
Y = Year | M = Month | D = Day | H = Hour | m = Minute | S = Second
comment Target Column Type: Numerical Values and Currencies
1,000,000.00 = 1000000.00
1.000.000,00 = 1000000.00
1.00 = 1 (1.00)
1,00 = 1 (1.00)
1,000 = 1 (1.000) (!)
1.000 = 1 (1.000) (!)
Abc123 = 123
1.35 $ = 1.35
1,99 € = 1.99
Abc = 0
comment Target Column Type: Integer
1,000,000.00 = 1000000
1.000.000,00 = 1000000
1.00 = 1
1,00 = 1
1,000 = 1 (!)
1.000 = 1 (!)
Abc123 = 123
1.35 $ = 1 (!)
1,99 € = 1 (!)
Abc = 0
comment MS Excel: The program says "x messages processed" but I cannot find the records in Excel
This happens quite often when people have used the excel sheet before.
Please scroll down and search for the records. There are empty rows before the record.
The program adds the new records after the last "used" row/line in the excel sheet. If you have e.g. deleted the cell contents, but not the whole row in Excel, then you will get empty lines/rows. You can fix this easily by selecting the empty lines, right-click and remove the whole rows (not just the content).
comment How to transfer all program settings and the program database to a new computer
- Install Inbox2DB on the new computer and run it once.
Don't create a new data connection!
- Exit the program on the new computer.
- Start the computer on the old machine and locate the "Data-Folder"
If you cannot start Inbox2DB on the old computer:
The default location of the "Data-Folder" is: C:\Users\Public\Documents\Arclab Inbox2DB\
Please make sure, you have not changed the "Data-Folder" to a custom location:
The "last modified" date of program database file "inbox2db.accdb" should reflect your last use.
If you cannot locate the custom "Data-Folder" location: search for "inbox2db.accdb" on your computer.
- Exit the program on the old computer.
- Now copy/replace the "Data-Folder" on the new computer with the
files from the old computer.
- Run Inbox2DB on your new computer and enter your license key.
comment Error Message "No Source Fields defined ... Nothing to do here"
The program cannot synchronize the connection because you have not defined any source fields.
Please edit the "Connection" and define source fields using "Edit Relationship".
See: Edit Column Relationship: Define Source Fields and Values in the Sample Message
comment Error Message "No Account selected"
The program cannot synchronize the connection because you have not specified the source (email) account.
Please edit the "Connection" and select the source account for the connection.
See also: Data Connections - Source (Email) Account
comment Error Message "No Table selected"
The program cannot synchronize the connection because you have not specified the target database table or sheet.
Please edit the "Connection" and select the data connection target.
See also: Data Connection Target (Target Database)
comment I have selected an "ODBC Connection" as "Connection Target", but no "Tables" will be shown
Please check the following issues:
- No "Database" was selected in the ODBC connection configuration.
Edit the ODBC/DSN connection (or create a new ODBC DSN) and select a "Database" in the configuration.
See also: How to use a MySQL Database as Connection Target
- The database does not contain any tables.
Create a database table.
- The specified user has no permissions to access/view the
Check the database/table permissions of the database.
comment How to store large text fields (>255chars) in an Excel sheet?"
Insert a sample line (below the field names) to the sheet and add more than 255 chars in the sample cell for large text fields.
comment ERROR: ExecuteSQL failed: E: String data, right truncated SQL: INSERT ...
The error "ExecuteSQL failed: E: String data, right truncated..." is shown if the char or text field in the target database is too small and the program cannot insert the (long) string extracted from your email into the (small) target database field.
Solution: Edit the target database
structure and change the field length (or field type) to the needed size.
When using MS Excel: How to define "Column Names" and "Data Types" in MS Excel
comment I am using a Gmail account and the program does not process any message
Google blocks (by default) third-party mail
clients like e.g. Outlook, Thunderbird or Inbox2DB.
Google calls third-party applications "less secure".
This means you can only access the Gmail account from the Gmail web interface or using a Google application unless you allow "less secure" apps.
Enable third-party mail clients in the Gmail account settings:
https://support.google.com/accounts/answer/6010255?hl=en for details.
The page contains a link to enable "Less secure apps" in MyAccount.
- You can also enable "Less secure apps" (third-party mail clients)
"MyAccount" > "Sign-in & security" > "Connected apps & sites" > "Allow less secure apps"
Now the program should be able to access messages on the Gmail account.
If the program was unable to load the sample message
before, you probably have not yet defined any source fields:
Edit the "Data Connection", scroll down to "Data Connection Settings" and click on "Edit Relationship" to define the source fields.
The source field selection is based on a sample message. See also: Edit Column Relationship
comment How to extract and save the complete message text
First you need to ensure that the target field in your database (field type) is large enough to store the complete message text.
Important: This function stores the extracted message
text (as shown in the preview).
Please take a look at "HTML/Text Source", if you want to save the complete (unmodified) HTML source code instead.
Please take a look at "Email Source and File Attachments", if you want to save the complete EML source instead.
The program adds FULL-MESSAGE-START at the start of
the message text and FULL-MESSAGE-END at the end.
This text can be used to select the complete (extracted) message text:
Source Field incl. Separator: FULL-MESSAGE-START
Source Value End Marker: FULL-MESSAGE-END
comment How to restart from scratch
Please follow the steps below if you want to restart using a blank installation.
Warning: This will permanently delete the connection
settings, information about processed messages and all log files!
The program will re-process all messages in the email account's inbox if you re-create the same connections!
- Locate the "Data Folder" in "Settings > Folder >
The default location is: C:\Users\Public\Documents\Arclab Inbox2DB\
(If you want to use the same data connections later, use the "Export" function to export the connection settings)
- Make sure you have a copy of your license key!
Click on "Settings > Enter License Key" to view/copy the license
You need to unlock the software again after the restart.
- Exit the program completely. Make sure it's not running in the system
- Delete the complete "Data Folder", e.g. delete:
If you cannot delete the folder, the program is still running.
- Restart the program.
(import the connections and check the connection settings)
comment How can I enter one of the header fields, e.g. the sender email address to my database?
You can use all the header fields shown in the preview, e.g. use:
Source Field incl. Separator: Header-From-Address:
to select the sender "From Address" (email address).
To select e.g. the message "Subject" use:
Source Field incl. Separator: Header-Subject:
See also: Source Fields
comment IMAP settings for a Shared Mailbox (Office 365 Exchange Online)
- User Email: email@example.com
- Shared Mailbox: firstname.lastname@example.org (or other domain)
- Shared Mailbox Alias (Name): shared-mailbox-alias
Important: Create the unique "Shared Mailbox Alias" with the mailbox!
- Server Type: IMAP - SSL Encrypted
- Port: 993
- Email Address: email@example.com
- IMAP Server: outlook.office365.com
- User Name: firstname.lastname@example.org\shared-mailbox-alias (Syntax: user\shared-mailbox)
- Password: user's password
comment The program does not save the "Column Relationship" when using an Excel sheet as target.
Please check the column names in the first line of the Excel sheet and
remove extra spaces before and after the column names.
Such additional characters are often added inadvertently by the user when copying and pasting.
"Name: " > change to "Name:"
" Name:" > change to "Name:"
comment MS SQL Server: The program does not show the columns after selecting the table.
This issue is related to the used database schema.
Solution: Create the database in the default (dbo) schema.
Info: The schema is set at the database user level. It cannot be set in the program or connection string.
If you can not use the default schema "dbo" or do not want to use it:
- Edit the database user and change the default database schema from "dbo" to the new schema.
- Alternative: If you do not want to change the user's default database schema, create a new user and set the default scheme for the new DB user accordingly. Now create a new ODBC connection and explicitly select the newly created database user.
comment ERROR: ExecuteSQL failed! E: An INSERT INTO query cannot contain a multi-valued field.
This error message often occurs in connection with MS Access when the
field type "Attachment" is used.
The MS Access field type "Attachment" is a special field type that cannot be filled externally with binary data.
If you want to insert a file attachment from the email to an MS Access
database, please select the "OLE Object" field type in MS Access.
To do this, switch to the design view in MS Access and use the field type "OLE Object" instead of "Attachment".
Please check all relevant field in the source (MS Access) database table.
Please note that you have to delete the field and then add it again! If the table already contains data, you should first save it or create a new table, because when a field is deleted, all data in it is deleted !!
comment ERROR: ExecuteSQL failed! E: Datetime field overflow
One of your date/time fields contains an invalid value, e.g. MM/DD/YY
instead of MM/DD/YYYY.
Use 4 digits for the year!
Don't specify fractional seconds for a time field!
The program accepts:
- MM/DD/YYYY, DD.MM.YYYY and YYYY-MM-DD as date
- HH:mm and HH:mm:SS as time
- MM/DD/YYYY HH:mm, MM/DD/YYYY HH:mm:SS, DD.MM.YYYY HH:mm, DD.MM.YYYY HH:mm:SS, YYYY-MM-DD HH:mm and YYYY-MM-DD HH:mm:SS as datetime
comment Can I use MS Access Database Engine 2016 instead of 2010?
Inbox2DB should work with any ODBC driver.
If you have installed the 32bit version of MS Office (365) then it's not required to install any additional driver.
You can install the 2016 version as follows:
- Uninstall Microsoft Access Database Engine 2010 (32bit)
- Download Microsoft Access Database Engine 2016 (32bit) - don't download the x64 version!
- Run AccessDatabaseEngine.exe
- If you cannot install because there is a 64bit component blocking,
open a command prompt and run the installation using:
- See also: Install ODBC driver
comment ERROR: ExecuteSQL failed! E: Invalid character value for cast specification
ERROR: ExecuteSQL failed! E: Invalid character value for cast
ERROR: ExecuteSQL failed! E: Ungültiger Zeichenwert für Konvertierungsangabe (German)
This problem can occur after an MS Office (365) update of the ODBC driver.
When inserting the time into a "Time", "Date/Time" or "Timestamp" field in the database, the error is displayed, although the time was transferred correctly.
If you only insert the date in a "Date/Time" or "Timestamp" field in the database, the error does NOT occur.
According to our tests, this happens with all time fields (or fields which contain the time), date only fields are working.
We hope that MS will fix this issue soon.
As a workaround you can e.g.
- Assign the date only (intead of data and time) in the "Field Relationship"
- or change the target field type to "Text" (string) in your database table definition
You can also split up a "Date/Time" or "Timestamp" field into two fields
(one field for date and one for time).
In this case you can use the target field type "Date", "Date/Time" or "Timestamp" for date and "Text" (string) for the time.