19/9/2016

Inicio

Control Data
Eje m plos vb

O cx  ­ Active x

Api vb

Tutoriale s ­ Manuale s

C ódigo fue nte

Eje m plos vb.ne t

Sección de tutoriales y manuales vb

  Buscar

Control Data ­ Página 1
Volver ­ 1 ­  2

 
 

En  esta  sección  se  ven  algunos
ejemplos  muy  simples  del  uso  del
control Data de visual Basic
Contenido :
Breve descripción
Ejemplo 1 : Crear una Agenda simple
Ejemplo  2  ­  Propiedad  Recordsource  en
tiempo de ejecución
Enlazar un control Data con un DbGrid
Acceder a una base de datos con Password
Enlaces relacionados

 
 
 
 

1 ­ Breve descripción
El  control  Data  se  utiliza  con  el  motor  de  base  de  datos  Microsoft  Jet  para  acceder  a  base  de
datos  de  diferentes  formatos  como  por  ejemplo:  Microsoft  Access,  Dbase,  Excel,  FoxPro,  Lotus  y
Paradox, aunque en los ejemplos solo se utilizará Microsoft Access como base de datos.
El  control  Data  permite  trabajar  con  controles  enlazados,  por  ejemplo  con  controles  Label,
TextBox,  ComboBox,  controles  Image  etc..  para  presentar  los  datos.  Esto  quiere  decir  que  al
colocar  un  control  Data  y  enlazarlo  a  una  base  de  datos  y  luego  enlazar  dichos  controles  con  el
control  Data,  los  cambios  que  se  realicen  en  los  controles  enlazados  se  reflejarán  en  la  base  de
datos.
Para enlazar la base de datos con un control Data ubicado en el formulario, se utiliza la propiedad
DataBaseName y Connect. En la propiedad Connect se especifica el tipo de base de datos, por
ejemplo: Access. Luego, ya se puede seleccionar la base  de  datos.  Para  indicar  con  que  tabla  se
encontrará unida al control se utiliza la propiedad RecordSource.
Nota:  Antes  de  especificar  la  tabla  en  la  propiedad  RecordSource  hay  que  indicar la propiedad
DataBaseName y Connect,  de  lo  contrario  se  producirá  un  error  "  Debe  rellenar  las  propiedades
DataBaseName y Connect para llevar a cabo la operación"

http://www.recursosvisualbasic.com.ar/htm/tutoriales/control­data.htm

1/12

com. ahora localizar la propiedad Recordsource para indicar la tabla a la cual estará enlazada. El tipo de dato de los campos establecerle como de Tipo Texto Luego guardar la tabla con el nombre Contactos Colocar  la  base  de  datos  en  una  carpeta  cualquiera. Ahora seleccionar el control Data1.recursosvisualbasic.  donde  se  ubicará  también  el  proyecto  de ejemplo. Manteniendo seleccionado siempre el control Data. y desde la ventana de propiedades serciorarse que la propiedad Connect  esté  con  el  valor  Access  y  en  la  propiedad  DataBaseName  elegir  la  base  de  datos anteriormente creada. txtDirEdit y txtTelEdit     El commandButton Agregar colocarle el nombre CmdAgregar El botón de Eliminar CmdEliminar Refrescar: CmdRefresh Actualizar : CmdActualizar http://www.htm 2/12 . Colocar los siguiente controles en el formulario como está en la siguiente imagen: Textbox: txtNombre.  en  el  ejemplo  solo  se realizará en tiempo de diseño   2 ­ Ejemplo 1 : Crear una Agenda simple El primer paso será crear una base de datos Access con los siguientes campos: Nombre. Iniciar un nuevo proyecto de tipo Exe y guardarlo en la carpeta anterior. lo primero será colocar un control Data llamado Data1.ar/htm/tutoriales/control­data. Direccion y Telefono. En el formulario principal. y seleccionamos la Tabla Contactos.19/9/2016 Control Data Si  bien  estas  propiedades  se  pueden  establecer  en  tiempo  de  ejecución. txtDireccion y txtTelefono TextBox: txtNomEdit.

Refresh End Sub http://www.ar/htm/tutoriales/control­data.Recordset.  seleccionar  el  campo  Nombre  en  la  propiedad  DataField.Recordset("telefono").LastModified          Exit Sub errSub: If Err.Value = txtNomEdit     If txtDirEdit <> "" Then Data1.SetFocus End Sub 'Botón para Eliminar el Registro Activo Private Sub CmdEliminar_Click()          With Data1.com.htm 3/12 .Refresh Data1.MovePrevious         If Not .Recordset         'Elimina         If Data1.UpdateRecord     Data1.  el  segundo  Textbox  el  campo Direccion y el tercero el campo Telefono   El código del formulario: 'Botón para Agregar un Nuevo Registro Private Sub CmdAgregar_Click() Data1.Recordset("Direccion").  Para  el primero. hay que indicarle en la  propiedad  DataField  de  cada  uno  de  los  TextBox.Recordset.Recordset.EOF Then .  el  campo  por  el  cual  se  enlazará.RecordCount = 0 Then Exit Sub         .recursosvisualbasic.Bookmark = Data1.Recordset. vbInformation End If End Sub 'Botón para  modificar el registro activo Private Sub CmdModificar_Click()          Data1.Update End Sub 'Refresca el control Private Sub CmdRefresh_Click() Data1. txtDireccion y txtTelefono.MoveLast     End With      End Sub 'Botón para Actualizar los cambios Private Sub CmdActualizar_Click()     On Error GoTo errSub     'Actualiza el control data     Data1.Edit     If txtNomEdit <> "" Then Data1.AddNew txtNombre.Number = 524 Then    MsgBox "Para actualizar un registro primero agregue uno nuevo o" & _     "modifique algun registro activo".Value = txtDirEdit     If txtTelEdit <> "" Then Data1.Delete         'Posiciona en el siguiente         .Value = Val(txtTelEdit)     Data1.19/9/2016 Control Data Modificar: CmdModificar   Ahora para enlzar los textBox llamados txtNombre.Recordset.Recordset.Recordset("Nombre").

htm 4/12 .Recordset.19/9/2016 Control Data 'Evento que ocurre Cuando se produce un error en el control Data Private Sub Data1_Error(DataErr As Integer.mdb"          txtNomEdit = "": txtDirEdit = "": txtTelEdit = ""     txtSearchNom = "": txtSearchDir = "": txtSearchTel = "" End Sub Private Sub Form_Unload(Cancel As Integer)     Screen.com.AbsolutePosition + 1) End Sub Private Sub Data1_Validate(Action As Integer.MousePointer = vbHourglass End Sub Private Sub Form_Load()     'Acá especificar el path de la base de datos     Data1. Save As Integer)          Select Case Action         Case vbDataActionMoveFirst         Case vbDataActionMovePrevious         Case vbDataActionMoveNext         Case vbDataActionMoveLast         Case vbDataActionAddNew         Case vbDataActionUpdate         Case vbDataActionDelete         Case vbDataActionFind         Case vbDataActionBookmark         Case vbDataActionClose         Screen.ar/htm/tutoriales/control­data.recursosvisualbasic.DatabaseName = App.Caption = "Registro n° : " & (Data1.Path & "\bd1. txtSearchDir y txtSearchTel Un Option1 y en el Caption: " Por nombre " Un Option2 y en el Caption: " Por Diercción " Un Option3 y en el Caption: " Por Teléfono " Un CommandButton llamado CmdBuscar   http://www.MousePointer = vbDefault     On Error Resume Next    'Mostramos el número de registro en el control Data en la propiedad caption     Data1.MousePointer = vbDefault     End Select Screen.MousePointer = vbDefault End Sub    Agregar una opción para buscar un registro: Añadirle al ejemplo anterior los siguientes controles: 3 TextBox: txtSearchNom. Response As Integer)     MsgBox "Error: " & Error$(DataErr)     Response = 0 End Sub 'Muestra la posición del registro activo del control Data Private Sub Data1_Reposition()     Screen.

Recordset.Value = True Then         Data1.htm 5/12 .Recordset.19/9/2016 Control Data     El código del procedimiento al pulsar el botón Buscar Private Sub CmdBuscar_Click()     If Option1.ar/htm/tutoriales/control­data.recursosvisualbasic. vbInformation End Sub    Descargar ejemplo   3 ­ Ejemplo 2 ­ Propiedad Recordsource en tiempo de ejecución   El siguiente ejemplo muestra una forma de utilizar la propiedad Recordsource del control Data http://www.NoMatch Then MsgBox " Registro no encontrado".Recordset.FindFirst ("telefono = '" & txtSearchTel & "'")     End If     If Data1.com.Value = True Then         Data1.FindFirst ("Direccion = '" & txtSearchDir & "'")     ElseIf Option3.Value = True Then         Data1.FindFirst ("Nombre = '" & txtSearchNom & "'")     ElseIf Option2.Recordset.

 Dentro de esta una tabla llamada Clientes en la cual tendrá  los  siguientes  campos:  Nombre. poder mostrar otros datos del Cliente en unos TextBox. Por  ejemplo.  Un  textBox llamado txtTelefono.  en  este  caso  Telefono. Cargar  algunos  datos  de  ejemplo  y  Guardar  la  base  de  datos  en  una  carpeta  donde  también  se guardará el proyecto de Visual basic.  para  el  txtTelefono  seleccionar  la  propiedad  DataSource  y  seleccionar  el  control Data1  y  en  la  propiedad  DataField  escribir  el  nombre  del  campo.recursosvisualbasic.htm 6/12 . y al seleccionar uno de ellos. otro txtPais y otro txtCorreo Ahora  se  enlazará  en  la  propiedad  DataField  y  DataSource  de  cada  TextBox.19/9/2016 Control Data El mismo consiste en un control Combo que tiene cargado los nombres de Clientes de una Tabla.com.  Todo esto desde la ventana de propeidades como muestra la imagen:   Hacer lo mismo para los restantes Controles textBox   http://www.  Telefono.  Todos  los  campos  dejarlos como de tipo texto.ar/htm/tutoriales/control­data.  el  campo relacionado y el control Data1 como fuente de los registros.  Pais  y  Correo.  Un  control  ComboBox  llamado  ComboNombres. Ahora crear un nuevo proyecto en Visual basic y agregar en el formulario los siguiientes controles: Un  control  Data  llamado  Data1.MDB. como muestra esta imagen:     Pasos para crear el ejemplo : Crear una base de datos llamada base.

Close     db.ListIndex = 0          Me.MoveNext     Loop          'Cierra el recordset y la base     rst.19/9/2016 Control Data El código fuente del Formulario sería el siguiente:  Option Explicit 'Ejemplo 2 del control Data y la propiedad Recordsource en tiempo de ejecución Private Sub ComboNombres_Click()          ' Al hacer Click en el elemento del combo _     se selecciona mediante sql el registro _     y la cadena Sql se asigna al Recorsource del _     control data     Data1.recursosvisualbasic.OpenRecordset( _         "SELECT Nombre FROM Clientes ORDER BY Nombre".AddItem rst!Nombre                  'siguiente registro         rst.DatabaseName = Path_Base_Dato          'Seleccionamos el primer elemento del combo     ComboNombres. _         dbOpenSnapshot)           ' Se mueve al primer registro     rst.Path     Path_Base_Dato = Path_Base_Dato & "\base.ar/htm/tutoriales/control­data.com.htm 7/12 . db As Database Dim rst As Recordset          Path_Base_Dato = App.RecordSource = _         "SELECT * FROM Clientes WHERE Nombre='" & ComboNombres & "'"          'Refresca el control data     Data1.MoveFirst     Do While Not rst.Caption = " Ejemplo de la propiedad recordsource del control Data "      End Sub http://www.Refresh End Sub Private Sub Form_Load() Dim Path_Base_Dato As String.mdb"          'Abre la base de datos     Set db = OpenDatabase(Path_Base_Dato)          'Abre el Recordset con la consulta: Selecciona los nombres ordenados     Set rst = db.EOF         'Agrega el Nombre al Combo         ComboNombres.Close          'Se asigna la base de datos al Data1     Data1.

 el Data al cual enlazarlo. especificando en el control FlexGrid en la propiedad DataSource. se realiza de la misma forma.  El  Command2  para  ejecutar  la  consulta  sql que se escribirá en el control Text1.  se  enlazará  un  control  Data  con  un  DbGrid.recursosvisualbasic. y en la propiedad Recordsource  la  fuente  de  los  registros  (  consulta  sql  o  tabla)  .  el  DbGrid  visualizará los nuevos datos.  es  muy  simple.19/9/2016 Control Data   Este mismo ejemplo lo podés descargar desde este enlace: Descargar Ejemplo 2 ­ Control Data   4 ­ Enlazar un control Data con un DbGrid   Para  enlazar  un  control  Data  a  un  control  DbGrid.htm 8/12 .  Una  ves  que  el  control  Data  ya tiene especificado en la propiedad DataBaseName el nombre de la base de datos.  solo  hay  que  especificar  en  la propiedad DataSource del control DbGrid. Colocar  un  DbGrid  llamado  DbGrid1. el control Data al cual estará enlazado.ar/htm/tutoriales/control­data.  un  control  Data  llamado  Data1.  es  decir.  un  control  TextBox  llamado Text1 . Esta es una vista del ejemplo http://www. y dos botones. un CommonDialog1. Como muestra la imagen:     Para enlzar un control MsFlexGrid.  pero  al cambiar  la  propiedad  Recordsource  del  control  Data  en  tiempo  de  ejecución.   Enlazar  un  control  Data  con  un  DbGrid  y  especificar  el  RecordSource  en  tiempo  de ejecución Este  ejemplo  es  similar  al  anterior.com. Command1 y Command2 El  Command1  será  para  seleccionar  la  base  de  datos.

19/9/2016 Control Data   Importante: Al control DbGrid.FileName = "" Then         Exit Sub     Else http://www.Filter = "Archivos de base de datos Access|*.Text)         .Refresh 'refresca el control     End With Exit Sub ErrSub:     MsgBox Err. especificarle en la propiedad DataSource el control Data1   El código fuente del formulario: Option Explicit Private Sub Command1_Click() On Error GoTo ErrSub          With Data1          'Se asigna el Recordsource al data         .ShowOpen          If .ar/htm/tutoriales/control­data.Description.htm 9/12 . " Error " End Sub Private Sub Command2_Click() On Error GoTo ErrSub 'Abre el cuadro de diálogo para Seleccionar la base de datos With CommonDialog1          .com.RecordSource = Trim$(Text1. vbCritical.recursosvisualbasic.mdb"     .DialogTitle = " Seleccionar base de datos para anlzar con el Data "     .

 vbCritical.Description. vbInformation     End If End With Exit Sub ErrSub:     MsgBox Err.ar/htm/tutoriales/control­data.FileName         MsgBox " Ahora escriba una consulta en Text1 para " & _                 "cargar el DbGrid ".recursosvisualbasic.Caption = " Ejecutar consulta "     Command2. el segundo una Bd de tipo Access 97.19/9/2016 Control Data         'Le especifica el path de la Bd al control data1         Data1. Response As Integer) Response = 0 End Sub Private Sub Form_Load()     Me.htm 10/12 .com. " Error " End Sub Private Sub Data1_Error(DataErr As Integer.DatabaseName = .Caption = " Ejemplo DbGrid y el control Data  "          Command1.Connect = "Access" End Sub     Descarga ejemplo     5 ­ Abrir una base de datos con Password   Estos  dos  ejemplos  muestran  como  abrir  una  base  de  datos  Microsoft  Access  con  password  para asociarla luego a un control Data El primer ejemplo abre una Bd de tipo Access 2000.   Este ejemplo requiere incluir la referencia a Microsoft DAO desde el menú Proyecto ­ Referencias e incluir un control Data llamado Data1 Option Explicit Private Sub Form_Load() Dim Path As String Dim db As Database Dim rst As Recordset     http://www.Caption = " Seleccionar BD "          ' Tipo de base de datos para el Data     Data1.

OpenDatabase(Path.recursosvisualbasic.htm 11/12 .mdb" Data1.Connect = Password Data1.Path & "\bd1.19/9/2016 Control Data     Path = App. "MS Access;PWD=EL_PASSWORD")     ' Abre el recordset     Set rst = db.com.OpenRecordset("El_Campo")     ' Asocia el recordset al control Data     Set Data1.DatabaseName = App.ar/htm/tutoriales/control­data.Refresh End Sub    6 ­ Enlaces relacionados Página de ejemplos usando Microsoft Dao   Volver ­ 1 ­  2     Buscar en Recursos vb   Buscar http://www.Recordset = rst End Sub    Abrir la base con Password en Access 97: Private Sub Form_Load() Dim Password As String ' Passsword de la base de datos Password = ";PWD=" & "el_password" 'Path de la bd Data1. False.Path & "\Bd1. False.mdb"          Set db = DBEngine.

ar/htm/tutoriales/control­data.ar http://www.19/9/2016 Control Data Recursos  visual  basic  ­  Buscar  ­  Privacidad  www.htm ­  Copyright  ©  2005  ­  2009  ­ 12/12 .com.com.recursosvisualbasic.recursosvisualbasic.