I am creating a simple data driven application built on .net 3.5 using VS 2010 Express that is only for educational purposes. My data is stored in an Access 2007 db named test. I have one table named Customers and another table named Orders. The Customers table has PK CustomerID and this field is the FK in the Orders table. In the access db, the two tables have a one to many relationship. In the relationship definition, I clicked “Enforce Referential Integrity”, “Cascade Update Related Fields”, and “Cascade Delete Related Records”. I allowed visual studio to create my dataset for me, selected both tables, and Hierarchical Update and EnforceConstraints are both set to true. I’m also using visual studio’s drag and drop capability to add the data controls to my form. I dragged the customers table to my form using details, then I dragged the orders table to create a datagridview. In the dataset designer, I opened up the FK_Customers_Orders and chose both relation and foreign key constraint with the update rule set to cascade and the delete rule also set to cascade. My ordersbindingsource is set to datasource customersbindingsource with datamember fk_customers_orders. My form code is below. Here is the problem that I need help with. If I run the form and click the add button on the navigator, type in customer information, then go to the orders datagridview and type in order information and click the save button, I receive the following error:

You cannot add or change a record because a related record is required in table ‘customers’.

Code:
Public Class Form1

    Private Sub CustomersBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CustomersBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.CustomersBindingSource.EndEdit()
        Me.OrdersBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.TestDataSet)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'TestDataSet.Customers' table. You can move, or remove it, as needed.
        Me.CustomersTableAdapter.Fill(Me.TestDataSet.Customers)
        'TODO: This line of code loads data into the 'TestDataSet.Orders' table. You can move, or remove it, as needed.
        Me.OrdersTableAdapter.Fill(Me.TestDataSet.Orders)
    End Sub

    Private Sub OrdersBindingSource_AddingNew(ByVal sender As Object, ByVal e As System.ComponentModel.AddingNewEventArgs) Handles OrdersBindingSource.AddingNew
        Me.CustomersBindingSource.EndEdit()
    End Sub
End Class