DataRepeater (Control)

El control DataRepeater funciona como un contenedor desplazable de controles de usuario enlazados a datos. Cada control se muestra en su propia fila como un control "repetido", de forma que el usuario puede ver varios controles enlazados a datos a la vez.

Sintaxis

DataRepeater

Comentarios

Para usar el control DataRepeater, debe crear primero un control de usuario enlazado a datos y compilarlo en un archivo .ocx. Después de crear el control de usuario, es necesario efectuar los siguientes pasos básicos:

  1. Agregue al proyecto el control de usuario mediante el cuadro de diálogo Componentes. Esto garantiza que el Asistente de empaquetado y distribución de Visual Basic incluirá los archivos apropiados. Asimismo, permite tener acceso a las propiedades públicas, los eventos y los métodos del control.

  2. En la ventana Propiedades, haga clic en RepeatedControlName y seleccione el control de usuario en la lista desplegable.

  3. Agregue al formulario un origen de datos, como el control de datos de ADO, y conéctelo con un proveedor de datos.

  4. Establezca la propiedad DataSource del control DataRepeater en el origen de datos.

  5. Haga clic con el botón secundario del mouse (ratón) en el control DataRepeater y, a continuación, haga clic en Propiedades del DataRepeater.

  6. Haga clic en la ficha RepeaterBindings.

  7. Establezca la propiedad PropertyName con un objeto DataField apropiado y haga clic en el botón Agregar.

El control DataRepeater ahorra los recursos del equipo al mostrar solamente un único control de usuario (el control activo) a la vez. Los demás controles son simples imágenes que no mantienen una conexión individual con el origen de datos, como ocurriría si el formulario contuviera varios controles de usuario.

Nota para la distribución Cuando cree o distribuya aplicaciones que empleen el control DataRepeater, debe instalar MSDatRep.ocx en el subdirectorio System o System32 de Microsoft Windows del equipo del cliente. El kit de instalación incluido con Visual Basic ofrece herramientas que le ayudan a escribir programas para instalar correctamente sus aplicaciones.


No se encuentra el tema

No se halló el tema correspondiente. A continuación enumeramos algunas posibles razones y sus soluciones:

  • El archivo (.chm) que contiene el tema de destino no se encuentra en la ubicación esperada.

    Solución: vuelva a ejecutar la instalación de la Biblioteca MSDN.

  • El archivo (.chm) que contiene el tema actual o el de destino no está actualizado y el vínculo ya no es válido.

    Solución: instale la última versión de la Biblioteca MSDN.

  • El CD de la Biblioteca MSDN no está en la unidad de CD-ROM.

    Solución: inserte el CD en la unidad.


RepeaterBindings (Colección)

Una colección de objetos RepeaterBinding.

Sintaxis

RepeaterBindings

Comentarios

Utilice la propiedad RepeaterBindings para devolver una referencia a la colección.


DataRepeater (Control, constantes)

Constantes para Appearance

Constante | Valor | Descripción
drpflat | 0 | El control se muestra sin relieve.
drp3D | 1 | El control tiene relieve 3D.

Constantes para BorderStyle

Constante | Valor | Descripción
drpNoBorder | 0 | El control no tiene borde.
drpFixedSingle | 1 | El control tiene una sola línea de borde.

Constantes para CaptionStyle

Constante | Valor | Descripción
drpNoCaption | 0 | El título está oculto.
drpLeftAligned | 1 | El título está alineado a la izquierda.
drpRightAligned | 2 | El título está alineado a la derecha.
drpCentered | 3 | El título está centrado.

Constantes para Error

Constante | Valor | Descripción
drpOutOfMemory | 7 | Memoria insuficiente.
drpTypeMismatch | 13 | Los tipos no coinciden.
drpObjVarNotSet | 91 (&H5B) | Variable de objeto o de bloque With no establecida.
drpInvalidPropertyValue | 380 (&H17C) | El valor de la propiedad no es válido.
drpInvalidPropertyArrayIndex | 381 (&H17D) | El índice de la matriz de propiedades no es válido.
drpSetNotSupportedAtRuntime | 382 (&H17E) | Imposible establecer la propiedad en tiempo de ejecución.
drpSetNotSupported | 383 (&H17F) | Esta propiedad es de sólo lectura.
drpSetNotPermitted | 387 (&H183) | La propiedad no se puede establecer en este control.
drpGetNotSupported | 394 (&H18A) | La propiedad es de sólo escritura.
drpObjectDoesntSupportProp | 438 (&H1B6) | El objeto no admite esta propiedad o método.
drpCreateRepeaterControl | 32000 (&H7D00) | Imposible crear un RepeatedControl.
drpInvalidProgID | 32001 (&H7D01) | ProgID u objeto de clase no compatible.
drpInvalidBookmark | 32002 (&H7D02) | El marcador no es válido
drpNoDataSource | 32003 (&H7D03) | El origen de datos está vacío o no se encuentra.
drpNoVisibleRows | 32004 (&H7D04) | No hay ninguna fila visible.
drpCantSetActiveRow | 32005 (&H7D05) | La fila activa no se puede establecer sin alterar la posición del registro actual.
drpBadVisibleRecordIndex | 32006 (&H7D06) | El índice VisibleRecord debe estar comprendido entre cero y VisibleRows-1.
drpInvalidRecordBookmark | 32007 (&H7D07) | El marcador no es válido o el registro correspondiente ya no existe.
drpIndexOutOfBounds | 35600 (&H8B10) | El índice está fuera de los límites.
drpElemNotFound | 35601 (&H8B11) | No se encontró el elemento.
drpNonUniqueKey | 35602 (&H8B12) | La clave no es única en la colección.
drpInvalidKey | 35603 (&H8B13) | La clave no es válida.
drpElemNotPartOfCollection | 35605 (&H8B15) | El objeto ya no es miembro de una colección.
drpCollectionChangedDuringEnum | 35606 (&H8B16) | La colección del control se ha modificado.
drpBadObjectReference | 35610 (&H8B1A) | El objeto no es válido.
drpWouldIntroduceCycle | 35614 (&H8B1E) | Esta acción produciría un ciclo.
drpCircularReference | 35700 (&H8B74) | No se permite una referencia circular entre objetos.
drpPropertyNotBindable | 35701 (&H8B75) | La propiedad no puede enlazarse.
drpInvalidIndexOrKey | 35702 (&H8B76) | Indice o clave no válidos.
drpAlreadyBound | 35703 (&H8B77) | PropertyName ya está enlazado.
drpInvalidPropertyName | 35704 (&H8B78) | PropertyName no válida.
drpInvalidDataField | 35705 (&H8B79) | DataField no válido.

Constantes para MousePointer

Constante | Valor | Descripción
drpDefault | 0 | Predeterminado.
drpArrow | 1 | Puntero de flecha.
drpCross | 2 | Puntero en forma de cruz.
drpIBeam | 3 | Puntero en forma de I.
drpIcon | 4 | Puntero de icono.
drpSize | 5 | Puntero de tamaño.
drpSizeNESW | 6 | Puntero de cambio de tamaño NE SO.
drpSizeNS | 7 | Puntero de cambio de tamaño N S.
drpSizeNWSE | 8 | Puntero de cambio de tamaño NO SE.
drpSizeEW | 9 | Puntero de cambio de tamaño O E.
drpUpArrow | 10 | Puntero de flecha arriba.
drpHourglass | 11 | Puntero de reloj de arena.
drpNoDrop | 12 | Puntero de no colocar.
drpArrowHourglass | 13 | Puntero con flecha y reloj de arena.
drpArrowQuestion | 14 | Puntero con flecha y signo de interrogación.
drpSizeAll | 15 | Puntero de tamaño de todo.
drpCustom | 99 (&H63) | Icono personalizado del puntero especificado por la propiedad MouseIcon.

Constantes para RowDividerStyle

Constante | Valor | Descripción
drpNoDivider | 0 | No se dibujan líneas entre las filas.
drpFlatLine | 1 | Se dibujan líneas planas entre las filas.
drpInset | 2 | Se dibujan líneas 3D entre las filas.
drpRaised | 3 | Se dibujan líneas con relieve saliente 3D entre las filas.

Constantes para Scrollbars

Constante | Valor | Descripción
drpNoScrollBars | 0 | No hay barras de desplazamiento.
drpHorizontal | 1 | Barra de desplazamiento horizontal solamente.
drpVertical | 2 | Barra de desplazamiento vertical solamente.
drpBoth | 3 | Se muestran barras de desplazamiento vertical y horizontal.
drpAuto | 4 | Se muestran barras de desplazamiento cuando son necesarias.


ActiveRowChanged (Evento)

Ocurre cuando se establece el valor de la propiedad ActiveRow.

Sintaxis

objeto_ActiveRowChanged( )

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.


CurrentRecordChanged (Evento)

Ocurre cuando el registro actual cambia a otro registro.

Sintaxis

Private Sub objeto_CurrentRecordChanged()

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.

Comentarios

El usuario puede cambiar el registro actual si hace clic en cualquiera de los registros del control o si utiliza los botones Siguiente, Anterior, Primero y Último de un control de datos.


Ejemplo del evento CurrentRecordChanged

Este ejemplo almacena el marcador del registro actual mediante la propiedad CurrentRecord.

Option Explicit
Option Base 1
Private mRecords(10) As Variant ' Matriz para marcadores.
                                ' Se almacenan sólo los 10 últimos.

Private Sub DataRepeater1_CurrentRecordChanged()
    If intC = 10 Then intC = 1
    mRecords(intC) = DataRepeater1.CurrentRecord
    intC = intC + 1
End Sub


DataUpdate (Evento)

Ocurre cuando se modifica un campo por programa o por una acción del usuario.

Sintaxis

Private Sub objeto_DataUpdate(cancel As boolean, ByVal Record As Variant, ByVal field As String)

La sintaxis del evento DataUpdate consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
cancel | Un valor booleano que especifica si se canceló la operación.
record | Una matriz Variant que contiene el marcador del registro actual.
field | Una cadena que indica el nombre del campo que va a cambiar.

Comentarios

No es necesario que el argumento field sea un campo enlazado. El evento se activará si cambia cualquiera de los campos del conjunto de registros.


RepeatedControlLoaded, RepeatedControlUnloaded (Eventos)

RepeatedControlLoaded ocurre tras crear e inicializar la propiedad RepeatedControl.

RepeatedControlUnLoaded ocurre cuando se va a descargar la propiedad RepeatedControl.

Sintaxis

Private Sub objeto_RepeatedControlLoaded()

Private Sub objeto_RepeatedControlUnloaded()

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.

Comentarios

En tiempo de ejecución, puede cambiar la propiedad RepeatedControl si establece la propiedad RepeatedControlName con un nuevo valor de Id. de programa. Cuando haga esto, utilice el evento RepeatedControlLoaded para inicializar los valores del control de usuario.


VisibleRecordChanged (Evento)

Ocurre cuando la propiedad VisibleRecords cambia.

Sintaxis

objeto_VisibleRecordChanged()

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.


Add (Método, colección RepeaterBindings)

Agrega un objeto RepeaterBinding a la colección RepeaterBindings y devuelve una referencia al nuevo objeto.

Sintaxis

objeto.Add(PropertyName, DataField, DataFormat, key)

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
PropertyName | Requerido. Una cadena que establece la propiedad enlazada a datos del control de usuario.
DataField | Requerido. Una cadena que establece el campo de origen de datos que se debe enlazar con la propiedad especificada en PropertyName.
DataFormat | Opcional. Establece el objeto DataFormat que se usará.
key | Opcional. Una cadena única que identifica al objeto. Utilice este valor para recuperar un miembro específico de la colección.


RepeaterBinding (Objeto)

El objeto RepeaterBinding representa a una propiedad enlazable de un componente.

Sintaxis

RepeaterBinding

Comentarios

Utilice el objeto RepeaterBinding en tiempo de ejecución para cambiar el contenido de un control DataRepeater al modificar los enlaces de los campos.


Ejemplo del objeto RepeaterBinding

El ejemplo siguiente imprime primero los nombres de las propiedades existentes en la colección RepeaterBindings, a continuación agrega un objeto DataBinding y, por último, cambia el formato de un objeto DataBinding.

Private Sub DataRepeater1_RepeatedControlLoaded()
   Dim rb As RepeaterBinding

   For Each rb In DataRepeater1.RepeaterBindings
      Debug.Print rb.PropertyName   ' Imprime todos los nombres de
                                    ' propiedades.
   Next

   With DataRepeater1
      ' Agrega un nuevo objeto RepeaterBinding.
      .RepeaterBindings.Add "cleared", "cleared"
      ' Cambia Format a todo mayúsculas.
      .RepeaterBindings(2).DataFormat.Format = ">"
   End With
End Sub


ActiveRow (Propiedad)

Devuelve o establece el índice de fila correspondiente a la posición que tomará el registro actual. Al establecer esta propiedad se activa un evento ActiveRowChanged.

Sintaxis

objeto.ActiveRow [=integer]

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
integer | Una expresión numérica que especifica la fila donde se coloca el registro actual.

Comentarios

El valor de la propiedad debe estar comprendido entre 1 y el valor de la propiedad VisibleRows.

El índice de fila se cuenta desde 1 y no está permitido establecer esta propiedad en 0. No obstante, cuando se obtiene 0, indica que el registro actual se ha desplazado fuera de la vista.

Puede ocurrir que la propiedad ActiveRow no tenga un valor lógico cuando el control DataRepeater muestra el primer o el último registro de un conjunto de resultados. Por ejemplo, si el registro actual es el último del conjunto de registros, no es correcto establecer ActiveRow con el valor 2 ó 1 cuando VisibleRows tiene el valor 3.


CaptionStyle (Propiedad)

Devuelve o establece un valor que determina el estilo de título, incluidas la alineación y la visibilidad.

Sintaxis

objeto.CaptionStyle [=integer]

La sintaxis de la propiedad CaptionStyle consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
integer | Una expresión numérica que determina la alineación del título, como se indica en Valores.

Valores

Constante | Valor | Descripción
drpNoCaption | 0 | El título está oculto.
drpLeftAligned | 1 | (Predeterminado) El título está alineado a la izquierda.
drpRightAligned | 2 | El título está alineado a la derecha.
drpCentered | 3 | El título está centrado.


CurrentRecord (Propiedad)

Devuelve el marcador del registro actual.

Sintaxis

objeto.CurrentRecord

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.

Tipo devuelto

Variant


Ejemplo de las propiedades CurrentRecord y VisibleRecords

El ejemplo siguiente hace que el registro actual se presente como el primer registro visible. La llamada al procedimiento hace que el registro actual vuelva a aparecer si el usuario lo oculta al desplazar el control DataRepeater.

Private Sub MakeFirstVisibleRecord()
   DataRepeater1.VisibleRecords(1)=DataRepeater1.CurrentRecord
End Sub


DataField (Propiedad, objeto RepeaterBinding)

Devuelve o establece un objeto DataField que se enlazará con una propiedad.

Sintaxis

objeto.DataField [=string]

La sintaxis de la propiedad DataField consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
string | El nombre de la propiedad que se enlaza.


DataFields (Propiedad)

Devuelve una matriz de nombres de objetos DataField incluidos en un objeto DataSource.

Sintaxis

objeto.DataFields(index)

La sintaxis de la propiedad DataFields consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
index | El índice de un elemento de la matriz. La matriz se cuenta a partir de 0.

Tipo devuelto

String

Comentarios

La matriz DataFields contiene los nombres de todas las propiedades enlazables del control repetido (vea RepeatedControlName).

Utilice el método Ubound para determinar cuántos elementos hay en la matriz. Dado que la matriz se cuenta a partir de 0, utilice el código siguiente:

Debug.Print Ubound(DataRepeater1.DataFields) + 1


DataFormat (Propiedad, objeto RepeaterBinding)

Devuelve o establece una referencia a un objeto DataFormat.

Sintaxis

objeto.DataFormat [=dataformat]

La sintaxis de la propiedad DataFormat consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
dataformat | Opcional. Una referencia a un objeto DataFormat.


IntegralHeight (Propiedad, control DataRepeater)

Devuelve o establece un valor que determina si el control muestra filas cortadas.

Sintaxis

objeto.IntegralHeight [=boolean]

La sintaxis de la propiedad IntegralHeight consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
boolean | Una expresión booleana que especifica si el control muestra filas cortadas, tal como se indica en Valores.

Valores

Los valores admitidos para boolean son:

Constante | Descripción
False | Se muestran filas cortadas.
True | (Predeterminado) El control sólo muestra filas completas.


PropertyName (Propiedad, objeto RepeaterBinding)

Devuelve o establece el nombre de una propiedad enlazable del control de usuario.

Sintaxis

objeto.PropertyName [=string]

La sintaxis de la propiedad PropertyName consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
string | Una propiedad enlazable de RepeatedControl.


PropertyNames (Propiedad)

Devuelve una matriz de nombres de propiedades de un control repetido.

Sintaxis

objeto.PropertyNames(index)

La sintaxis de la propiedad PropertyNames consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
index | El índice de un elemento de la matriz. La matriz se cuenta a partir de 0.

Comentarios

Utilice el método Ubound para determinar cuántos elementos hay en la matriz. Dado que la matriz se cuenta a partir de 0, utilice el código siguiente:

Debug.Print Ubound(DataRepeater1.DataFields) + 1


RecordCount (Propiedad)

Devuelve el número de registros del conjunto de registros.

Sintaxis

objeto.RecordCount

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.

Tipo devuelto

Long


RepeatedControlName (Propiedad)

Devuelve o establece el Id. de programa de un control repetido.

objeto.RepeatedControl [=string]

La sintaxis de la propiedad RepeatedControl consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
string | El Id. de programa de un control de usuario.

Comentarios

El control repetido no puede ser un control intrínseco de Visual Basic.

El Id. de programa de un control consta del nombre de proyecto y el nombre de clase con el formato nombreproyecto.nombreclase. El Examinador de objetos de Visual Basic muestra el nombre de proyecto en el cuadro Proyecto/Biblioteca y el nombre de clase en la lista Clases.


RepeatedControl (Propiedad)

Devuelve una referencia al control repetido.

Sintaxis

objeto.RepeatedControl

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.

Comentarios

Utilice la referencia para establecer propiedades públicas o invocar funciones públicas del control de usuario. Por ejemplo, el siguiente código recupera la propiedad pública llamada "Value" del control repetido:

MsgBox DataRepeater1.RepeatedControl.Value


RepeaterBindings (Propiedad)

Devuelve una referencia a la colección RepeaterBindings de objetos RepeaterBinding.

Sintaxis

objeto.RepeaterBindings

objeto.RepeaterBindings(index)

La sintaxis de la propiedad RepeaterBindings consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
index | La propiedad Index o Key que especifica un miembro de la colección.


RowDividerStyle (Propiedad, control DataRepeater)

Devuelve o establece un valor que determina la apariencia de la división de las filas.

Sintaxis

objeto.RowDividerStyle [=integer]

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
integer | Una expresión numérica que determina la apariencia de la división de filas, como se indica en Valores.

Valores

Constante | Valor | Descripción
drpNoDivider | 0 | Sin líneas entre las filas.
drpFlatLine | 1 | (Predeterminado) Líneas sin relieve entre las filas.
drpInset | 2 | Se dibujan líneas con relieve hundido entre las filas.
drpRaised | 3 | Se dibujan líneas con relieve saliente entre las filas.


RowIndicator (Propiedad)

Devuelve o establece un valor que determina si se dibuja el indicador de fila (un triángulo de color negro) en el control. El indicador identifica el registro activo.

Sintaxis

objeto.RowIndicator [=boolean]

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
boolean | Una expresión booleana que especifica si se dibuja la división de filas, como se indica en Valores.

Valores

Los valores admitidos para boolean son:

Constante | Descripción
False | No se dibuja el indicador de filas.
True | (Predeterminado) Se dibuja el indicador de filas.


Scrollbars (Propiedad, control DataRepeater)

Devuelve o establece un valor que determina el estilo de la barra de desplazamiento.

Sintaxis

objeto.Scrollbars [=integer]

La sintaxis de la propiedad Scrollbars consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
integer | Una expresión numérica que determina la apariencia de la barra de desplazamiento, tal como se indica en Valores.

Valores

Constante | Valor | Descripción
vbSBNone | 0 | Ninguna.
vbHoriz | 1 | Barra de desplazamiento horizontal solamente.
vbVert | 2 | (Predeterminado) Barra de desplazamiento vertical solamente.
vbBoth | 3 | Barras de desplazamiento vertical y horizontal.
vbAuto | 4 | Se muestran las barras de desplazamiento cuando son necesarias.


VisibleRecords (Propiedad)

Devuelve o establece el marcador del registro que se mostrará en el índice de fila especificado.

Sintaxis

objeto.VisibleRecords(rowindex) [=bookmark]

La sintaxis de la propiedad VisibleRecords consta de las siguientes partes:

Parte | Descripción
objeto | Una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.
rowindex | Requerido. Un valor de tipo Long que especifica la fila donde se muestra un registro.
bookmark | Opcional. Establece el marcador del registro para mostrarlo en la fila rowindex.

Tipo devuelto

Variant

Comentarios

El valor rowindex no puede dar como resultado una posición que esté más allá del EOF o BOF del conjunto de registros.

El valor rowindex debe estar comprendido entre 1 (la fila superior) y el valor de la propiedad VisibleRows.


VisibleRows (Propiedad, control DataRepeater)

Devuelve el número de filas completamente visibles en el control.

Sintaxis

objeto.VisibleRows

El marcador de posición objeto representa una expresión de objeto cuyo resultado es un objeto de la lista Se aplica a.

Tipo devuelto

Long

Comentarios

Utilice la propiedad VisibleRows junto con la propiedad VisibleRecords para especificar donde se mostrará el registro actual. Por ejemplo, para mostrar el registro actual en última fila de abajo, utilice el siguiente código:

DataRepeater1.VisibleRecords(DataRepeater1.VisibleRows) = _
DataRepeater1.CurrentRecord