Sei sulla pagina 1di 35

Diseo de interfaces

Comenzar a utilizar VB6


Autor: Andre Saffin

Indice.

Instalacin, conceptos y primeros pasos (en proyectos Xestin) Variables Funciones de cadena Otras funciones Objetos:

Formulario Formulario MDI MsgBox TextBox ListView


Agregar elementos en un Men (en proyecto Editor) Ayuda Crear un informe simple utilizando DataReport(xestionDataReport) Los Mdulos Conexin de objetos ADODB

Objeto Connection Objeto Command Objeto Recordset


Instalacin:
Instalacin de Daemon Tools para virtualizar imgenes ISO. Instalacin de Visual Studio 6 Profesional (*no seleccionar FoxPro)

Conceptos:
IPO: interaccin persona ordenador IDE: Entorno integrado de desarrollo para:

Editar, Compilar Depurar Hacer paquetes de instalacin.

Se comienza realizando un proyecto que puede ser una aplicacin con formularios, procesos, informes, mdulos...

Dentro de un proyecto VB6


Formulario [FORM] objeto dentro de Visual Basic 6 con :

Propiedades: caractersticas. Mtodos: funciones que hacen tareas Eventos: recoge informacin de los mtodos
Mdulos [MOD]: solo tienen cdigo, funciones, aplicaciones y procedimientos. Informes. Clases Controles: Definidos por el usuario: botones, mensajes emergentes, mens... Por defecto.

Ventana del Visual Basic:


Dispone de un MDI: multiple document interface como la siguiente:

Varios documentos abiertos en los cuales si se selecciona se muestra el men adecuado. El objeto principal es el proyecto entero , dentro de el hay otros objetos. En la opcin ver, puedo ver el cdigo asociado al objeto o el objeto final en pantalla. Los mdulos solo tienen disponible ver el cdigo. Es reutilizable y se pueden llamar desde cualquier parte del proyecto y su contenido (variables y mtodos )es visible desde todos los elementos.

Empezar a usar VB6


Tras guardar en el momento del inicio tenemos un archivo .vbp, en el se van a guardar varios tipos de datos como las partes de las que consta nuestro proyecto, que elemento se ejecuta al inicio y otros datos que harn que funcione el proyecto de forma correcta. El contenido de uno de nuestros proyectos es como se muestra en la imagen.

Al iniciar Microsoft Visual Basic 6.0 escogemos crear un archivo ejecutable (.exe)

Definicin de variables y funciones en VB6:


Dim NombreVariable as tipo Cosnt nombreConstante as tipo = valor Public nombreVarPublica as tipo Private Sub nombreProcedimiento() Cdigo End Sub Concepto de mbito en variables: Public en FORM abarca todo el formulario Private en FORM mbito local en formulario, slo para esa funcin o Sub si se cierra formulario se pierde toda la informacin. GUARDAR FRECUENTEMENTE!!!!! Tipos simples: Integer Long String Boolean Si no se indica el mbito es privado por defecto. Dim hace referencia a la dimensin. Funciones, mtodos y procedimientos. Sintaxis: Pocedimientos Funciones sub (parmetros as tipo) function (parmetros as tipo) as tipo_retorno

Diferencia: los procedimientos o subrutinas hace una operacin sin retorno de informacin y la funcin devuelve un dato tras su ejecucin. El mbito de las funciones o sub es equiparable en significado al de las variables. Sintaxis: function nombreFuncion [(parametros as tipo )] [as tipo_retorno] Para hacer el retorno de la funcin hacemos: nombreFuncion = valor_resultado sub nombreProcedimiento [(parametros as tipo)] Si no se indica el tipo de retorno de una funcin se asume por defecto que es Boolean

Los nombres de elementos recomendados segn las guas de estilo se escriben: frmNombre txtNombre btnNombre cmdNombre lstNombre lswNombre modNombre para formularios para caja de texto para botones para command button para lista para list view para mdulos

Se recomienda introducir alguna mayscula en los nombres de las variables, para luego a la hora de escribirlas en el cdigo, el editor al cambio de lnea automaticamente har el UPPERCASE de las letras adecuadas si est escrita correctamente. De no estarlo las letras no se elevarn lo que nos dar una idea de que algn error de sintaxis ha ocurrido y debemos corregirlo. Lo mismo sucede con las palabras reservadas del lenguaje de VB.

Funciones de Cadena:
Ltrim, Rtrim, Trim Devuelve un tipo Variant (String) que contiene una copia de una cadena determinada sin espacios a la izquierda (LTrim), sin espacios a la derecha (RTrim) o sin espacios ni a la derecha ni a la izquierda (Trim). LTrim(cadena) RTrim(cadena) Trim(cadena) Left Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del lado izquierdo de una cadena. Left(string, length) Right Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres del lado derecho de una cadena. Right(string, lenght) Mid Devuelve un tipo Variant (String) que contiene un nmero especificado de caracteres de una cadena. Mid(string, start[, length]) Devuelven un tipo Variant (String) que contiene el resultado de dicha operacin. Split Devuelve una matriz de una dimensin, basada en ceros, que contiene un nmero especificado de subcadenas. Split(expresin[, delimitador[, contar[, comparar]]]) Ubound Devuelve un tipoLong que contiene el mayor subndice disponible para la dimensin indicada de unamatriz. UBound(nombre_matriz[, dimensin]) Len Devuelve un tipo Long que contiene el nmero de caracteres en una cadena o el nmero de bytes necesarios para almacenar una variable. Len(cadena | nombrevar)

Otras funciones
Weekday Devuelve un valor de tipo Variant (Integer) que contiene un nmero entero que representa el da de la semana. Weekday(fecha, [primerdasemana]) Time Devuelve un valor de tipo Variant (Date) indicando la hora actual del sistema.

Timer Devuelve un tipo Single que representa el nmero de segundos transcurridos desde la medianoche. Day, Month, Year Devuelve un valor de tipo Variant (Integer) que especifica un nmero entero entre 1 y 31, inclusive, que representa el da del mes , entre 1 y 12 inclusive, que representa el mes del ao y un nmero entero que representa el ao. Day(fecha), Month(fecha), Year(fecha) Ejemplo: Dim MiFecha, MiDia MiFecha = #12 febrero 1969# ' Asigna una fecha. MiDa = Day(MiFecha) ' MiDa contiene 12. Second, Minute, Hour Devuelven un valor de tipo Variant (Integer) que especifica un nmero entero entre 0 y 59, entre 0 y 59 y entre 0 y 23 inclusive, que representa el segundo, el minuto de la hora y la hora del da. Second(hora), Minute(hora), Hora(hora) Ejemplo: Dim MiTiempo, MiMinuto MiTiempo = #4:35:17 PM# ' Asigna una hora. MiMinuto = Minute(MiTiempo) ' MiMinuto contiene 35. Now Devuelve un valor de tipo Variant (Date) que especifica la fecha y hora actuales de acuerdo con la configuracin de la fecha y la hora del sistema de su equipo.

Las funciones fueron usadas en el proyecto convertir: Char, Asc Devuelve un tipoString que contiene el carcter asociado con el cdigo de carcter especificado y un tipoInteger que representa el cdigo de carcter correspondiente a la primera letra de una cadena. Chr(cdigoCaracter), Asc(cadena) InStr Devuelve un tipo Variant (Long) que especifica la posicin de la primera aparicin de una cadena en otra. InStr([start, ]string1, string2[, compare])

InstrRev Devuelve la posicin de una aparicin de una cadena dentro de otra, desde el final de la cadena. InstrRev(cadena1, cadena2[, inicio[, comparar]]) Funciones de conversin de tipos Cada funcin de las siguientes convierte una expresin a un tipo de datos especfico. Funcin
Cbool Cbyte Ccur Cdate CDbl

Tipo devuelto
Boolean Byte Currency Date Double

Intervalo del argumento expresin


Cualquier expresin de cadena o numrica vlida. 0 a 255. -922.337.203.685.477,5808 a 922.337.203.685.477,5807. Cualquier expresin de fecha. -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E324 a 1,79769313486232E308 para valores positivos. +/-79.228.162.514.264.337.593.543.950.335 para nmeros basados en cero, es decir, nmeros sin decimales. Para nmeros con 28 decimales, el intervalo es +/-7,9228162514264337593543950335. La menor posicin para un nmero que no sea cero es 0,0000000000000000000000000001. -32.768 a 32.767; las fracciones se redondean. -2.147.483.648 a 2.147.483.647; las fracciones se redondean. -3,402823E38 a -1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos. El mismo intervalo que Double para valores numricos. El mismo intervalo que String para valores no numricos. El valor de retorno de CStr depende del argumento expresin.

Cdec

Decimal

Cint CLng CSng

Integer Long Single

CStr Cvar

String Variant

Sintaxis genrica:

Funcin(expresin)

El argumento obligatorio expresin es cualquier expresin de cadena o expresin numrica. Cualquier expresin cuyo valor es equivalente a una secuencia de caracteres contiguos es una expresin de cadena. Los elementos de la expresin pueden incluir una funcin que devuelve una cadena, un literal de cadena, una constante de cadena, una variable de cadena, una cadena Variant o una funcin que devuelve una cadena Variant (VarType 8). Cualquier expresin numrica que puede ser evaluada como un nmero. Los elementos de una expresin pueden incluir cualquier combinacin de palabras clave, variables, constantes y operadores que dan como resultado un nmero.

Objetos: Formulario:

Propiedades, mtodos y eventos

Creamos un formulario con extensin .frm, para ello hacemos clic en la ventana de proyecto>agregar>formulario, se vera as: En el siguiente men desplegable podemos ver todas las posibilidades de elementos que podemos agregar a nuestro proyecto: Formularios, Mdulos, Mdulos de Clase, informes(Data Report)...etc

Propiedades de un formulario:

Appearance AutoRedraw BackColor

apariencia del objeto, puede ser plano o 3D Devuelve o establece el resultado de un mtodo grfico como grfico persistente. devuelve o establece el color de fondo de un objeto. Estilo del borde de un objeto. Para el objeto Form y el control TextBox es de slo lectura entiempo de ejecucin. 0.-vbBSNone 1.-VbFixedSingle 2.-VbSizable 3.-vbFixedDouble 4.-vbFixedToolWindow 5.-vbSizableToolWindow ttulo de la ventana Devuelve o establece un valor que indica si se muestra un cuadro del men Control en un formulario unos valores que determinan la apariencia, estilo de lnea y el ancho de lnea, respectivamente, del resultado de un mtodo grfico. Activado para responder a eventos generados por usuario Color de relleno(Hex) y estilo del relleno(Transparent, Horizontal o Vertical Line, Upward o Downward Diagonal, Cross o Diagonal Cross). -FontBold -FontItalic -FontName -FontSize -FontStrikethrough -FontUnderline devuelve o establece el color de primer plano utilizado para mostrar texto y grficos en un objeto. Alto del fromulario

BorderStyle

Caption ControlBox DrawMode DrawStyle DrawWidth Enabled FillColor FillStyle

Font

ForeColor Height

HelpContextID Image/Icon Left LinkMode LinkTopic MaxButton MDIChild MinButton MouseIcon MousePointer Moveable Name NegotiateMenus OLEDropMode Palette PaletteMode Picture RightToLeft: True False ScaleHeight ScaleLeft ScaleMode ScaleTop ScaleWidth StartUpPosition: 0 Manual 1 CenterOwner 2 CenterScreen 3 Windows Default Top Visible WhatsThisButton WhatsThisHelp Width WindowState

nmero de contexto asociado a un objeto para proporcionar Ayuda interactiva para la aplicacin Devuelve el icono que aparece al minimizar un formulario. Distancia entre borde interno izqdo y el izquierdo de su contenedor. permite que una aplicacin de destino inicie una conversacin con un formulario, se especifica en las propiedades LinkTopic y LinkItem Si tiene o no boton de Maximizar valor que indica si un formulario debe mostrarse como formulariosecundario MDI dentro de unformulario MDI. Si tiene o no boton de Minimizar Icono personalizado para el mouse Tipo de puntero mostrado sobre el formuario (u objeto) Indica si se puede mover el formulario Nombre del fromulario Si incorpora los mens de un objeto en la barra de mans. Si actua como destino para operacin de colocar de OLE Imagen que contiene la paleta utilizada en el control(ruta) archivos .dib, .gif o .bmp para establecer la paleta. grfico o imagen de fondo del form, formato .bmp, .jpg, .gif, cubre fondo visible, ojo con la imagen al maximizar!!! booleano que indica el sentido de presentacin del texto nmero de unidades de medida horizontal y vertical del interior de un objeto al usarmtodos grficos o al colocar controles.ScaleMode para definir una escala basada en una unidad de medida estndar, comotwips,puntos,pxeles, caracteres, pulgadas, milmetros o centmetros.

especifica la posicin de un objeto la primera vez que aparece

distancia entre el borde interno superior de un objeto y el borde superior de su contenedor Indica si est visible o no determina si el botn Qu es esto? debe aparecer en la barra de ttulo determina si la Ayuda interactiva utiliza el men emergente Qu es esto? Ancho del formulario indica el estado visual de una ventana de formulario en tiempo de ejecucin.(vbNormal,vbMinimized,vbMaximized)

Mtodos de un formulario:

Circle

Dibuja un crculo, una elipse o un arco en un objeto.


objeto.Circle [Step] (x, y), radio, [color, inicio, fin, aspecto]

Cls

Borra los grficos y el texto generados en tiempo de ejecucin de los controles Form o PictureBox. Oculta un objeto MDIForm o Form pero no lo descarga. Objeto.Hide Dibuja lneas y rectngulos en un objeto. Sintaxis:
objeto.Line [Step] (x1, y1) [Step] - (x2, y2), [color], [B][F]

Hide

Line

Move

Mueve objetos MDIForm o Form, o controles. No acepta argumentos con nombre. Sintaxis objeto.Move izquierda, superior, ancho, alto Hace que un componente inicie una operacin OLE de arrastrar y colocar. Sintaxis objeto.OLEDrag Dibuja el contenido de un archivo grfico (.bmp, .wmf, .emf, .cur, .ico o .dib) en un objeto Form, PictureBox o Printer. No acepta argumentos con nombre. Sintaxis: objeto.PaintPicture imagen, x1, y1, ancho1, alto1, x2, y2, ancho2, alto2, cdigoOp Devuelve, como un valor de tipo Integer Long, el color rojoverde-azul (RGB) delpunto especificado de un objeto Form o un control PictureBox. No acepta argumentos con nombre. objeto.Point(x, y) Presenta un men emergente en un objeto MDIForm o Form en la posicin actual del mouse o en las coordenadas especificadas. No acepta argumentos con nombre.Sintaxis
objeto.PopupMenu nombreMen, indicadores, x, y, negrita

OLEDrag

PaintPicture

Point

PopupMenu

PrintForm

Enva a la impresora una imagenbit a bit de un objeto Form. objeto.PrintForm Establece un punto de un objeto a un color especificado. objeto.PSet [Step] (x, y), [color] Fuerza el volver a dibujar un formulario o un control completo. objeto.Refresh Define el sistema de coordenadas para un control Form, PictureBox o Printer. No acepta argumentos con nombre.

Pset

Refresh

Scale ScaleX ScaleY

objeto.Scale (x1, y1) - (x2, y2) Convierten el valor del ancho o el alto de un control Form, PictureBox o Printer de una unidad de medida de la propiedad ScaleMode a otra. No aceptan argumentos con nombre. Sintaxis objeto.ScaleX (ancho, escalaOrigen, escalaDestino) objeto.ScaleY (alto, escalaOrigen, escalaDestino)

SetFocus

Mueve elenfoque al control o formulario especificado.Sintaxis objeto.SetFocus Presenta un objeto MDIForm o Form. No acepta argumentos con nombre. Sintaxis

Show

objeto.Show estilo, formularioPropietario Si estilo es 0, el formulario es no modal; si estilo es 1, el formulario es modal. Devuelve el alto de una cadena de texto tal y como se imprimira con la fuente actual de un objeto Form, PictureBox o Printer. No acepta argumentos con nombre. Sintaxis objeto.TextHeight(cadena) Devuelve el ancho de una cadena de texto tal y como se imprimira con la fuente actual de un objeto Form, PictureBox o Printer. No acepta argumentos con nombre. Sintaxis objeto.TextWidth(cadena) Asegura que el contenido del ltimo control del formulario es vlido antes de la existencia del formulario. Sintaxis objeto.ValidateControls

TextHeight

TextWidth

ValidateControls

Hace que el puntero del mouse adopte la forma de Qu es esto? y prepara la aplicacin para mostrar Ayuda de tipo Qu es esto? correspondiente al objeto seleccionado. Sntaxis objeto.WhatsThisMode Hace que el puntero del mouse adopte la forma de Qu es esto? y prepara la aplicacin para mostrar Ayuda de tipo Qu es esto? correspondiente al objeto seleccionado. Sintaxis objeto.WhatsThisMode Coloca un objeto MDIForm o Form, o un control al principio o al final del orden z dentro de su nivel grfico. No acepta argumentos con nombre. Sintaxis: objeto.ZOrder posicin

WhatsThisMode

ZOrder: 0 vbBringToFront 1 - vbSendToBack

Eventos de un formulario:

Activate

Ocurre cuando un objeto se convierte en la ventana activa. Private Sub objeto_Activate( ) Se produce cuando un usuario presiona y suelta un botn del mouse una o dos veces sobre un objeto. Private Sub Form_DblClick ( )

Click, DblClick

Deactivate DragDrop DragOver

ocurre cuando un objeto deja de ser la ventana activa. Private Sub objeto_Deactivate( ) Drop:Ocurre cuando se completa una operacin de arrastrar y colocar como resultado de arrastrar un control sobre un objeto y soltar el botn del mouse o usar el mtodo Drag con su argumento accin establecido a 2 (Drop). Sintaxis Private Sub Form_DragDrop(origen As Control, x As Single, y As Single)

Over:Ocurre cuando una operacin de arrastrar y colocar est en curso Private Sub Form_DragOver(origen As Control, x As Single, y As Single, estado As Integer) cuando un objeto recibe el enfoque, ya sea mediante una accin del usuario, como tabular o hacer clic en el objeto, o cambiando el enfoque en el cdigo mediante el mtodo SetFocus. cuando una aplicacin crea una instancia de un formulario Private Sub objeto_Initialize( ) Ocurren cuando el usuario presiona (KeyDown) o suelta (KeyUp) una tecla mientas un objeto tiene el enfoque. (Para interpretar los caracteres ANSI, utilice el evento KeyPress.) Private Sub Form_KeyDown(cdigoTecla mays As Integer) As Integer,

GotFocus

Initialize

Keypress KeyDown, KeyUp

LinkClose LinkError LinkExecute LinkOpen

Se utilizan para notificar al usuario sobre una conversacin DDE. Que termina(Close), envo una cadena de comandos(Execute),se produce un error durante una conversacin(Error) y cuando se est iniciando una conversacin DDE(Open). Tambin puede incluir informacin sobre solucin de problemas, sobre el restablecimiento de la conexin o dnde acudir en busca de asistencia. Para mostrar mensajes breves, utilice la funcin MsgBox. Carga en memoria un formulario o un control. Private Sub objeto_Load( ) Ocurren cuando el usuario presiona (MouseDown) o suelta (MouseUp) un botn del mouse. Ocurre cuando el usuario mueve el mouse. OLE: Vinculacin e incrustacin de objetos. La tecnologa que permite crear aplicaciones que contienen componentes de otras aplicaciones. Se produce cuando: -CompleteDrag: un componente de origen se coloca en un componente de destino

Load MouseDown MouseUp MouseMove

OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag

-DragDrop:se arrastra, -DragOver:se arrastra sobre otro, -GiveFeedback: ocurre despus de cada evento OLEDragOver. -SetData:en un componente de origen cuando un componente de destino realiza el mtodo GetData sobre el objeto DataObject del origen, pero antes de que se carguen los datos del formato especificado. -StartDrag:se ejecuta el mtodo OLEDrag de un componente o cuando inicia una operacin OLE de arrastrar y colocar

QueryUnload SetFocus

Ocurre antes de que se cierre un formulario o una aplicacin. Ocurre cuando un objeto pierde el enfoque, ya sea por una accin del usuario, como tabular o hacer clic en otro objeto, o bien mediante un cambio del enfoque en el cdigo con el mtodo SetFocus.

Private Sub Form_LostFocus( ) Private Sub objeto_LostFocus([ndice As Integer]) cuando todas las referencias a una instancia de un formulario se quitan de la memoria estableciendo a Nothing todas las variables que hacen referencia al objeto Private Sub objeto_Terminate( ) Ocurre cuando un formulario est a punto de quitarse de la pantalla. Cuando ese formulario se vuelve a cargar, el contenido de todos sus controles se reinicializa. Este evento se desencadena porque un usuario cierra el formulario mediante el comando Cerrar del men Control o una instruccin Unload. Unload Private Sub objeto_Unload(cancelar As Integer) Si cancelar es 0, el formulario se quita. Establecer cancelar a cualquier valor distinto de cero impide que el formulario se quite. Set cancel = 1
Pantalla de cdigo:

Terminate

1 parte combo de objetos en el formulario. Frames, CommandButtons, Labels y TextBox

2 parte combo de declaraciones y eventos asociados en este caso con el lblDatos. Esto se repite en cada uno de los elementos de cada uno de los componentes proyecto, cada uno con sus respectivas posibles declaraciones.

El primer evento que se dispara es el Load(). Ah vamos a declarar todas las acciones que deseamos que se hagan al visualizarlo por 1 vez. Hay dos formas de alterar las propiedades de un objeto, en diseo en el cuadro de propiedades del mismo o en tiempo de ejecucin por cdigo en alguno de los eventos, procedimientos o funciones.

En la ventana del formulario si deseamos ajustar y colocar grficamente los objetos cmodamente, podemos mejorar la cuadrcula en el men herramientas>opciones>General y ah cambiar las opciones de cuadrcula Ancho y Alto, poner un n ms bajo para reducir la separacin entre puntos. Por ejemplo 30, el antes (120) y el despus a la derecha (30)

Formulario MDI:

Multiple Document Interface. Un formulario MDI (interfaz de mltiples documentos) es una ventana que acta como fondo de una aplicacin y es el contenedor de formularios que tienen su propiedad MDIChild establecida a True. Es un tipo especial de formulario que engloba a otros llamados formularios secundarios. El formulario MDI es el contenedor de cualquier formulario secundario MDI de la aplicacin. Un formulario MDI se crea con el comando Agregar formulario MDI (ver imagen) del men Proyecto; un formulario secundario MDI se crea eligiendo Nuevo formulario en el men Archivo y, a continuacin, estableciendo la propiedad MDIChild a True. Una aplicacin slo puede tener un objeto MDIForm, pero varios formulariossecundarios MDI. Si un formulario secundario MDI tiene mens, la barra de mens del formulario secundario reemplazar automticamente a la barra de mens del objeto MDIForm cuando el formulario secundario MDI est activo. Un formulario secundario MDI minimizado se mostrar como un icono en el MDIForm. Un objeto MDIForm slo puede contener controles Menu y PictureBox, y controles personalizados que tengan una propiedad Align. Para colocar otros controles en un MDIForm, puede dibujar un cuadro de imagen en el formulario y despus dibujar otros controles dentro del cuadro de imagen. Puede usar el mtodo Print para mostrar texto en un cuadro de imagen de un MDIForm, pero no puede usar este mtodo para mostrar texto en el MDIForm propiamente dicho. Un objeto MDIForm no puede ser modal. Los formularios secundarios MDI se disean de forma independiente del MDIForm, pero siempre estn contenidos en el MDIForm entiempo de ejecucin.

Mi ejemplo anterior(proyecto 14-12-2012) es de la forma siguiente: a la izquierda con el fondo negro se ve el men del MDIform y a la derecha el resultado en el rbol de proyectos de agregar dicho formulario. Luego agregamos el men de archivo ( ver Agregar mens) para seleccionar entre visualizar frmListaClientes y frmListaArtculos segn pulsemos uno u otro. Para permitir que eso suceda he tenido que realizar varios cambios.

Eliminar las instrucciones de Unload que ejecutaba cada vez que cargaba un formulario que haca que se quitara de pantalla el otro. Establecer el valor de la propiedad de frmListaClientes y frmListaArtculos MDIChild a True, como ya comento mas arriba. Debemos cambiar la forma de mostrar ambos formularios. Disponemos de un botn en cada uno de ellos que nos muestra directamente el otro, pues debemos cambiar en el cdigo de dicho botn la forma en que se muestran, pues en un MDI los formularios no pueden ser Modales. El cdigo nuevo sera el de la derecha:

Modificar la propiedad ZOrder a 0 en el mtodo Activate de los dos formularios. Como en la imagen siguiente:

MsgBox

Es una ventana emergente que permite mostrar un mensaje o solicitar eleccin de opciones al usuario mediante determinados botones. La sintaxis es la siguiente MsgBox (prompt[, buttons][, title][, helpfile, context]) prompt: Dilogo o mensaje que muestra la ventana. 1024 caracteres incluye Chr(13) y Chr(10). Cadena de texto. buttons: opcional, especifica el n y tipo de los botones en la ventana. Predeterminado = 0 title: representa el ttulo del cuadro de dilogo. Cadena texto helpfile y context: opcionales pero se deben dar en conjunto. Cadena que identifica el archivo de Ayuda y Expresin numrica que es igual al nmero de contexto de Ayuda asignado por el autor al tema de Ayuda anterior.

Icono pregunta Question

o el icono de alerta

Icono de Informacin

Icono Critical

En button se pueden inclur mediante el signo + los siguientes parmetros:


Miembro OKOnly OKCancel AbortRetryIgnore YesNoCancel YesNo RetryCancel Critical Question Exclamation Information DefaultButton1 DefaultButton2 DefaultButton3 Valor 0 1 2 3 4 5 16 32 48 64 0 256 512 Descripcin Muestra slo el botn Ac eptar. Muestra los botones Ac eptar y Canc elar. Muestra los botones Anular, Reintentar y Omitir. Muestra los botones S, No y Canc elar. Muestra los botones S y No. Muestra los botones Reintentar y Canc elar. Muestra el ic ono Mensaje c rtic o. Muestra el ic ono Consulta de advertenc ia. Muestra el ic ono Mensaje de advertenc ia. Muestra el ic ono Mensaje de informac in. El primer botn es el predeterminado. El segundo botn es el predeterminado. El terc er botn es el predeterminado. Aplic ac in modal: el usuario debe responder al c uadro de mensaje antes de c ontinuar trabajando en la aplic ac in ac tual. Sistema modal: se suspenden todas las aplic ac iones hasta que el usuario responda al c uadro de mensaje. Espec ific a la ventana del c uadro de mensaje c omo ventana de primer plano. Texto alineado a la derec ha. Espec ific a que el texto debe aparec er para ser ledo de derec ha a izquierda en los sistemas rabe y hebreo.

ApplicationModal SystemModal MsgBoxSetForeground MsgBoxRight MsgBoxRtlReading

0 4096 65536 524288 1048576

Ejemplos en mi cdigo con su resultado por pantalla:

<--El cdigo de arriba El cdigo de abajo-->

Cajas de texto TextBox:

Se guarda en ellas lo que tecleamos. Para editar sus propiedades se usan estos y otros parmetros:

Alignment Appearence BackColor, Forecolor BorderStyle DataField: DataFormat: DataSource DragIcon DragMode Enabled Font Height, Width HelpCotextId HideSelection Index

determina la alineacin objeto.Alignment [= nmero] . Para los TextBox, VbeftJustify(0), VbRightJustify (1), Center(2). Establece el estilo de los controles de un objeto MDIForm o Form como plano o 3D. color de fondo y color de primer plano para texto y grficos. 0 Ninguno, 1 Simple Fijo, 2 (Predeterminado)Ajustable, 3 dilogo fijo, 4 ventana fija, 5 ventana de tamao ajustable. devuelve nombre de un campo al que ser enlazado un receptor de datos. objeto de un tipo de formato. Obj.Dataformat = ObjetoDeFormato enlaza con una base de datos. Objeto.DataSource [=dataSource] el icono de arrastrar. Objeto.DragIcon [=icono] modo de arrastre: normal o automtic si un objeto responde a eventos del usuario fuente de la letra alto y ancho obj.height [= numero] // obj.width [= numero] ayuda interactiva determina si el texto aparece resaltado o no. establece un n que identifica al objeto Left devuelve o establece la distancia entre el borde interno izquierdo de un objeto y el borde izquierdo de sucontenedor. Top: devuelve o establece la distancia entre el borde interno superior de un objeto y el borde superior de su contenedor. enlaza con un objeto establece atributos de solo lectura Devuelve o establece un valor que indica si existe un nmero mximo de caracteres que se pueden introducir en un control TextBox y, en caso afirmativo, especifica dicho valor mximo. establece o devuelve el icono del ratn establece posibilidad de introducir saltos de linea dentro de la TextBox. Hasta 32kb Devuelve o establece un valor que indica si las operaciones OLE de arrastrar y colocar las controla el componente o el programador. Mover datos de un lugar a otro arrastrando. Si aparecen los caracteres o no sentido de presentacion del texto. True or false

Left,Top

LinkItem readOnly MaxLength MouseIcon MultiLine

OLEDragMode PasswordChar RightToLeft

ScrollBars TabIndex Tabstop Text TooltipText Visible WhatsThisHelpID

Devuelve o establece un valor que indica si un objeto tiene barras de desplazamiento horizontal o vertical. True (tiene Hor/Vert/ambas) False(no). 0 pred.(ninguna) 1 Hor. 2 Ver 3 H&V Orden de tabulacin si el usuario puede usar tecla TAB para llevar el foco al objeto. el contenido de la caja de texto informacin sobre herramientas. visible u oculto Devuelve o establece un nmero de contexto asociado a un objeto. Se utiliza para dotar a las aplicaciones de Ayuda interactiva con el men emergente Qu es esto? de la Ayuda de Windows 95.

ListView: Propiedades,

mtodos y eventos

Propiedades nuevas no definidas o no comunes a los anteriores:

AllowColumnReorder

Devuelve o establece un valor booleano que determina si el usuario puede volver a ordenar las columnas mediante el mouse (ratn). valor que determina cmo se organizan los iconos en la vista Iconos o Iconos pequeos de un control

Arrange

ListView.lvwNone lvwAutoLeft LvwAutoTop

0 (Predeterminado) Ninguno. 1 Izquierda. 2 Superior

CausesValidation Checkboxes DragIcon

valor que determina si el evento Validate se producir en un segundo control desde el que est cambiando el enfoque. Booleano valor que determina si se muestran las casillas de verificacin. Booleano Devuelve o establece el icono que se presenta como puntero en una operacin de arrastrar y colocar. valor que determina si se usa el modo de arrastre manual 0 o automtico 1, en una operacin de arrastrar y colocar. Si puede responder a eventos generados por el usuario. Booleano determina la apariencia de la barra de desplazamiento en el objeto. (Bool) Devuelve o establece un valor que especifica si est seleccionada toda la fila. Booleano determina si se muestran lneas de cuadrcula en la vista Informe del control ListView. Booleano establece si los objetos ColumnHeader de un control ListView estn ocultos en la vista Informe. Booleano

DragMode Enabled FlatScrollBar FullRowSelect GridLines HideColumnHeaders

HideSelection HotTracking HoverSelection Index

determina si el texto seleccionado aparece resaltado cuando un control pierde el enfoque. Booleano determina si est activado el resalte sensible al puntero del ratn.(Bool) determina si se seleccionar un objeto ListItem cuando el puntero del mouse se site encima del mismo. (Bool) nmero que identifica inequvocamente un objeto de una coleccin. determina si el usuario puede modificar las etiquetas de los objetos ListItem o Node de un control ListView o TreeView. Automatic 0, manual 1 objeto.LabelEdit [ = entero]

LabelEdit

LabelWrap

determina si se produce o no ajuste de lnea en las etiquetas cuando un control ListView est en la vista Iconos. valor que indica si un usuario puede seleccionar mltiples objetos o elementos. (Bool) determina la alineacin de la imagen de un objeto. lvwTopLeft lvwTopRight 0 Esquina superior izquierda. 1 Esquina superior derecha. 2 Esquina inferior izquierda. 3 Esquina inferior derecha. 4 Centrado. 5 (Predeterminado) En mosaico.

MultiSelect

PictureAlignment

lvwBottomLeft lvwBottomRight lvwCenter lvwTile

Sorted

determina si los elementos de una coleccin estn ordenados. Booleano determina cmo se ordenan los objetos ListItem de un control ListView.

SortKey

Ordena mediante la propiedad Text del objeto Text.

>1 Ordena mediante el subelemento cuyo ndice de coleccin se especifica aqu. SortOrder TextBackground determina si los objetos ListItem de un control ListView se muestran en orden ascendente 0 o descendente 1. determina si el fondo del texto de un objeto ListItem es opaco 1 o transparente 0. Devuelve o estableceInformacin sobre herramientas. objeto.ToolTipText [= cadena]

ToolTipText

Mtodos de ListView:

Drag

Inicia, termina o cancela una operacin de arrastre de cualquier control excepto los controles Line, Menu, Shape, Timer o CommonDialog. No acepta argumentos con nombre. objeto.Drag accin vbCancel 0 Cancela la operacin de arrastre vbBeginDrag 1 Inicia el arrastre del objeto

vbEndDrag

2 Termina el arrastre y coloca el objeto

Busca y devuelve una referencia a un objeto ListItem de un control ListView. objeto.FindItem (cadena, valor, ndice, coincidencia) valor: FindItem lvwText 0 (Predeterminado) Hace coincidir la cadena con la propiedad Text de un objeto ListItem. lvwSubitem 1 Hace coincidir la cadena con cualquier cadena de la propiedad SubItems de un objeto ListItem. lvwTag GetFirstVisible Move OLEDrag Refresh SetFocus ShowWhatsThis StartLabelEdit ZOrder 2 Hace coincidir la cadena con cualquier propiedad Tag

Devuelve una referencia al primer objeto visible en el rea interna de un control. Mueve. objeto.Move izquierda, superior, ancho, alto Hace que un componente inicie una operacin OLE de arrastrar y colocar. Fuerza que se redibuje completamente un formulario o un control. Mueve elenfoque al control o formulario especificado. objeto.SetFocus men emergente Qu es esto? Permite al usuario modificar una etiqueta. Coloca un objeto MDIForm o Form, o un control al principio o al final del orden z dentro de su nivel grfico. No aceptaargumentos con nombre.

Eventos de ListView:

AfterLabelEdit BeforeLabelEdit

Se produce cuando un usuario termina(after) o intenta(before) de modificar la etiqueta del objeto Node o ListItem seleccionado actualmente. Private Sub objeto_AfterLabelEdit/objeto_BeforeLabelEdit (cancelar As Integer, nuevaCadena As String)

ColumnClick

cuando se hace clic en un objeto ColumnHeader de un control ListView. Slo est disponible en la vista Informe. Se produce cuando se hace clic en un objeto ListItem de un control ListView.

ItemClick

Private Sub objeto_ItemClick(ByVal elemento As ListItem) Ocurre cuando el foco cambia a un (segundo) control que tiene su propiedad CausesValidation establecida a True.

Validate

Private Sub objeto_Validate(mantenerFoco As Boolean)

Agregar elementos en un men:


El ejemplo de este tipo de Tarea es el pryecto Editor. El men estar compuesto por 4 mens de cabecera, el primero llamado "Archivo", el segundo "Edicin", el tercero utilidades (que no se

va a usar) y el ltimo "Ayuda"(que tampoco se usar). A su vez cada men tendr los siguientes submenues:

1.Archivo:
Cerrar "

Este men contendr los submens " Abrir ", " Guardar ", " Imprimir " y "

2.Edicin: Contendr los submens " Cortar ", " Copiar ", " Pegar ", " Seleccionar todo "

El cuadro de dilogo del editor de men de visual basic posee los siguientes campos para rellenar. Algunos son opcionales y otros son obligatorios, como la propiedad Caption y Name:

Caption: en este campo debemos colocar la leyenda que mostrar el men, es decir el
texto que mostrar el mismo. Si a una letra le anteponemos el smbolo &, indica que al pulsar la combinacin Alt+Tecla (siendo tecla la posterior a &) nos accede a dicho men. En nuestro caso, usamos las letras A, E, U e Y para cada uno de los cuatro

Name: en este campo debemos introducir un nombre para cada men. Este es
obligatorio y no puede estar duplicado ya que por medio de este nombre identificaremos al men en el cdigo. Nosotros estableceremos mnuArch para Archivo, y mnuE para Editar, cada uno de ellos con sus indices de orden, que representan el campo siguiente.

Index: en este campo que es opcional podemos introducir un nmero para formar
vectores de mens o arreglos de mens, en este ejemplo no se usa, por ejemplo para crear mens en forma dinmica en tiempo de ejecucin

Helpcontextid: este campo opcional podemos introducir un n para el tpico de ayuda,


por si el usuario presiona la tecla F1 justo cuando est posicionado en el men.

Shortcut: Podemos ingresar una tecla de acceso rpido al men para que se despliegue
el mismo automticamente, como por ejemplo Ctrl + a, Ctrl + b, etc...

Checked: este campo indica si el men tendr un tilde a la izquierda o no. Si est en
true lo muestra si est en False no. El campo es de tipo opcional.

Enabled: propiedad booleana que determina si el men est habilitado o no. Esta
propiedad es exactamente igual a la propiedad Enabled de cualquier control de visual basic. El campo por defecto, mejor dicho la propiedad est en True

Visible: propiedad opcional y de tipo booleana que determina si el men estar visible o
no. Esta propiedad es ideal para crear los mens contextuales o PopUp (mas adelante hay un ejemplo de como crear uno). Pasos a seguir:

1.Una vez abierto el editor de men, hay que ingresar los elementos que componen el
mismo. Para crear el men "Archivo" que es un men de cabecera o de nivel superior, debemos ingresar en la propiedad Caption la cadena &Archivo Ahora le asignaremos un nombre en el campo Name. Utilizaremos el prefijo mnu para luego poder distinguirlo fcilmente en el cdigo. Entonces ingresamos en este campo mnuArch, pero no le colocaremos el ndice. Porque no va a tener asociado ningn evento, solo desplegar el men del cual es cabecera.

2.El segundo paso ser ingresar los submens que estn por debajo del men archivo.
Para ello presionamos el botn "siguiente" donde ingresaremos el men "Abrir". Como este es un submen debemos indicarlo con el botn que tiene una flecha hacia la Derecha. Al presionarlo ahora el mismo se marca con una doble comilla (), para indicarnos que este men deriva o est contenido en el men de cabecera "Archivo". Ahora pasamos a ingresarle el nombre y la leyenda del men. En la propiedad Caption ingresamos Load y en el campo Name : mnuArch, sin olvidarse de colocar el Index con el primero de los valores que vamos a asignar: el 0.

3.Ahora repetimos los pasos anteriores para


ingresar los submens restantes del men Archivo como en la imagen que se puede ver aqu a la izquierda.

4.Si habrs observado los clsicos mens de


las aplicaciones, los submens se agrupan en secciones. Por ejemplo en el men archivo del

internet explorer, el submen Salir est separado del resto por una lnea. para lograr esto se debe crear un submen como cualquier otro justo arriba del men que queremos que aparezca la lnea divisoria, y en la propiedad caption del mismo le colocamos el carcter menos -

5.Ahora ingresaremos el cdigo para que muestre la leyenda en el control Label cada vez
que presionemos un men.

6.El men se va incorporando al formulario en tiempo de diseo como cualquier otro


control de visual basic. Para ingresar el cdigo necesario diremos que cada men responde a un evento llamado click y que se dispara cuando presionamos el men con el mouse o cuando le damos un enter, para ingresar el cdigo en el men "Abrir" le damos un click en el mismo men desde la ventana de diseo. Una vez abierta la ventana de cdigo aparecer una rutina como la siguiente: En este caso no incorporamos ningn cdigo pues el men Utilidades de nuestro ejemplo no llevar ninguna accin. Ahora vamos a ver como sera el cdigo de las acciones de dichos mens antes configurados. Cerramos el editor, y vemos que ya nos aparecen los mens configurados en la ventana de objetos. Vamos al men Archivo y hacemos clic en uno de los submens, y nos salta a la ventana de cdigo en el evento mnuArch_Click(), y ah es donde a travs del ndice Index, mediante un bucle switch decidiremos qu hacer en funcin de cual de los submens sern pussados.

Opciones del men Archivo:


Load: abrir un fichero o archivo de texto y cargarlo en el textBox(multiLine).

Declaramos dos variables de tipo cadena. Para Almacenar el nombre del fichero y el contenido ledo de cada lnea. Para el Load le corresponde el Index 0. Vamos a marcar los pasos bsicos y los controles que vamos a usar y sus caractersticas. Usaremos CommonDialog, TextBox (que ya se ha descrito anteriormente)

La ayuda:

Para usar la ayuda de VB tenemos que seleccionar la palabra en cuestin en el editor y pulsar F1 en el teclado. La ayuda se despliega mostrando el contenido correspondiente a dicha palabra.

Crear un informe simple utilizando DataReport


Paso 1 Crear la base de datos

Crear una tabla llamada Clientes en la base de datos xestin. Aadimos campos correspondientes a los datos de los clientes. Aadir algunos datos de clientes (insert)

Aadir el Datareport y Crear el reporte.


Pasos: Para poder ver el DataReport debemos en agregar componentes, click derecho sobre la barra componentes/componentes/diseadores/marcamos data Report y data environment. Se ha aadido una nueva carpeta llamada Diseadores a nuestro proyecto. Lo mejor es cambiarle el nombre por rptInformeConcepto, donde Concepto indicar a que se va a dedicar o qu mostrar el informe.

Aadir un reporte desde el men Proyecto, seleccionando la opcin DataReport. Para


agregarlo basta con ir al men (Proyecto/Agregar Data Report)

En la propiedad del botn imprimir lo asociamos con el rptInformeConcepto en el click


del botn . Se explica ms adelante. Hacemos clic con el botn derecho sobre el diseo y le desmarcamos forzar a la cuadrcula, de este modo podremos poner las cosas sin estar obligados por las extraas dimensiones que te indican los cuadros del diseo.

Seleccionar el Reporte y cambiarle el nombre a rptInforme(en el caso de muestra es el


nico informe del proyecto). Desde el men Explorador de proyecto se ver algo similar al siguiente grfico:

La vista del reporte est dividida por secciones: Encabezado del informe: aparece una vez al principio del informe (primera hoja/portada) Encabezado de la pgina (campoCabecera): aparece en la cabecera de cada pgina (nombre de los campos) Detalle (campoDetalles):Donde se visualizarn los datos de la tabla concreta de la base de datos xestin en cada uno de los campos de la cabecera. El pie de pgina. Podemos incluir datos del informe, como fecha, nmero de pgina, autor o seccin del propietario. Aparecer en todas las pginas del informe.

Al aadir un reporte al proyecto, en el Cuadro de controles de Visual Basic, ahora se aadi automticamente una pestaa con controles para el DataReport .

En este ejemplo solo se usarn los RptLabel, RptTextBox RptLine. El primero para usarlo en la seccin de Encabezados, y los textBox para mostrar los registros de la base de datos. Ahora en este paso se agregar un control rptLabel en la seccin de Encabezado de reporte ( El primero de todo ). Para ello dibujar un rptLabel en dicha seccin, si se quiere cambiarle el color de la fuente, el tamao etc.. eso es opcional y se puede hacer desde la ventana de propiedades de vb y tambin en tiempo de ejecucin. Para cambiar el texto del rptLabel, utilizar la propiedad Caption

La vista quedar algo as:

Nota: Se coloca una lnea con el control RptLine, para separar cada encabezado principal del resto. Ahora se agregarn los RptLabel mas en la seccin Encabezado de pgina. Estos label servirn para mostrar las columnas. En el DataField colocar el nombre de los campos de la base de datos que se haba creado. En nuestro caso se incluyen: ID, nombre, apellidos, direccin, poblacin, CP y en otra lnea el comentario. Se puede establecer un color y estilo de fuente a gusto desde la ventana de propiedades Ahora, se utilizar el control rptTextBox para la seccin de " Detalle ". Los rptTextBox, que sern lgicamente los mismos y del mismo tamao que los indicados en cabecera del informe. Se deben establecer los tamaos del mismo con las propiedades: Height:la altura del rptLabel o del rptTextBox, todas iguales y ajustadas al texto que incluye. As se ahorra papel al imprimir el informe. Left: nos dice donde se ubica el elemento con respecto al margen izquierdo. Width: es la anchura que va a ocupar el elemento. Top: nos indica la ubicacin del elemento con respecto al margen de la seccin correspondiente. En el formulario frmLista estarn enlazados mediante la propiedad DataField, a cada campo correspondiente de la tabla Clientes. Aadir los rptTextBox como se ve en el grfico:

Al aadirlos, el texto por defecto que visualiza es: " No enlazado " . Esto es por que todava no se ha especificado ningn campo para ese textbox en la propiedad DataField de los mismos. Cada elemento del campoDetalles se enlazar en el cdigo del commandButton Imprimir en frmLista.

Quedar mas o menos de esta forma:

Cdigo fuente en el formulario para visualizar el reporte


En este ltimo paso se aadir un commandButton en el formulario frmLista. Un botn ser para aadir un nuevo registro a la base de datos. Otro para eliminar un registro, y el otro para visualizar el informe. El Commandbutton para crear un nuevo registro renombrarlo a cmdNuevo(caption Nuevo) El Command para eliminar un registro renombrarlo a cmdEliminar(caption Eliminar) El Command para visualizar el informe renombrarlo a cmdReporte(caption Imprimir) Ms adelante se aadir un nuevo botn que alternar entre las distintas tablas de la base de datos, mediante la opcin de hacer loads y unloads en mtodo on_click() de dicho botn en cada uno de los frmListaConcepto. Vista del formulario:

Ahora aadir desde el men del frmListaClientes (en este caso) en el click del botn imprimir cmdImprimir, el cdigo siguiente para que al pulsar se cree el reporte correspondiente.

Vamos a mostrar un diseo y su resultado correspondiente.

Los Mdulos
Ms cosas sobre VB6: los mdulos son elementos solamente con cdigo, sin representacin grfica, que engloban un conjunto de variables, instrucciones o funciones que se definen, se pueden acceder y se emplean desde y en todo el proyecto. Todas las variables declaradas en sus funciones se pierden fuera de ellas, para eso debemos declararlas fuera de ellas si es lo que necesitamos. Hemos usado varios tipos de mdulos. Al hacer clic derecho sobre nuestro proyecto en Agregar nos aparecen (ver imagen). Mdulo de clase: Mdulo que contiene la definicin de una clase (sus definiciones de propiedad y mtodo). Mdulo de cdigo: Mdulo que contiene cdigo pblico que se puede compartir entre todos los mdulos de un proyecto. Los mdulos de cdigo se denominan mdulos estndar en versiones posteriores de Visual Basic. Mdulo de formulario: Archivo en un proyecto de Visual Basic con una extensin de nombre de archivo .frm que puede contener descripciones grficas de un formulario; sus controles y sus valores de propiedad; declaraciones a nivel de formulario de constantes, variables y procedimientos externos; eventos y procedimientos generales. Mdulo de objeto: Mdulo que contiene un cdigo especfico a un objeto, por ejemplo, mdulo de clase, mdulo de formulario y mdulo de documento. Los mdulos objeto contienen el cdigo detrs de sus objetos asociados. Las reglas para mdulos objeto difieren de las de los mdulos estndar.

Las clases difieren de los mdulos estndar en la forma de almacenar los datos. Nunca hay ms de una copia de los datos de un mdulo estndar. Esto significa que cuando una parte del programa modifica una variable pblica de un mdulo estndar y otra parte del programa la lee despus, obtendr el mismo valor. Por otra parte, los datos de un mdulo de clase existen por separado para cada instancia de la clase, es decir, por cada objeto creado a partir de la clase. Segn el mismo razonamiento, los datos de un mdulo estndar tienen el alcance del programa; es decir, existen durante toda la ejecucin del programa, mientras que los datos de cada instancia de un mdulo de clase slo existen durante la duracin del objeto; se crean cuando se crea el objeto y se destruyen cuando se destruye el objeto. Por ltimo, las variables declaradas Public en los mdulos estndar son visibles desde cualquier parte del proyecto, mientras que slo puede tener acceso a las variables Public de los mdulos de clase si dispone de una variable de objeto que contenga una referencia a una instancia concreta de una clase. Hemos usado los mdulos de cdigo (Mdulos) para definir mtodos en varios proyectos, por ejemplo para conectarnos a la base de datos, para leer un elemento o varios de una base de datos, pues son mtodos que seran llamados varias veces y desde varios sitios. En el mdulo estn accesibles para todos los objetos del proyecto donde se ubica el mdulo por lo que podemos decir que son reutilizables. A la hora de definirlos se tiene en cuenta ese detalle: van a ser usados varias veces, para ello se va a evitar programar particularizando para una tarea y se harn procedimientos genricos.

Conexin de objetos ADODB.


Conceptos:
El objeto de conexin ADO se utiliza para crear una conexin abierta a un origen de datos. A travs de esta conexin, se puede acceder y manipular una base de datos. Si desea acceder a una base de datos varias veces, hay que establecer una conexin mediante el objeto Connection.Tambin puede establecer una conexin con una base de datos pasando una cadena de conexin a travs de un objeto Command o registros.Sin embargo, este tipo de conexin slo es buena para una consulta especfica, nica.

Objeto Connection Programa


Public Function AccederBD() As ADODB.Connection Dim sCad As String On Error GoTo errorAbrindo sCad = "Driver={MySQL ODBC 5.2w Driver};" & _ "Server=" & mvarServidor & ";" & _ "Port=" & mvarPuerto & ";" & _ "Database=" & mvarBaseDatos & ";" & _ "UID=" & mvarUsuario & ";" & _ "Password=" & mvarPasswd & ";" Set mvarConector = New ADODB.Connection mvarConector.CommandTimeout = 30 mvarConector.CursorLocation = 1 mvarConector.ConnectionString = sCad mvarConector.Open Set AccederBD = mvarConector Exit Function errorAbrindo: Set AccederBD = Nothing Err.Clear End Function

Propiedades: Propiedad Descripcin Attributes Establece o devuelve los atributos de un objeto Connection CommandTimeout Establece o devuelve el nmero de segundos de espera al intentar ejecutar un comando ConnectionString Establece o devuelve los detalles utilizados para crear una conexin a una fuente de datos ConnectionTimeout Establece o devuelve el nmero de segundos de espera para una conexin se abra CursorLocation Establece o devuelve la ubicacin del servicio cursor DefaultDatabase Establece o devuelve el nombre de la base de datos predeterminada IsolationLevel Establece o devuelve el nivel de aislamiento Mode Establece o devuelve el permiso de acceso proveedor

Provider Establece o devuelve el nombre del proveedor State Devuelve un valor que describe si la conexin est abierta o cerrada Version Devuelve el nmero de versin de ADO Mtodos Mtodo Descripcin BeginTrans Inicia una nueva transaccin Cancel Cancela una ejecucin Close Cierra una conexin CommitTrans Guarda los cambios y finaliza la transaccin actual Execute Ejecuta una consulta de texto, declaracin, procedimiento o proveedor especfico Open Abre una conexin OpenSchema Devuelve informacin de esquema del proveedor acerca del origen de datos RollbackTrans Cancela cualquier cambio en la transaccin actual y finaliza la transaccin Eventos Nota: No se puede controlar eventos mediante VBScript o JScript (slo Visual Basic, Visual C + + y Visual J + + lenguas pueden manejar eventos). Evento Descripcin BeginTransComplete Se activa despus de la operacin BeginTrans CommitTransComplete Se activa despus de la operacin CommitTrans ConnectComplete Se activa despus de una conexin comienza Disconnect Se activa despus de una relacin termina ExecuteComplete Se activa despus de que un comando ha terminado de ejecutarse InfoMessage Se activa cuando se produce una advertencia durante una operacin de ConnectionEvent RollbackTransComplete Se activa despus de la operacin RollbackTrans WillConnect Se activa antes de que una conexin se inicia WillExecute Se activa antes de que se ejecute un comando

Objeto Command
El objeto Command de ADO se utiliza para ejecutar una consulta contra una base de datos nica.La consulta se puede realizar acciones como crear, agregar, recuperar, eliminar o actualizar registros. Si la consulta se utiliza para recuperar los datos, los datos se devuelven como un objeto RecordSet. Esto significa que los datos recuperados pueden ser manipulados por las propiedades, colecciones, mtodos y eventos del objeto Recordset. La principal caracterstica del objeto Command es la capacidad de utilizar las consultas y procedimientos almacenados con parmetros.

Programa:
Public Function LeerMiBD(miTabla As String, Optional campoAleer As String, Optional valorCampoAleer As String) As ADODB.Recordset Dim cRex As ADODB.Recordset Dim cCmd As ADODB.Command Set cCmd = New ADODB.Command cCmd.ActiveConnection = mvarConector cCmd.CommandType = 1

If Trim(campoAleer) <> "" And Trim(valorCampoAleer) <> "" Then cCmd.CommandText = "select * from " & miTabla & _ " where " & campoAleer & " = " & valorCampoAleer Else

cCmd.CommandText = "select * from " & miTabla End If Set cRex = New ADODB.Recordset cRex.Open cCmd, , adOpenDynamic, adLockOptimistic Set LeerMiBD = cRex End Function
Propiedades Propiedad Descripcin ActiveConnection Establece o devuelve una definicin para una conexin si la conexin est cerrada, o el objeto de conexin actual si la conexin est abierta CommandText Establece o devuelve un comando de proveedor CommandTimeout Establece o devuelve el nmero de segundos de espera al intentar ejecutar un comando CommandType Establece o devuelve el tipo de un objeto Command Name Establece o devuelve el nombre de un objeto Command Prepared Establece o devuelve un valor booleano que, si se establece en True, indica que el comando debe guardar una versin preparada de la consulta antes de la primera ejecucin State Devuelve un valor que describe si el objeto Command es abierto, cerrado, la conexin, la ejecucin o la recuperacin de datos Mtodos Mtodo Descripcin Cancel Cancela la ejecucin de un mtodo CreateParameter Crea un nuevo objeto Parameter Execute Ejecuta la consulta SQL o procedimiento en la propiedad CommandText Colecciones Coleccin Descripcin Parameters Contiene todos los objetos de los parmetros de un objeto de comando Properties

Contiene todos los objetos de propiedad de un objeto de comando

Objeto Recordset
El objeto ADO Recordset se utiliza para mantener un conjunto de registros de una tabla de base de datos. Un objeto Recordset constar de registros y las columnas (campos). En ADO, este objeto es el ms importante y el ms usado para manipular los datos de una base de datos.

Programa:
Dim cRex As ADODB.Recordset Dim inDex As String Set cRex = miA.LeerMiBD(tablaBD, "cliId", _ frmListaClientes.lvClientes.SelectedItem.Text)

If cRex.EOF = False Then

' estas sentencias se ejecutan mientras no se llegue al final de los campos 'del registro RECORDSET leido ' el puntero del registro cRex esta apuntando en este caso al primero de los 'registros en la BD ' si deseasemos leer una nueva fila de la tabla, debemos hacer un 'cRex.MoveNext para apuntar al next frmClientes.TxtDatos(0) = cRex.Fields("cliId") frmClientes.TxtDatos(1) = cRex.Fields("cliComent") frmClientes.TxtDatos(2) = cRex.Fields("cliApe") frmClientes.TxtDatos(3) = cRex.Fields("cliNome") frmClientes.TxtDatos(4) = cRex.Fields("cliDir") frmClientes.TxtDatos(5) = cRex.Fields("cliPoblacion") frmClientes.TxtDatos(6) = cRex.Fields("cliCP") ' con estas sentencias asignamos cada campo (fields(id)) DEL RECORDSET a la 'caja de texto correspondiente de nuestro formulario End If

Al abrir por primera vez un conjunto de registros, el puntero del registro actual apuntar al primer registro y las propiedades BOF y EOF son falsas. Si no hay registros, las propiedades BOF y EOF son True . Objetos Recordset admite dos tipos de actualizaciones: Actualizacin inmediata- todos los cambios se escriben inmediatamente en la base de datos una vez que se llama al mtodo Update. La actualizacin por lotes- el proveedor almacenar en cach mltiples cambios y luego enviarlos a la base de datos con el mtodo UpdateBatch. En ADO hay 4 diferentes tipos de cursores definidos: Dynamic cursor - Le permite ver las adiciones, cambios y eliminaciones por otros usuarios. Keyset cursor - Al igual que un cursor dinmico, excepto que usted no puede ver las adiciones por otros usuarios, e impide el acceso a los registros que otros usuarios han sido eliminados. Cambios en los datos de otros usuarios todava ser visible. Static cursor- Proporciona una copia esttica de un conjunto de registros para que usted pueda utilizar para encontrar datos o generar informes. Las adiciones, cambios o supresiones de otros usuarios no ser visible. Este es el nico tipo de cursor permite cuando se abre un objeto Recordset de cliente. Forward-only cursor - Le permite desplazarse hacia delante slo a travs del Recordset. Las adiciones, cambios o supresiones de otros usuarios no ser visible. El tipo de cursor se puede establecer mediante la propiedad CursorType o por el parmetro CursorType en el mtodo Open. Nota: No todos los proveedores soportan todos los mtodos y propiedades del objeto Recordset. Propiedades Propiedad Descripcin AbsolutePage Establece o devuelve un valor que especifica el nmero de pgina en el objeto Recordset AbsolutePosition Establece o devuelve un valor que especifica la posicin ordinal del registro actual en el objeto Recordset ActiveCommand Devuelve el objeto Command asociado con el conjunto de registros ActiveConnection Establece o devuelve una definicin para una conexin si la conexin est cerrada, o el objeto de conexin actual si la conexin est abierta BOF Devuelve true si la posicin del registro actual es antes del primer registro, de lo contrario falso Bookmark Establece o devuelve un marcador. El marcador guarda la posicin del registro actual

CacheSize Establece o devuelve el nmero de registros que se pueden almacenar en cach CursorLocation Establece o devuelve la ubicacin del servicio cursor CursorType Establece o devuelve el tipo de cursor de un objeto Recordset DataMember Establece o devuelve el nombre del miembro de datos que se recupera del objeto al que hace referencia la propiedad DataSource DataSource Especifica un objeto que contiene datos que se representa como un objeto Recordset EditMode Devuelve el estado de edicin del registro actual EOF Devuelve true si la posicin del registro actual es posterior al ltimo registro, de lo contrario falso Filter Establece o devuelve un filtro para los datos en un objeto Recordset Index Establece o devuelve el nombre del ndice actual de un objeto Recordset Locktype Establece o devuelve un valor que especifica el tipo de bloqueo al editar un registro en un Recordset MarshalOptions Establece o devuelve un valor que especifica qu registros deben ser devueltos al servidor MaxRecords Establece o devuelve el nmero mximo de registros para devolver un objeto Recordset desde una consulta PageCount Devuelve el nmero de pginas de datos en un objeto Recordset PageSize Establece o devuelve el nmero mximo de registros permitidos en una sola pgina de un objeto Recordset RecordCount Devuelve el nmero de registros en un objeto Recordset Sort Establece o devuelve los nombres de campo en el conjunto de registros para ordenar Source Establece un valor de cadena o una referencia de comandos de objeto, o devuelve un valor de tipo String que indica el origen de datos del objeto Recordset Estate Devuelve un valor que describe si el objeto Recordset est abierto, cerrado, la conexin, la ejecucin o la recuperacin de datos Estatus Devuelve el estado del registro actual con respecto a las actualizaciones por lotes u otras operaciones a granel StayInSync Establece o devuelve si la referencia a los registros secundarios cambiar cuando los padres los cambios de posicin de registro Mtodos Mtodo Descripcin AddNew Crea un nuevo registro Cancel Cancela una ejecucin CancelBatch Cancela una actualizacin por lotes CancelUpdate Cancela los cambios realizados en un registro de un objeto Recordset Clone Crea un duplicado de un objeto Recordset existente Close Cierra un conjunto de registros CompareBookmarks Compara dos marcadores Delete Borra un registro o un grupo de registros Find Busca un registro en un conjunto de registros que cumple con los criterios especificados GetRows Copias mltiples registros de un objeto Recordset en una matriz de dos dimensiones GetString Devuelve un conjunto de registros como una cadena Move Mueve el puntero de registro de un objeto Recordset MoveFirst Mueve el puntero de registro al primer registro MoveLast Mueve el puntero de registro al ltimo registro MoveNext Mueve el puntero de registro al registro siguiente MovePrevious Mueve el puntero de registro al registro anterior

NextRecordset Borra el objeto Recordset actual y devuelve el objeto Recordset siguiente por recorrer a travs de una serie de comandos. Open Abre un elemento de base de datos que da acceso a los registros de una tabla, los resultados de una consulta, o para un conjunto de registros guardado Requery Actualiza los datos en un conjunto de registros de volver a ejecutar la consulta que hizo el conjunto de registros originales Resync Actualiza los datos del conjunto de registros actual de la base de datos original Save Guarda un objeto Recordset en un archivo o un objeto Stream Seek Busca el ndice de un conjunto de registros para buscar un registro que coincida con los valores especificados Supports Devuelve un valor booleano que define si un objeto Recordset admite un tipo especfico de funcionalidad Update Guarda todos los cambios realizados en un solo registro de un objeto Recordset UpdateBatch Guarda todos los cambios en un conjunto de registros a la base de datos. Se usa cuando se trabaja en modo de actualizacin por lotes Eventos Nota: No se puede controlar eventos mediante VBScript o JScript (slo Visual Basic, Visual C + + y Visual J + + lenguas pueden manejar eventos). Evento Descripcin EndOfRecordset Se activa cuando se intenta mover a un registro despus del ltimo registro FetchComplete Se activa despus de que todos los registros de una operacin asincrnica se han exagerado FetchProgress Se activa peridicamente en una operacin asincrnica, para indicar cuntos registros que se han exagerado FieldChangeComplete Se activa despus de que el valor de un cambio objeto Field MoveComplete Se activa despus de la posicin actual en el conjunto de registros ha cambiado RecordChangeComplete Se activa despus de un registro ha cambiado RecordsetChangeComplete Se activa despus de que el conjunto de registros ha cambiado WillChangeField Se activa antes de que el valor de un cambio objeto Field WillChangeRecord Se activa ante un cambio de registro WillChangeRecordset Se activa antes de un cambio de registros WillMove Se activa antes de la posicin actual en los cambios de registros Colecciones Coleccin Descripcin

Fields Indica el nmero de objetos Field en el objeto Recordset Properties Contiene todos los objetos propiedad del objeto Recordset

Propiedades de Fields del Recordset

Propiedad Count

Descripcin Devuelve el nmero de elementos de la coleccin de campos.Empieza en cero. Ejemplo: countfields = cRex.Fields.Count

Item (named_item / nmero)

Devuelve un elemento especificado en la coleccin de campos. Ejemplo: itemfields = cRex.Fields.Item (1) o itemfields = cRex.Fields.Item ("Nombre")

Propiedades de Properties del Recordset Propiedad Count Descripcin Devuelve el nmero de elementos de la coleccin de campos.Empieza en cero. Ejemplo: countprop=cRex.Properties.Count Item (named_item / nmero) Devuelve un elemento especificado en la coleccin de campos. Ejemplo: itemprop = cRex.Properties.Item(1) o itemprop=cRex.Properties.Item("Name")

Fuentes y enlaces de inters:


http://www.recursosvisualbasic.com.ar (documentacin y el formato del documento) http://www.elguille.info/vb/cursos_vb/basico/indice.htm (documentacin) http://www.w3schools.com/ado (para objetos ADO) http://www.aivosto.com/vbtips/regex.html (para expresiones regulares) http://www.vb6.us/ (documentacin sobre VB6) http://msdn.microsoft.com/en-us/library/kehz1dz1%28v=vs.80%29.aspx (msdn en lnea) Todos los proyectos realizados en clase. (cdigo y capturas)

Potrebbero piacerti anche