DataRepeaters can come in handy when you want to make a form where a user can edit/add/update records in a database. This can be a very powerfull tool in combination with custom controls (a control created out of a combination of standard controls, which correspond to fields in your database).
creating a data-bound user control will be the first step. In this tutorial I will be using only a single text-field in order to simplify things.
1. Create a new ActiveX Control project. 2. Add a text-box (Text1). 3. In order for the control to get data from the database, insert the following procedure. This is necessary for reading information from the database table:
Private Property Let TextBox(byval newText as String) Text1.Text = newText End Property
4. To insert data into the database, add the following procedure. This is necessary to add data to your database table:
Private Property Get TextBox() TextBox = Text1.Text End Property
Keep in mind that the name of this procedure must correspond to the name of the Let procedure. However, how you name these procedures is totally up to you. 5. In order to update existing records in your database table, you will need to add the following procedure:
Private Sub Text1_Change() PropertyChanged "TextBox" End Sub
Here, however, it is vital that the name of the procedure matches the name of your control. Also, the quoted text must be the same name as used with the Get and Let functions. 6. On the Tools menu click Procedure Attributes. On the Procedures Attributes dialog box, click Advanced. The Name box contains the property you want to make data- bound, and should contain ProductName. Click Property is data bound, then click Show in DataBindings collection at design time. Click the Name box and click UnitPrice. Once again, click Property is data bound, then click Show in DataBindings collection at design time. Click OK to close the dialog box. 7. Save the project to its own folder. 8. In the File menu, click Make Project1.ocx to make the control file. Note that you should name your control to something meaningfull by changing the name property of the project at design time.
Now that you have created your custom control, you will need to insert it in your Visual Basic application. Follow the following steps:
1. On the Project menu, click Components. In the Components dialog box, click the Controls tab, and check Microsoft Data Repeater Control and Microsoft ADO Data Control. Click OK to close the dialog box. 2. Draw a DataRepeater control on the form. Make the control large enough to accommodate several "rows" of the control you want to repeat. One "row" is the height of the repeated control, as determined by the size of the UserControl object's designer. 3. Set the data source of the DataRepeater, using either an ADODB control or hardcoding it in your code, to connect to your database and select (all or some) records. 4. Click the DataRepeater control to select it. On the Properties window, click DataSource, and click ADODC1 to set the data source. In the Properties window, click RepeatedControlName to display a drop-down list of all controls available on the computer. On the list, click the control you just created. Note that if you did not name it anything special, you will find it listed as Project1. The selected control will be repeated in the DataRepeater control. 5. Right-click the DataRepeater control, and then click DataRepeater Properties. On the Property Pages dialog box, click the RepeaterBindings tab. Click the PropertyName box to display a drop-down list of the data-bound properties of the repeated control. Click ProductName. Click the DataField box to display a drop-down list of available data fields from the data source. Click ProductName. Click the Add button to add the pair of property and data field to the RepeaterBindings collection.Repeat this for any remaining properties you may have created in your User Control. 6. If you like, you can also set the format of the datafields by clicking on the format tab and choosing the settings as necessary. Click OK to close the dialog box. 7. Now you are ready to test your DataRepeater control. Run your project and scroll through the datarepeater control.
Any additional functionality, such as input-validation, maneuvering, adding new records, and such, will have to be coded manually in your application or user control. The following are some examples:
adoRecordSet.AddNew =================== This adds a new record after the current position in your recordset. To add a record at the end, use the adoSet.MoveLast method before calling the .AddNew method.
adoRecordSet!Data ================== This will let you access a specific field of your record set. Note that insteat of !Data, use !FieldName according to your database table.
adoRecordSet.Update =================== This method saves any changes done in your records to your database. This only applies to the current record, so be sure to call when moving to another record.
The above are only the most important methods available. There are many more (of which there are many that I don't know as well - heck, I just learned this last week.)
I wrote this FAQ out of personal frustration, that I had a hard time learning how the DataRepeater control works and what procedures I need to use. Hopefully others won't have to travel the path of trial & error that I had to take. Please feel free to send me any suggestions, comments, corrections, or updates.