We are having an issue with Microsoft Access 2016 32-bit and the 32-bit version of the MySQL 8.0.12 ODBC driver.
Microsoft Access will not load the first 10 rows of a table if it contains one or more MEDIUMTEXT or LONGTEXT fields and two or more rows in that table have more than 1 character in those text fields.
If the table is refreshed after opened then all rows, including the problem rows, are loaded.
If the table is closed and then re-opened then the issue is back until it is refreshed.
This has been replicated by physically opening the linked table object and by opening the table via a recordset object in VBA code.
If all rows in the table have only 1 character in those text fields then the table loads fine so the problem must be caused by more than 1 character.
If only 1 row in the table has more than 1 character in those text fields then that row does not load initially until refreshed.
The issue only seems to be limited to 10 rows not being returned once 2 or more rows contain more than 1 character in a MEDIUMTEXT or LONGTEXT field.
I could not replicate this with the TINYTEXT or Varchar() data types.

I have included 2 screenshots.
MSAccessIssue.png is a screenshot of when the linked table is first opened in Access. The rows not loaded display #Deleted in all rows.
MSAccessRefreshed.png is a screenshot of the table after I hit refresh. The rows are then loaded.

I have repeated this process on one of our live production servers and captured an ODBC log file and an ODBC trace file. The 2 file are named "Working ODBC Log" and "Working ODBC Trace."

I have also captured a log/trace file on the problem server. The 2 files are named "Problem ODBC Log" and Problem ODBC Trace."


Live Server Specs
OS: Windows Server 2012 R2 64-bit
CPU: Intel Xeon E5-2687W v4 3.00GHz
RAM: 37.4 GB
Microsoft Access 2016 32-bit 
MySQL ODBC 5.3.6 32-bit 

Problem Server Specs
OS: Windows Server 2012 R2 64-bit
CPU: Intel Xeon E5-2680 v2 2.80GHz
RAM: 12 GB
Microsoft Access 2016 32-bit 
MySQL ODBC 8.0.12 32-bit 

MySQL Server Specs
OS: Windows Server 2012 R2 64-bit
CPU: Intel Xeon E5-2687W v3 3.10GHz
RAM: 16 GB
MySQL Community 5.7.17-log


I setup a new server with an updated version of Windows Server and MySQL to narrow down the issue and I experienced the same issue. That is why I believe that the issue is with the ODBC driver.

New Server Specs
OS: Windows Server 2016 Standard 64-bit
CPU: Intel Xeon E5-2687W v3 3.10GHz
RAM: 16 GB
MySQL Community 8.0.12


Steps to re-create the MySQL table that I tested with:

CREATE TABLE `texttest` (
  `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `TestText` mediumtext,
  `MySQL_Created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `MySQL_Updated` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;

INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test1');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test2');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test3');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test4');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test5');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test6');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test7');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test8');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test9');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test10');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test11');
INSERT INTO `it`.`texttest` (`TestText`) VALUES ('test12');