This article was previously published under Q207601
Moderate: Requires basic macro, coding, and interoperability skills.
This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).
For a Microsoft Access 97 and earlier version of this article, see 
187342�
                            
            (http://support.microsoft.com/kb/187342/EN-US/
                        )
        .
 
             
            ↑ Back to the top
            
         
        
            
            
                
When you view the list portion of a combo box or a list box that is based on a table, a query, a view, or a stored procedure with more than 65,536 records, you only see the first 65,536 rows.
            
            ↑ Back to the top
            
         
        
            
            
                
Microsoft Access limits the number of rows displayed in a combo box or a list box to 65,536 rows.
            
            ↑ Back to the top
            
         
        
            
            
                
Use a query, a view, or a stored procedure to restrict the number of rows that the combo box or the list box is displaying to no more than 65,536.
            
            ↑ Back to the top
            
         
        
            
            
                Steps to Reproduce Behavior
- Open the sample database Northwind.mdb.
 - Create a module and type the following line in the Declarations section if it is not already there:
 - Type the following procedure:
Sub FillTable()
   ' Creates a table that contains
   ' 70,000 records.
   Dim db As DAO.Database
   Dim tbl As DAO.TableDef
   Dim fld As DAO.Field
   Dim rs As DAO.Recordset
   Dim lng As Long
   Set db = CurrentDb
   Set tbl = db.CreateTableDef()
   tbl.Name = "LargeTable"
   Set fld = tbl.CreateField("Field1", dbLong)
   tbl.Fields.Append fld
   db.TableDefs.Append tbl
   Set rs = tbl.OpenRecordset(dbOpenDynaset)
   For lng = 1 To 70000
      rs.AddNew
      rs.Fields("Field1") = lng
      rs.Update
   Next
   rs.Close
   MsgBox "Table Created"
End Sub
					 - To run this procedure, type the following line in the Immediate window, and then press ENTER:
FillTable
When the procedure is finished, you receive a message indicating that the table was created.
 - Open a new form in Design view, and add a combo box to the form.
 - Set the RowSource property of the combo box to LargeTable.
 - Open the form in Form view.
 - Type 65536 in the combo box.
 - Click the arrow next to the combo box to view the list. Note that 65536 is the last visible row in the combo box.
 
             
            ↑ Back to the top