This post addresses 3 issues:

1. How to get DataRepeater to send changes back to the DB.
2. How to work with CheckBoxes in DataRepeater.
3. How to *see* the data that is in the DataRepeater.

1. First off, the example given in the Help system only gives half story. Build your Control by creating an ActiveX Control as described in the "Using the DataRepeater Control" topic.

However the code in your "Let" property routines should appear as follows:

Public Property Let FullName(ByVal newFullName As String)
If CanPropertyChange("FullName") Then
txtFullName.Text = newFullName
PropertyChanged "FullName"
End If
End Property
(Note: Microsoft's reference books says that 'CanPropertyChange' always returns TRUE, but you need to use it.)

Set the 'Data Field' name on all of your controls.

Set the procedure attributes for all controls: 'Tools | Procedure Attributes | [Advanced]'. Set on each of the following for all of your controls:
'Property is data bound'
'Show in data bindings collection at design time'
'Property will call CanPropertyChange before changing'
'Update immediate' (if shown)
*Note* ONE control should also have 'This property binds to Data Field' set on. A good choice is your record ID which you may want to hide.

2. Checkboxes need more help on the custom control side. Boolean data types in Microsoft's Access and I think SQL Server presume False=0, True=-1. However, checkboxes presume True=1, so you need to convert for the checkbox control to show checked boxes. I did this:

Function RtnCkbBoolean(fBool As Boolean) As Integer
If fBool = True Then
RtnCkbBoolean = 1
Else
RtnCkbBoolean = 0
End If
End Function

Your Let property routine should look like this:

Public Property Let ActiveUser(ByVal newActiveUser As Boolean)
If CanPropertyChange("ActiveUser") Then
ckbActiveUser.Value = RtnCkbBoolean(newActiveUser)
PropertyChanged "ActiveUser"
End If
End Property

Finally, we don't get a "Change" event for checkboxes, but I had success with this:

Private Sub ckbActiveUser_Click()
ActiveUser = CBool(ckbActiveUser.Value)
PropertyChanged "ActiveUser"
End Sub

*Compile your custom control .ocx, open your main project. and select your custom control and 'Microsoft DataRepeater' using 'Project | Componenents'.*

3. SEE the data that is in the DataRepeater control. I always use the 'Immediate' and the 'Local' windows to dig into the objects that Microsoft provides. However I was frustrated at every turn trying to find the changed data. This is important as I had mixed success with the ADO data control's Recordset.UpdateBatch method. Here is the trick:

Dim ctrl as object
Set ctrl = Me.[data repeater name here].RepeatedControl

Now you can reference the data values in the data repeater using (for example):

ctrl.FullName

This was important to me (control freak!) so that I could create a propery update SQL query and execute it with an ADO connection.


*******
I hope this helps, it has been working for me. If you can, get the 3 volume Visual Basic 6 reference books published by Microsoft.

FINALLY, one thing I couldn't do and would appreciate help with is raising an event in the custom control so that my main project actually "sees" the event.

BTW, I have enjoyed this forum for a couple of years. However, when I looked for solutions for my DataRepeater problems last week I found that everyone else seemed to be having the same troubles I was. Anyway I think I figured it out and am now returning the favor(s).