"key column information is insufficient or incorrect" error appears to suggest that your primary key field (whatever that may be) has either been left empty, or the contents of it is the same as a record already in your database.
Edit: on a google search, it is possible you have not included the Primary Key field in your recordset. This can also cause a similar error.
For Each ctrl As Control In Me.Controls("pnlMainPanel").Controls
If ctrl.GetType Is GetType(System.Windows.Forms.Panel) Then
For Each subCtrl As Control In ctrl.Controls
If subCtrl.GetType Is GetType(System.Windows.Forms.TextBox) Then
If subCtrl.GetType Is ...