I would suggest using parameterised queries - it would look a lot neater, and may get rid of the problem:
string QueryDB = "INSERT INTO Details (Order, ProductCode, ProductName, Tray, Index, Depth, DeviceID, IO) VALUES (@OR, @PC, @PN, @TR, @IN, @DP, @DID, @IO)";
dbCommand = new OleDbCommand(QueryDB, dbConnection);
dbCommand.Parameters.AddWithValue("@OR", item.Order);
dbCommand.Parameters.AddWithValue("@PC", item.ProductCode);
dbCommand.Parameters.AddWithValue("@PN", item.ProductName);
dbCommand.Parameters.AddWithValue("@TR", item.Tray);
dbCommand.Parameters.AddWithValue("@IN", item.Index);
dbCommand.Parameters.AddWithValue("@DP", item.Depth);
dbCommand.Parameters.AddWithValue("@DID", item.DeviceID);
dbCommand.Parameters.AddWithValue("@IO", item.IO)l
dbCommand.ExecuteNonQuery();
If it doesn't cure the problem, it may make it easier to read without the single quotes!
[edit]Oops! Should have been AddWithValue rather than Add: the later is depreciated.[/edit]