viernes, 26 de septiembre de 2008

Nombres de Dominio y Web Hosting


Empezaremos por definir que es el web hosting

Buscando en Internet me encontré con esta definición: “Actividad comercial que consiste en ofrecer almacenamiento, conectividad y otros servicios necesarios para alojar los archivos de un sitio web”

Algunas otras personas lo definen como “Es el sitio donde se van a guardar los archivos de los que hará uso tu pagina de Internet (“sitio web” o simplemente “web”)”

Nombres de dominio

Para que el web hosting funcione de modo “Bonito” necesita que las personas que quieran entrar a tu página web puedan acceder a ella de una manera que sea fácil de recordar para eso usamos los nombres de dominio. Para que quede mas claro imaginemos que contratamos el servicio de un web hosting, ellos nos darán una dirección del tipo 200.33.123.112 o bien 200.33.123.112/~misitio la cual será usada para acceder a nuestra pagina de Internet.

Entonces pensemos que a uno de nuestros clientes le damos una dirección del tipo 200.33.123.112/~misitio para que entre a nuestra página web. Siendo yo cliente, sinceramente lo olvidaría al primer minuto después. Para eso ocupamos los nombres de dominio, un nombre de dominio convierte esto 200.33.123.112/~misitio en esto www.misitio.com bastante diferente, ¿no?

En resumen

Pero bueno, todo esto es algo raro para las personas que no están muy relacionadas con los servicios de web hosting, así que nos encargaremos de ponerlo en palabras que toda persona que hable español lo comprenda, y hasta de un modo muy burdo si quieres, como dice un amigo mío:

Web hosting: Es como si tuvieras un disco duro virtual en Internet, en otras palabras, es la bodega donde guardaras todas tus cosas.

Nombre de dominio: www.misitio.com Es el nombre que pondrás fuera de tu bodega para que todo mundo la identifique. Este nombre NO se puede repetir con ninguna otra página web.

Leer más...

sábado, 20 de septiembre de 2008

ERP - Ejemplos 2/2

<-- Atras

mySAP ERP

mySAP ERP combina el software de Planificación de Recursos Empresariales (ERP en inglés) más completo, flexible y escalable de todo el mundo con una plataforma de tecnología abierta que puede aprovechar e integrar diversos sistemas, tanto de SAP como de terceros. Esta aplicación, líder entre los sistemas ERP en México, proporciona funcionalidad de software end-to-end para el manejo de la empresa, además de soporte para la gestión de sistemas, todo ello sobre la base de la plataforma SAP NetWeaver.

mySAP ERP comprende cuatro soluciones independientes que brindan soporte a procesos de negocio clave: mySAP ERP Financials, mySAP ERP Human Capital Management, mySAP ERP Operations y mySAP ERP Corporate Services.

Conozca más sobres las características de estas soluciones
ERP:

ERP para PyMEs

La solución mySAP ERP ha sido mejorada con funcionalidades específicas de cada industria y mejores prácticas basadas en tres décadas de experiencia de SAP. El sistema ERP para pequeñas y medianas empresas permite que las organizaciones reduzcan el costo total de propiedad, obtengan retornos sobre la inversión con mayor rapidez y se beneficien con una infraestructura informática más flexible que contribuya a impulsar innovaciones. Además, esta solución ERP ofrece una aplicación completa diseñada para brindar soporte a operaciones internacionales de manera tal que las empresas puedan operar y competir a nivel mundial con eficiencia y alcanzar el éxito.

Asimismo, un conjunto de autoservicios de mySAP ERP se integrará con herramientas de productividad de Microsoft Office a través de un proyecto de desarrollo conjunto entre SAP y Microsoft cuyo nombre en clave es Mendocino. Mendocino está disponible para clientes selectos desde el último trimestre de 2005.

ERP de Informat

El SAI ha servido como herramienta fundamental de control operativo y ha sido la fuente de información administrativa para la toma de decisiones empresariales desde 1994.

El SAI es el sistema para empresas pequeñas y medianas que le ofrece el más alto COSTO-BENEFICIO.
El SAI es un sistema probado en empresas industriales, comercializadoras y de proyectos.
El SAI viene en su versión estándar con el módulo de BANCOS, PUNTO DE VENTA y DIRECCIÓN integrados por el mismo precio, además de contar con módulos opcionales de PRODUCCIÓN, MANTENIMIENTO DE MAQUINARIA Y VEHÍCULOS, y eCOMMERCE.
El SAI incluye además sin costo adicional un nuevo módulo con opciones CRM para el manejo de prospectos y seguimiento de cotizaciones para un adecuado control de los vendedores de su empresa y desus oportunidades de venta.
El SAI se especializa en la administración integral y en la parte operacional de su empresa, por lo que se asegura que adquiere el mejor sistema para estos propósitos, además de enlazarse con los mejores sistemas contables y de nóminas del mercado, como por ejemplo, el Contpaq ® y Nomipaq®.

El SAI es un sistema abierto que permite adecuaciones especiales de su empresa.
El SAI está diseñado para manejarse por medio de CÓDIGO DE BARRAS.

El SAI le permite enviar directamente por mail cualquier formato de impresión y reporte del sistema y además exportarlo a diversos formatos como Excel ® , Word ® , PDF y HTML, manteniendo su diseño original .
El SAI es un sistema muy fácil de usar, por ser un sistema 100% Windows.
El SAI está preparado para usarse en empresas con múltiples localizaciones o sucursales operando en línea vía internet o con cualquier enlace en conjunto con la tecnología de Windows Server®.

MAPICS, Inc.

Innovación Práctica para Empresas Industriales

Con su Casa Matriz en Alpharetta, Georgia, USA, oficinas alrededor del globo y una red internacional de 75 empresas afiliadas, MAPICS, Inc. desarrolla y da soporte a aplicaciones de empresas extendidas, específicamente diseñadas para compañías industriales de porte medio. Las aplicaciones MAPICS posibilitan que empresas de alta tecnología (High Tech) y de manufactura compleja (Complex Manufacturing) compitan mejor, haciendo más eficientes sus procesos de negocios, maximizando los recursos de su organización y extendiendo su actividad más allá de sus cuatro paredes para ejecutar un trabajo colaborativo con sus socios de la cadena de valor.

Con 20 años de probada experiencia en manufactura y tecnología, MAPICS ha liderado las soluciones y servicios dirigidos a la manufactura hasta generar sus soluciones de planificación de recursos de la empresa (ERP) y más recientemente, el comercio colaborativo basado en el concepto de Innovación Práctica. MAPICS incorpora permanentemente a sus aplicaciones, funcionalidades decisivas para dar respuesta a los requerimientos del crecimiento vertiginoso y de la alta competencia que impone un mercado globalizado. Diseñada para satisfacer las necesidades de las empresas industriales, la arquitectura flexible de MAPICS permite que sus clientes aprovechen sus inversiones en tecnología preexistente y adopten las nuevas tecnologías al ritmo que mejor responda a sus requerimientos.

Dando soporte a miles de clientes en 70 países, MAPICS es una de las soluciones más utilizadas en el mercado mediano de manufactura en el mundo. Entre los clientes de MAPICS se encuentran: Anaren Microwave, Inc., Ashley Furniture Industries, Inc., Bayer Corporation, Dirona SP, Dukane Corp., Goodrich Corporation, Hartzell Propeller, Inc., Honda Motor Co., Ltd., SmithKline Beecham, Volvo Corp., y YORK International Corporation.

<-- Atras

Leer más...

viernes, 19 de septiembre de 2008

ERP - Definición 1/2

¿Qué es un ERP?
Una aplicación ERP en la actualidad no solo debe apoyar la planeación de la producción, sino debe apoyar todas y cada una de las áreas estratégicas de la empresa, atender el ambiente organizacional, los procesos de control y los métodos de evaluación, siempre con el objetivo de hacerlos más efectivos y eficientes.

Una empresa cuenta con diferentes recursos: humanos, tecnológicos, materiales, financieros e información. A medida que las empresas crecen, el proceso de control de dichos recursos se hace complicado. Ante esta circunstancia, la tecnología de la información ofrece como solución la implementación de los ERP (Enterprise Resource Planning o Planeación de Recursos de la Empresa). Un ERP es un sistema de información integral que incorpora los procesos operativos y de negocio. El propósito fundamental de un ERP es otorgar apoyo a los clientes del negocio, tiempos rápidos de respuesta a sus problemas así como un eficiente manejo de información que permita la toma oportuna de decisiones y disminución de los costos totales de operación.

Hay tres características que distinguen a un ERP y eso es que son sistemas integrales, modulares y adaptables:

  • Integrales, porque permiten controlar los diferentes procesos de la compañía entendiendo que todos los departamentos de una empresa se relacionan entre sí, es decir, que el resultado de un proceso es punto de inicio del siguiente. Por ejemplo, en una compañía, el que un cliente haga un pedido representa que se cree una orden de venta que desencadena el proceso de producción, de control de inventarios, de planeación de distribución del producto, cobranza, y por supuesto sus respectivos movimientos contables. Si la empresa no usa un ERP, necesitará tener varios programas que controlen todos los procesos mencionados, con la desventaja de que al no estar integrados, la información se duplica, crece el margen de contaminación en la información (sobre todo por errores de captura) y se crea un escenario favorable para malversaciones. Con un ERP, el operador simplemente captura el pedido y el sistema se encarga de todo lo demás, por lo que la información no se manipula y se encuentra protegida.

  • Modulares. Los ERP entienden que una empresa es un conjunto de departamentos que se encuentran interrelacionados por la información que comparten y que se genera a partir de sus procesos. Una ventaja de los ERP, tanto económica como técnicamente es que la funcionalidad se encuentra dividida en módulos, los cuales pueden instalarse de acuerdo con los requerimientos del cliente. Ejemplo: Ventas, Materiales, Finanzas, Control de Almacén, etc.

  • Adaptables. Los ERP están creados para adaptarse a la idiosincrasia de cada empresa. Esto se logra por medio de la configuración o parametrización de los procesos de acuerdo con las salidas que se necesiten de cada uno. Por ejemplo, para controlar inventarios, es posible que una empresa necesite manejar la partición de lotes pero otra empresa no.

Los fabricantes de ERP deben enfrentar dos desafíos: adaptar técnicamente su producto para poder ejecutarse en cualquier plataforma existente en el mercado y garantizar que el ERP se adecuará funcionalmente a los procesos del negocio, cualquiera que sea el giro de la empresa. Esto último se logra ya sea mediante la configuración de los módulos estándar (ventas, inventarios, tesorería), la implementación de add-ons o módulos especializados (medios masivos, transporte, servicios públicos, aeronáutica) o bien, por medio de desarrollos en el lenguaje propietario del ERP.

Adelante -->

Leer más...

viernes, 12 de septiembre de 2008

Hablemos de Mantenimiento, Tipos

¿Que es el mantenimiento?

Son acciones para mejorar aspectos operativos relevantes de un establecimiento, producto, etc. tales como funcionalidad, seguridad, productividad, comfort, imagen corporativa, salubridad e higiene.

Mantenimiento de interrupción-
La gente lo espera hasta que el equipo falla.

Mantenimiento preventivo - Se realiza a diario (Limpieza, inspección, engrasado, etc.) Se divide en periódico y profético.

Mantenimiento periódico "Basado en tiempo TBM" -
El equipo debe ser constantemente revisado para evitar problemas repentinos.

Mantenimiento profético - Se predice la vida del servicio o pieza para ser reemplazados una vez que llegaron a su limite.

Mantenimiento correctivo - Mejora del equipo y sus componentes a modo que se nos permita realizar mantenimiento preventivo confiablemente.

Mantenimiento al ordenador.

Las computadoras son equipos muy delicados, de modo que constantemente se les tiene que estar dando mantenimiento a sus partes físicas para evitar deterioros, futuros, existe una gran variedad de métodos para hacer mantenimiento al computador, en esta ocacion trataremos, el aire comprimido y las espumas limpiadoras.

Aire comprimido.

Podemos utilizar botellas como la que aparece en la imagen.


o bien podemos usar compresoras eléctricas.



En cualquier caso lo único que tenemos que hacer es desarmar el computador (mientras mas desarmado mejor, solo recuerda donde va cada pieza) e impulsar el polvo que este dentro de el para hacerlo salir de nuestro CPU, recuerda que por ningún motivo se debe soplar con la boca el interior, ya que las partículas de saliva podrían ocasionar un corto circuito, lo cual dañaría el equipo.

Para dar mantenimiento por la parte externa al ordenador, no es recomendable usar trapos húmedos, por lo mismo de las partículas de agua, lo recomendable es usar espumas limpiadoras, como la de la imagen


El modo de uso es simple, solo basta con depositar un poco de la espuma sobre una tela seca, y con ello limpiar el ordenador, así de simple.


El directorio y buscador de Mexico
Leer más...

lunes, 8 de septiembre de 2008

File System Object, FSO

A través del File System Object o Modelo de Objetos del Sistema de Archivos es posible manipular (crear, modificar, mover y eliminar) directorios y archivos, así como también obtener información de las mismos. Lo más importante es el poder manipular datos en estas estructuras.

Este modelo de objetos se encuentra contenido en una biblioteca de tipos llamada Scripting (Scrrun.dll), la cual permite la manipulación de archivos de texto mediante el objeto TextStream aunque para manipular archivos binarios se utiliza el comando Open con el indicador Binary.

Este Modelo de objetos tiene los siguientes objetos:

  • Drive
  • Folder
  • Files
  • FileSystemObject
  • TextStream

Para utilizar este Modelo es necesario:

  • Utilizar el método CreateObject o dimensionar una variable como objeto tipo FileSystemObject y crear un objeto.
    1. Set fso = CreateObject("Scripting.Objeto_FileSystemObject")
    2. Dim fso As New FileSystemObject
  • Utilizar el método adecuado en el objeto creado.
  • Es necesario tener acceso a las propiedades del objeto.

Nota: Este Modelo de objetos es redundante, es decir, los siguientes escenarios tienen el mismo objetivo:

  • Copiar un archivo utilizando el método CopyFile del Objeto FileSystemObject
  • Copiar un archivo utilizando el método Copy del objeto File

Las siguientes constantes son utiles para los argumentos la manipular objetos FSO:

 Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 3
Const TristateUseDefault = -2
Const TristateTrue = -1

Drive

A través de este objeto es posible obtener información de las unidades lógicas, el espacio que tienen libre, o si son unidades compartidas.

    Set fsoTmp = fso.GetDrive(fso.GetDriveName(unidad.Drive))
MsgBox fsoTmp.VolumeName
MsgBox "Espacio total : " & FormatNumber(fsoTmp.TotalSize / 1024, 0) & "kb"
MsgBox "Espacio libre : " & FormatNumber(fsoTmp.FreeSpace / 1024, 0) & "kb"

Folder

A través de este objeto es posible crear, eliminar o mover directorios, también es posible obtener la ruta y nombres de estos.

Crear directorio:

 Private Sub cmdMakeDir_Click()
fso.CreateFolder ("c:\" & txtDir)
End Sub

¿Existe el directorio o se creo?

 Set fsoTmp = fso.GetFolder("c:\" & txtDir)
If fso.FolderExists(fsoTmp) Then
MsgBox "Existe"
Else
MsgBox "No existe"
End If

Files

A través de este objeto es posible crear, eliminar o mover archivos, también es posible obtener la ruta y nombres de estos.

Abrir un archivo:

    Set fsoTmp = fso.CreateTextFile("c:\" & txtDir & "\" & txtFile, True)
Set fsoTmp = fso.OpenTextFile("c:\" & txtDir & "\" & txtFile, 2)

    Set fsoTmp = fso.GetFile("c:\" & txtDir & "\" & txtFile)
Set fsoX = fsoTmp.OpenAsTextStream(2, -2)

Escribir datos en un archivo:

    Set fsoTmp = fso.GetFile("c:\" & txtDir & "\" & txtFile)
Set fsoX = fsoTmp.OpenAsTextStream(2, -2)
fsoX.Write (txtData) 'Escribe una línea
fsoX.WriteLine (txtData2) 'Escribe una linea con un caracter de nueva línea
fsoX.WriteBlankLines (5) 'Escribe 5 caracteres de nueva línea
fsoX.Close

Leer datos de un archivo:

    Set fsoTmp = fso.GetFile("c:\sol\test.txt")
Set fsoX = fso.GetFile("c:\sol\test.txt").OpenAsTextStream(ForReading)
txtFileData = fsoX.ReadLine
fsoX.Close

FileSystemObject

Objeto primordial, el cual permite crear, eliminar y obtener información, además de controlar unidades, directorios y archivos.

 Set fso = CreateObject("Scripting.FileSystemObject")

TextStream

A través de este objeto es posible leer y escribir archivos de texto.

Tipos de Acceso a Archivos

Visual Basic tiene 3 tipos de acceso a archivos:

  1. Secuencial, lee y escribe archivos de texto en bloques continuos.

    Es posible abrir un archivo para acceso secuencial para realizar las siguientes tareas:

    • Leer caracteres desde un archivo (Input)
    • Escribir caracteres a un archivo (Output)
    • Agregar caracteres a un archivo (Append)

    Si utiliza Input el archivo debe existir o de lo contrario se produce un error.

    Si utiliza Output o Append la instrucción Open primero crea el archivo y después lo abre.

    Una vez que el archivo fué abierto con Input, Output o Append es necesario cerrarlo con la instrucción Close.

  2. Aleatorio, lee y escribe archivos binarios de texto o estructurados como registros de longitud fija.
  3. Binario, lee y escribe archivos estructurados de forma arbitraria.

El código que se presenta a continuación, espera que el usuario capture el contenido para el archivo MsFileName, y al dar clic en el botón [Write] almacena en el archivo MsFileName el contenido del txtWrite.

Al dar clic en el botón [Read Line], muestra la primer línea que contiene el archivo MsFileName en txtRead.

Al dar clic en el botón [Read By Line], lee el contenido del archivo MsFileName línea por línea y lo muestra en txtLine, además se indica el número de línea que se va leyendo.

 Option Explicit
Dim MsPathName As String
Dim MsFileName As String
Dim MsAux As String
Private Sub Form_Load()
MsPathName = "C:\"
MsFileName = "FileName.txt"
sBar.SimpleText = "Type the content of the file"
End Sub
Private Sub cmdWrite_Click()
Open MsPathName & MsFileName For Output As #1
Write #1, txtWrite
Close #1
sBar.SimpleText = "The content was added"
End Sub

Private Sub cmdRead_Click()
Open MsPathName & MsFileName For Input As #1
Input #1, MsAux
Close #1
txtRead = MsAux
sBar.SimpleText = "Now you can see the content of the file"
End Sub
Private Sub cmdReadLine_Click()
Dim LsNextLine As String
Dim LnCount As Integer
LnCount = 1
Open MsPathName & MsFileName For Input As #1
Do Until EOF(1)
Line Input #1, LsNextLine
txtLine = txtLine & LnCount & " : " & LsNextLine & vbNewLine
LnCount = LnCount + 1
Loop
Close #1
End Sub
Leer más...

El componente ActiveX

Los Componentes ActiveX son fragmentos de código reutilizable y datos conformado por uno o más objetos creados mediante la tecnología ActiveX.

Los componentes ActiveX interactúan con la aplicación y entre sí mediante una relación Cliente-Servidor, donde el cliente es el código de aplicación o componente que utiliza las características de un componente y el servidor es el componente y los objetos que tiene asociados.

Un componente ActiveX implementado como parte de un archivo ejecutable (.exe) es un servidor fuera de proceso y se ejecuta en su propio proceso.

Un componente ActiveX implementado como biblioteca de vínculos dinámicos (.dll) es un servidor en proceso y se ejecuta en el mismo proceso que la aplicación cliente.

Las aplicaciones que no cruzan los límites del proceso para acceder a sus propiedades, métodos y eventos de un objeto son más rápidas (servidores en proceso).

Ejemplo : Excel

  • Project » References
  • Seleccionar Microsoft Excel <versión> Object library
  • Agregue el siguiente código:
 Private Sub Form_Load()
Dim cAxExcelApp As Excel.Application
Dim cAxExcelBook As Excel.Workbook
Dim cAxExcelSheet As Excel.Worksheet

Set cAxExcelApp = New Excel.Application
Set cAxExcelBook = cAxExcelApp.Workbooks.Add
Set cAxExcelSheet = cAxExcelBook.Worksheets.Add

cAxExcelSheet.Cells(1, 1).Value = "www.informatique.com.mx"
cAxExcelSheet.Cells(2, 1).Value = "Visual Basic 6"
cAxExcelSheet.Cells(3, 1).Value = "Componentes ActiveX"

cAxExcelSheet.SaveAs "c:\ejExcel.xls"

cAxExcelBook.Close

cAxExcelApp.Quit

Set cAxExcelApp = Nothing
Set cAxExcelBook = Nothing
Set cAxExcelSheet = Nothing
End Sub

Al emplear una variable de la clase genérica Object, ActiveX usa enlaces en tiempode ejecución, lo que puede acelerar las referecnias a objetos.

Asignar una referencia de objeto mediante CreateObject

 Set variableObjeto = CreateObject(nombreClaseCalificadoObjeto)

Asignar una referencia de objeto mediante GetObject

 Set variableObjeto = GetObject(nombreRuta,nombreClaseCalificadoObjeto)

Blogazos.com. Lo Mejor de los Blogs en Español
Leer más...

martes, 2 de septiembre de 2008

Convertir una imagen NRG a ISO en Ubuntu con "NRG2ISO"

Para empezar necesitamos instalar el programa que nos auxiliara en el proceso su nombre “Nrg2Iso” Tienes varias opciones:

  1. Abrir el gestor de paquetes Synaptic (Sistema – Administración – Gestor de Paquetes Synaptic) buscar la aplicación Nrg2Iso e instalarla

  2. En la consola escribe $ sudo aptitude install nrg2iso

  3. Haciendo clic en Instalar Nrg2Iso

Este programa no lo encontraras en el menu de “Aplicaciones” asi que mejor no perdamos el tiempo en buscarlo, el modo para hacer trabajar el paquete es desde la consola, de modo que la abrimos (Aplicaciones – Accesorios – Terminal) una ves dentro la sintaxis para utilizar el programa es la siguiente:

$ nrg2iso imagen.nrg imagen.iso

Recomiendo que te desplaces hasta la carpeta donde esta el archivo de imagen para que te sea mas fácil la escritura del nombre del archivo, otra recomendación es que no uses espacios en los nombres de carpeta ni en el nombre de la imagen, solo para evitar cualquier problema que se pueda presentar.

Si todo sale bien depues de escribir $ nrg2iso imagen.nrg imagen.iso Comenzará a correr el porcentaje de avance de la transformación, al llegar al 100% tendrás la imagen lista.


Leer más...

lunes, 1 de septiembre de 2008

Eventos del objeto Connection

Clase

Un Objeto Visual Basic se crea a partir de una Clase, por lo tanto un objeto es una instancia de una clase. Para utilizar un objeto se debe mantener una referencia a este mediante una variable de objeto.

La Clase define las interfaces de un objeto y si este es público.

Las descripciones de las Clases se almacenan en bibliotecas de tipos y es posible verlas con el explorador de proyectos [Ctrl] + [R] o File/View/Project Explorer.

Interfaz

Una interfaz es el conjunto de propiedades y métodos de un objeto.

Public Class

Se declara una clase de tipo publica para poder cambiar los datos pertenecientes a un objeto mediante su interfaz (propiedades y métodos).

Private Class

Se declara una clase de tipo privada para ocultar los datos a el código que no pertenece al objeto.

Crear una Clase

Para crear una Clase en VB6 es necesario agregar un Módulo de Clase de la misma forma que agrega un formulario.

Los datos de cada instancia de un módulo de clase sólo existen durante la duración del objeto, es decir, se crean cuando se crea el objeto y se destruyen cuando se destruye el objeto.

Agregar propiedades y métodos a una clase

Las propiedades representan datos de un objeto y los métodos representan acciones que un objeto puede realizar definiendo su comportamiento, juntos representan la interfaz de la clase.

Propiedades

Agregar propiedades a una Clase significa agregar variables públicas al módulo de clase

 Public nombreVariable1 as tipo
Public nombreVariable2 as tipo
Public nombreVariable3 as tipo

Si las variables se declaran como Private significa que sólo podrán ser accesibles desde el código del módulo de la clase.

 Private nombreVariable4 as tipo
Private nombreVariable5 as tipo
Private nombreVariable6 as tipo

Cuando escriba el nombre del objeto y después el símbolo punto (.) se desplegaran únicamente las propiedades públicas del objeto, las privadas no se presentan.

Para acceder al valor de una propiedad se utiliza un procedimiento llamado Property Get, para establecer el valor de una propiedad se utiliza el procedimiento Property Let para el caso de propiedades de tipo objeto se utiliza Property Set.

 Public Property Let nombrePropiedad(ByVal nuevoValor as tipo)
nombrePropiedad
End Property

Propiedad de solo lectura

Para crear una propiedad de solo lectura, se debe omitir el procedimiento Property Let y para las variables de objeto el procedimiento Property Set.

Propiedades Predeterminadas

Una Propiedad Predeterminada es aquella propiedad del objeto que no necesita escribirse explícitamente para asignarle un valor tan sólo basta el nombre del objeto para asignarle valor, por ejemplo los controles Label y Text tienen propiedades predeterminadas por lo que es posible escribir:

 Label1 = "etiqueta"
Text1 = "Texto"

Lo anterior también es posible haciendo referencia explícita de la propiedad a la cual deseamos asignarle valor:

 Label1.Caption = "etiqueta"
Text1.Text = "Texto"

Agregar eventos a una clase

Los eventos se declaran mediante la palabra reservada Event, un evento puede tener argumentos ByVal y ByRef.

Las propiedades y métodos pertenecen a las interfaces entrantes y los eventos a las interfaces salientes.

Ejemplo de Clase

  • Agregue un módulo de clase, llamado Persona y agregue el siguiente código:

     Option Explicit

    Public sNombre As String
    Public nEdad As Integer
    Public dFechaNac As Date
    Private nSalario As Long
    Private nNomina As Long

    Property Let asignarNomina(nNumero)
    nNomina = nNumero
    End Property

    Property Get obtenerNomina() As Long
    obtenerNomina = nNomina
    End Property

    Property Let asignarSalario(nCantidad)
    nSalario = nCantidad
    End Property

    Property Get obtenerSalario() As Long
    obtenerSalario = nSalario
    End Property
  • Agregue los siguientes controles a un formulario:

    1. txtNombre
    2. txtEdad
    3. txtFechaNac
    4. lblNomina
    5. lblSalario
  • En el evento Load del formulario agregue el siguiente código:

     Option Explicit
    Dim cEmpleado As Persona
    Private Sub Form_Load()
    Set cEmpleado = New Persona
    cEmpleado.sNombre = "Gerardo Ángeles Nava"
    cEmpleado.nEdad = 33
    cEmpleado.dFechaNac = #9/21/1971#
    cEmpleado.asignarNomina = 90276094
    cEmpleado.asignarSalario = 54321

    txtNombre = cEmpleado.sNombre
    txtEdad = cEmpleado.nEdad
    txtFechaNac = cEmpleado.dFechaNac

    lblNomina = cEmpleado.obtenerNomina
    lblSalario = cEmpleado.obtenerSalario
    End Sub
  • Ejecute la aplicación [F5].

Polimorfismo

Los objetos Visual Basic pueden implementar interfaces adicionales para proporcionar polimorfismo, es decir, permite manipular diferentes tipos de objetos sin preocuparse del Tipo. Las interfaces múltiples permiten que los programas evolucionen con el tiempo, agregando nueva funcionalidad sin afectar el código existente.

El Polimorfismo significa que muchas clases pueden proporcionar la misma propiedad o el mismo método y quien invoca no tiene porque saber la clase a la que pertenece el objeto antes de llamar a la propiedad o método, por ejemplo suponga que existe la Clase Vehículo y las clases Automovil y Motocicleta, tanto Automovil como Motocicleta tienen en común el método Mover, estos objetos posiblemente son del tipo Vehículo.

En un Lenguaje Orientado a Objetos el Polimorfismo es posible a través de la Herencia, pero en el caso de Visual Basic que no es un Lenguaje Orientado a Objetos no utiliza la Herencia para proporcionar Polimorfismo, sino que lo proporciona mediante múltiples interfaces ActiveX. Una Interfaz es un conjunto de propiedades y métodos relacionados.

Al construir el método Mover puede ser que reciba como parámetro un objeto Mover(ByVal Distancia as Object) por lo que Visual Basic compila una parte de código adicional para preguntar si el objeto incorpora el método invocado o pueder ser que el método pertenece a la interfaz Vehículo y todas sus clases de Vehículo implementan esta interfaz para enlazarlos en tiempo de diseño Mover(ByVal Distancia as Vehículo).

Clase Abstracta

Una clase Abstracta es aquella que no tiene código de implementación, el propósito de que no tenga código es proporcionar una plantilla de interfaz que pueda agregar a otras clases, de esta manera se construye después el código requerido para cumplir un objetivo.

Visual Basic no puede crear realmente una clase Abstracta, ya que una clase Abstracta es una clase a partir de la cual no puede crear objetos, pero en Visual Basic es posible crear objetos de clases que no contengan código, por lo tanto deberá tener cuidado al tratar de simular este concepto.

Para que sea posible implementar una interfaz, por ejemplo Vehículo en la clase Automovil se debe emplear la palabra reservada Implements:

 Implements Vehículo 'Esto se escribe en la clase Automovil

Lo anterior significa que se compromete a implementar los métodos y propiedades de la interfaz Vehículo, por lo que será necesario anteceder al nombre del método o propiedad el nombre de la interfaz seguido de un guión bajo (_) y del nombre del método o propiedad.

 Private Sub Vehiculo_Mover(ByVal Distancia As Double)
rem código
End Sub

Si no implementa los métodos y propiedades entonces Visual Basic marcara un error indicando que es necesario hacer la implementación de métodos y propiedades.

Es necesario declarar los métodos y propiedades de tipo Private porque si se declararán como Public formarian parte de la interfaz Automovil o Motociclea y tendrian el mismo enlace original.

Ejemplo : Método que devuelve Valor

La clase abstracta Vehiculo contiene el código:

 Option Explicit
Public Function Mover(ByVal Distancia As Double) As Double
Rem Carece de Código
End Function

La clase Automovil implementa la clase Vehiculo:

 Option Explicit
Implements Vehiculo
Private Function Vehiculo_Mover(ByVal Distancia As Double) As Double
Vehiculo_Mover = Distancia
End Function

La clase Motocicleta implementa la clase Vehiculo:

 Option Explicit
Implements Vehiculo
Private Function Vehiculo_Mover(ByVal Distancia As Double) As Double
Vehiculo_Mover = 12.34
End Function

El código del formulario contiene:

 Option Explicit
Dim MotoCross As Motocicleta
Dim Porsche As Automovil
Dim V As Vehiculo

Private Sub Form_Load()
Set MotoCross = New Motocicleta
Set V = MotoCross
MsgBox "La Motocicleta se movio : " & V.Mover(5)

Set Porsche = New Automovil
Set V = Porsche
MsgBox "El automovil se movio : " & V.Mover(10)
End Sub

Ejemplo : Implementar Propiedades

Agregue una propiedad a la clase Abstracta Vehiculo:

 Public nVelocidad As Double

Visual Basic implementa las propiedades como parejas de procedimientos de propiedad:

    Get
    Let o Set

Por lo anterior es necesario implementar ambos procedimientos en las clases que implementan la clase Vehiculo:

 Implements Vehiculo
Private nVelMoto As Double

Private Property Get Vehiculo_nVelocidad() As Double
Vehiculo_nVelocidad = nVelMoto
End Property
Private Property Let Vehiculo_nVelocidad(ByVal nArgVelocidad As Double)
nVelMoto = nArgVelocidad
End Property

¿Que devuelve el siguiente código?

    Dim Byke As Motocicleta
Dim Veh As Vehiculo
Set Byke = New Motocicleta
Set Veh = Byke
MsgBox TypeName(Veh)

Salida: Motocicleta

Devuelve Motocicleta porque al asignar Byke a Veh Visual Basic internamente evalua si Motocicleta acepta la interfaz Vehiculo si no acepta la interfaz se genera un error, si acepta la interfaz el objeto se asigna a la variable y a través de esta solo se accede a los métodos y propiedades de la interfaz Vehiculo.

Procure no hacer uso para estos casos de un objeto genérico Object pues la variable declarada de este tipo solo accede a la última interfaz asignada.

Reutilización de Código

Es posible reutilizar código mediante las formas Binario y Origen.

Binario

La reutilización de código Binario es posible mediante la creación y uso de un objeto, por ejemplo los controles. COM es otro mecanismo para la reutilización de código binario, llamado agregación, la cual utiliza una interfaz completa sin modificaciones y quien proporciona la implementación es una instancia de la clase agregada, Visual Basic no acepta esta forma de reutilización de código. Los componentes ActiveX son otro mecanismo más en la reutilización de código y en la programación orientada a objetos.

Un objeto se destruye cuando se libera la última referencia al mismo, para ello Visual Basic efectua el seguimiento de referencias a objetos para saber cuando se libera la última referencia a un objeto, lo cual no es muy fiable, lo más fiable es la información que proporciona COM cuando el recuento de referencias es o no cero, esto sucede cuando se produce un error en el evento Terminate del objeto.

Por lo anterior se recomienda:

  • Declarar variables de objeto como tipos de clases en vez de As Object
  • No utilizar el objeto Collection por si solo, ya que las referecnias se almacenan en variables Variant que al igual que las variables declaradas As Object pueden contener referecnias a objetos de cualquier clase.
  • Cree sus propias clases de colección que acepten objetos de una única clase.
  • Organice los objetos de forma jerárquica, para realizar su recorrido.
  • No declare variables As New, si utiliza una variable así después de haberla establecido a Nothing, Visual Basic crea otro objeto.

Origen

La reutilización de código fuente es posible crearlo copiando y modificando el código origen.

Is

El operador Is se utiliza para comparar si dos variables hacen referencia al mismo objeto, ejemplo:

 Dim vLbl As Variant
Set vLbl = Label1
MsgBox vLbl Is Label1

Lo anterior regresa el valor True.

Friend

Además de declarar propiedades o métodos de tipo Public o Private, es posible declararlos como Friend, de esta manera actuan como miembros Public, es decir, parecen parte de la interfaz de una Clase pero no lo son.

Al no ser parte de la interfaz de un objeto las propiedades o métodos Friend los programas que utilizan los objetos del componente no pueden tener acceso a estos, pero son visibles para todos los demás objetos del componente, por lo que permiten una comunicación interna segura.

Parent

La propiedad Parent devuelve una referencia al contenedor del objeto. Cada propiedad Parent de un objeto hijo mantiene una referencia al objeto padre, por lo que no se podrá destruir ninguno de los objetos.

Para poder eliminar las referencias es posible establecer un método de limpieza del objeto padre, el cual establezca todas las propiedades de objeto a Nothing así como también los objetos Collection.

Cuando se destruye un objeto Collection Visual Basic establece todas las referencias de objeto que contenia a Nothing.

Tenga cuidado con los objetos que se compongan de otros objetos porque de nuevo no se podrán destruir los objetos, lo cual llevaria a tener más métodos de limpieza al nivel de los hijos.



Directorio de Blogs de México
Leer más...

Lectura de archivos de Access

El siguiente código muestra como leer un archivo Access, tenga en cuenta lo siguiente:

  1. Nombre del archivo Access : NWIND.MDB
  2. El archivo NWIND.MDB se encuentra localizado en el mismo directorio de la aplicación
  3. Es necesario crear una Referencia para hacer uso de los objetos Connection y Recordset
    • Seleccionar del menú principal Project » References
    • Seleccionar Microsoft ActiveX Data Objects 2.0 Library
  4. Los controles a utilizar son:
    • TextBox txtProductId
    • TextBox txtProductName
    • TextBox txtUnitPrice
    • CommandButton cmdConectar
    • CommandButton cmdConsulta
    • CommandButton cmdFirst
    • CommandButton cmdAnterior
    • CommandButton cmdSiguiente
    • CommandButton cmdLast
    • StatusBar sbMsg
   Option Explicit
Dim conexion As Connection
Dim rsConexion As Recordset

Private Sub cmdConectar_Click()
On Error GoTo miManejadorErr
Set conexion = New Connection
conexion.Provider = "Microsoft.Jet.OLEDB.4.0"
conexion.ConnectionString = "Data Source = NWIND.MDB"
conexion.CursorLocation = adUseClient
conexion.Open
sbMsg.SimpleText = "Conectado a la fuente de datos"
miManejadorErr:
If Err.Number > 0 Then
Dim strErr
strErr = strErr & "Description : " & Err.Description & Chr(13)
strErr = strErr & "HelpContext : " & Err.HelpContext & Chr(13)
strErr = strErr & "Number : " & Err.Number & Chr(13)
strErr = strErr & "Source : " & Err.Source & Chr(13)
sbMsg.SimpleText = strErr
Resume Next
End If
End Sub

Private Sub cmdConsulta_Click()
On Error GoTo miManejadorErr
Dim comProd As Command
Set comProd = New Command
comProd.ActiveConnection = conexion
comProd.CommandText = "Select * from Products"
Set rsConexion = comProd.Execute
txtProductId.Text = rsConexion!productid
txtProductName.Text = rsConexion!ProductName
txtUnitPrice.Text = rsConexion!UnitPrice
sbMsg.SimpleText = "Consultando..."

miManejadorErr:
If Err.Number > 0 Then
Dim strErr
strErr = strErr & "Description : " & Err.Description & Chr(13)
strErr = strErr & "HelpContext : " & Err.HelpContext & Chr(13)
strErr = strErr & "Number : " & Err.Number & Chr(13)
strErr = strErr & "Source : " & Err.Source & Chr(13)
MsgBox strErr
Resume Next
End If
End Sub

Private Sub cmdDesconectar_Click()
On Error GoTo miManejadorErr
conexion.Close
Set conexion = Nothing
sbMsg.SimpleText = "Desconectado de la fuente de datos"
miManejadorErr:
If Err.Number > 0 Then
Dim strErr
strErr = strErr & "Description : " & Err.Description & Chr(13)
strErr = strErr & "HelpContext : " & Err.HelpContext & Chr(13)
strErr = strErr & "Number : " & Err.Number & Chr(13)
strErr = strErr & "Source : " & Err.Source & Chr(13)
MsgBox strErr
Resume Next
End If
End Sub

Private Sub cmdAnterior_Click()
If rsConexion.AbsolutePosition = 1 Then
sbMsg.SimpleText = "No hay registros anteriores"
Else
rsConexion.MovePrevious
txtProductId.Text = rsConexion!productid
txtProductName.Text = rsConexion!ProductName
txtUnitPrice.Text = rsConexion!UnitPrice
sbMsg.SimpleText = "Registro número : " & rsConexion.AbsolutePosition
End If
End Sub
Private Sub cmdFirst_Click()
rsConexion.MoveFirst
txtProductId.Text = rsConexion!productid
txtProductName.Text = rsConexion!ProductName
txtUnitPrice.Text = rsConexion!UnitPrice
End Sub
Private Sub cmdLast_Click()
rsConexion.MoveLast
txtProductId.Text = rsConexion!productid
txtProductName.Text = rsConexion!ProductName
txtUnitPrice.Text = rsConexion!UnitPrice
End Sub

Private Sub cmdSiguiente_Click()
If rsConexion.AbsolutePosition = rsConexion.RecordCount Then
sbMsg.SimpleText = "No hay más registros"
Else
rsConexion.MoveNext
txtProductId.Text = rsConexion!productid
txtProductName.Text = rsConexion!ProductName
txtUnitPrice.Text = rsConexion!UnitPrice
End If
End Sub

Directorio Web
Mitote.com.mx :: Directorio web
Leer más...

Controles ActiveX

Crear una interface de usuario para un control ActiveX es similar a crear una forma estándar Visual Basic, se colocan los controles necesarios y se provee el código que define su comportamiento.

Controles

Los Controles son objetos reutilizables que incluyen elementos visuales y código, con Visual Basic es posible crear formas y cajas de diálogo. Los Controles deben ser colocados en algún tipo de contenedor como una forma o una aplicación.

Clases de Controles

Un control creado en Visual Basic es conocido como Control Class, el cual actua como una plantilla para el control. El Control Class es compilado dentro de un archivo .ocx, para utilizar el control en una aplicación, se coloca el control en la forma, la cual crea una instancia en tiempo de diseño del control, cuando el usuario ejecuta la aplicación que contiene el control, el usuario obtiene una instancia en tiempo de ejecución del control.

Archivos de Proyecto

El código fuente y los valores de las propiedades para un control class son almacenados en un archivo de texto con extensión .ctl. Un archivo .ctl es equivalente a un archivo Visual Basic .frm que es utilizado para almacenar los elementos gráficos en las formas.

Un Visual Basic ActiveX control project puede contener uno o más archivos .ctl cada uno de los cuales define un control class separado, cuando se compila un control project es creado un archivo .ocx que contiene todos los controles del proyecto.

Un control ActiveX incluye un objeto UserControl y constituent controls

Pasos para crear un ActiveX Control

  1. Crear un ActiveX Control project
  2. Crear la interfaz de usuario para el control
  3. Crear las propiedades y métodos para el control
  4. Crear los procedimientos de eventos que constituyen el control
  5. Exponer eventos del control
  6. Crear páginas de propiedades para el control
  7. Probar y buscar errores en el control

El objeto UserControl

El objeto UserControl es el fundamento para contruir controles. Cada ActiveX control que es creado con Visual Basic contiene un objeto UserControl

El objeto UserControl contiene modulos de código y visual designers, cuando se abre un UserControl en modo diseño el objeto es desplegado en una ventana visual designer, es posible utilizar el visual designer para colocar constituent controls en el objeto UserControl tal y como se haria en una forma Visual Basic.

Constituent Controls

Un Constituent Controls es una isntancia de un control que se coloca en un objeto UserControl, cuando se coloca un ActiveX en una forma, una instancia del objeto UserControl es creada, junto con las instancias de cualquier Constituent Controls colocado en el objeto UserControl.

Eventos UserControl

Un control ActiveX es un cliente que se ejecuta en una forma o en algún otro tipo de contenedor, por lo tanto sus eventos se comportan un tanto diferentes que los eventos de control de un proyecto .exe estándar.

Al crear un control el objeto UserControl actua como un anteproyecto para colocar el control en una forma o en otro contenedor, se utiliza este anteproyecto para crear una instancia del control, cuando el control es creado una serie de eventos de control ocurren.

Evento AmbientChanged

El evento AmbientChanged ocurre cuando una propiedad de ambiente cambia. Para habilitar al control para responder a cualquier cambio a las propiedades de ambiente del contenedor en tiempo de diseño, se coloca el código en el evento AmbientChanged, este evento tiene un argumento PropertyName que identifica cual de las propiedades cambio.

Objeto Ambient

El objeto Ambient permite leer los valores de las propiedades de ambiente.

La Propiedad Enabled

La propiedad Enabled es otra propiedad de ambiente a considerar al diseñar el control. Para el soporte correcto de esta propiedad es necesario escribir los procedimientos Get y Let para la propiedad Enabled que delegan la disponibilidad del control para el objeto UserControl.

Características de los Controles

Visual Basic provee varias propiedades y un evento que son posibles utilizar para administrar la apariencia del control, por ejemplo es posible establecer el valor de la propiedad BackStyle del objeto UserControl para hacer transparente un control, sólo debe tenerse en cuenta que esto puede afectar el desempeño del control, también por ejemplo la mayoria de los controles tienen una interfaz de usuario visible aunque es posible crear un control que sea invisible en tiempo de ejecución para ello se establece la propiedad InvisibleAtRuntime del objeto UserControl.

Para evitar desajustes en tamaño de los controles estos deben responder al evento Resize para que trabaje en conjunto con la aplicación contenedora, también será necesario proveer un manejador de errores para el evento.

Los controles ActiveX pueden tener una propiedad llamada About que puede ser utilizada de manera informativa, como el nombre de la empresa que creo el control, derechos de autor, fecha de creación, etc.

Para mostrar un bitmap personalizado en el Visual Basic Control Toolbox, se utiliza la propiedad ToolboxBitmap del objeto UserControl, el bitmap debe tener un tamaño de 16 por 15 pixeles, si utiliza otro tamaño será escalado a este tamaño.

Visual Basic incluye un Wizard para crear un control y permite especificar que propiedades, métodos y eventos que podrían constituir la definición de la interfaz del control, para utilizarlo seleccione del menú principal:

Add-Ins » Add-In Manager » VB 6 ActiveX Ctrl Interface Wizard » Loaded/Unloaded

Crear un Control ActiveX

  1. Crear un nuevo proyecto, seleccionar ActiveX control
  2. Cambiar el nombre del ActiveX a un nombre descriptivo con el prefijo ctl
  3. Colocar controles y escribir el código necesario
  4. Debbuging test, seleccionando la opción Use existing browser
  5. Agregar un proyecto Standard EXE
  6. Seleccionar del menú principal Window » NombreProyecto - NombreActiveX(UserControl)

    Se agrega un icono del control en el contenedor General

  7. Seleccione el control ActiveX creado de General y coloquelo en la forma
  8. Seleccione el proyecto Standard EXE de la ventana Proyect Explorer, dar clic al botón derecho del mouse y seleccionar la opción Set as Start Up
Leer más...

Class module o Módulo de clase

Un Módulo de Clase es un tipo de código-módulo Visual Basic, su extensión es .cls y es similar a un módulo standard en cuanto a que contiene funcionalidad que puede ser utilizada por otros módulos dentro de la aplicación. La diferencia principal es que un módulo de clase provee la funcionalidad en la forma de un objeto, cada módulo de clase define un tipo de objeto, por lo que puede existir más de un módulo de clase en una aplicación.

Para utilizar un módulo de clase en la aplicación, es necesario crear una instancia de la clase, para acceder a las propiedades, métodos y eventos del objeto definido en la clase.

 Dim miCasa As Casa 'declaracion de la variable tipo Casa
Set miCasa = New Casa 'instancia

Es posible crear un módulo de clase y agregar métodos, propiedades y eventos manualmente:

   Dim empleado As Persona

Set empleado = New Persona
empleado.edad = 33
empleado.estado = True
empleado.nombre = "Gerardo"

También es posible utilizar el Class Builder Add-In para automatizar el proceso de agregar métodos, propiedades y eventos a una clase.

Si se definen las variables como Private sólo son visibles para el módulo de clase en sí.

Es posible crear propiedades por default para un objeto, estas propiedades son las que se establecen si el usuario no provee el valor de la propiedad cuando trabaja con el objeto.

Para crear un método, se crea un procedimiento o función dentro del módulo de clase:

   Public Function nombre_Funcion(parámetros) As tipoDato
'instrucciones
nombre_Funcion = valorRegreso
End Function

Para crear un evento se siguen dos pasos:

  1. Declarar el evento en la sección de declaraciones generales (General Declarations) de un módulo de clase.

    Public Event nombre_Evento(parametros)

  2. Levantar el evento, es decir, cuando se desea que el evento ocurra se utiliza la sentencia RaiseEvent y pasar el nombre del evento y cualquier argumento que el evento utilice.
     Public Sub nombreMetodo()
    RaiseEvent nombre_Evento(argumentos)
    End Sub

Es posible disparar mensajes de error al crear módulos de clase, para ello se utiliza el método Raise del objeto Err:

ERR.Raise Numero, fuente, descripción, archivoAyuda, contextoAyuda

Una vez que se termina de trabajar con la clase es conveniente liberar los recursos que la clase utilizo a través del empleo de la sentencia Nothing:

Set nombreIntanciaClase = Nothing

Class Builder Add-In

Seleccione del menú principal:

  • Add-Ins » Add-In Manager
  • VB 6 Class Builder Utility
  • Load Behavior » Loaded/Unloaded

Una vez cargado Class Builder, seleccione de nuevo del menú principal:

  • Add-Ins » Class Builder

La accion anterior abre la ventana Class Builder donde es posible definir las propiedades, métodos y eventos de la clase.

Los módulos de clase tienen dos eventos built-in:

  1. Initialize, ocurre cuando una instancia de una clase es creada pero antes de la inicialización de cualquier propiedad. Utilice este evento para inicializar culquier dato utilizado por la clase.
  2. Terminate, ocurre cuando la variable objeto está fuera del ámbito o se establece con el valor Nothing. Utilice este evento para almacenar información, descargar formas o realizar tareas que deban ocurrir cuando la clase termina.

Para indicar que una propiedad es la propiedad por default estando activa la ventana de Clase se puede hacer a través del Class Builder o seleccionar del menú principal:

  • Tools » Procedure Attributes » Advanced
  • Seleccionar la propiedad a establecer como propiedad por default
  • Seleccionar de la lista Procedure ID
  • el valor (Default)

Por ejemplo es posible crear un módulo de clase el cual es un objeto de fuente de datos:

  1. Seleccionar del menú principal Project » Add Class Module
  2. Cambiar el nombre del módulo de clase por un nombre descriptivo
  3. Cambiar la propiedad DataSourceBehavior al valor 1 - vbDataSource
  4. Seleccionar del menú principal Project » References
  5. Seleccionar Microsoft ActiveX Data Objects 2.0 Library
  6. En la sección General Declarations del módulo de clase definir:
    • Una variable tipo Connection
    • Una variable tipo Recordset
    •  Option Explicit
      Private cnProducts As Connection
      Private rsProducts As Recordset
    • Escribir el siguiente código para el evento Initialize:
       Private Sub Class_Initialize()
      Set cnProducts = New Connection
      Set rsProducts = New Recordset
      cnProducts.Provider = "Microsoft.Jet.OLEDB.4.0"
      cnProducts.Open "Data Source=NWIND.MDB"
      rsProducts.Open "SELECT * FROM Products", cnProducts, adOpenStatic
      End Sub
    • Escribir el siguiente código para el evento GetDataMemeber:
       Private Sub Class_GetDataMember(DataMember As String, Data As Object)
      Set Data = rsProducts
      End Sub

    --- Agregar la funcionalidad de la clase (métodos) ---

    • Método para moverse al registro siguiente:
       Sub registroSiguiente()
      rsProducts.MoveNext
      End Sub
    • Método para moverse al registro anterior:
       Sub registroAnterior()
      rsProducts.MovePrevious
      End Sub
  7. Agregar a la forma un TextBox y un CommandButton (txtProduct, cmdObtenerDatos)
  8. Seleccionar del menún principal Project » References
  9. Seleccionar Microsoft ActiveX Data Binding Collection
  10. En la sección General Declarations de la forma definir:
    • Una variable del tipo de la clase creada CProducts
    • Una variable tipo BindingCollection
    •  Option Explicit
      Dim clProducts As CProducts
      Dim bcProducts As BindingCollection
    • Agregar el siguiente código para el botón cmdObtenerDatos:
       Private Sub cmdObtenerDatos_Click()
      Set clProducts = New CProducts
      Set bcProducts = New BindingCollection
      Set bcProducts.DataSource = clProducts
      bcProducts.Add txtProduct, "Text", "ProductName"
      bcProducts.Add frmProducts, "Caption", "ProductID"
      End Sub
  11. Agregar a la forma dos CommandButton (cmdRegistroSiguiente, cmdRegistroanterior):
    • Para el código del boton cmdRegistroAnterior escribir:
       Private Sub cmdRegistroAnterior_Click()
      clProducts.RegistroAnterior
      End Sub
    • Para el código del boton cmdRegistroSiguiente escribir:
       Private Sub cmdRegistroSiguiente_Click()
      clProducts.RegistroSiguiente
      End Sub
Leer más...

Data environment y data report designer

Data Environment

Otra manera de trabajar con ADO es a través del Data Environment, el cual nos pertmite configurar la conexión a la fuente de datos para ello debe seleccionar del menú principal:

Project » Add Data Environment

Lo anterior abre una ventana donde aparece un DataEnvironment1 con un Connection1. Si le da un clic a Connection1 es posible cambiarle el nombre, si selecciona Connection1 y da clic al botón derecho del mouse aparece un popUp menú donde puede seleccionar Properties, esta acción abre una ventana de configuración del vínculo de datos, dividida por 4 secciones:

  1. Proveedor, donde debe seleccionar un OLE DB provider, al dar clic en siguiente continua en la sección 2
  2. Conexión, donde debe proporcionar los datos de conexión a la fuente de datos. Se recomienda dar clic al botón [Probar Conexión] en caso de no existir errores mostrara el mensaje "La Prueba de conexión fue satisfactoria". (Implementación de un Control de Datos ADO).
  3. Avanzadas, donde se configura la red.
  4. Todas, muestra las propiedades del vínculo de datos establecidas.

El Data Environment se agrega como un objeto en la jerarquía de proyectos en el directorio Designers de la ventana de exploración de proyecto, para utilizarlo de doble clic sobre el Data Environment y se mostrara su ventana.

Una vez agregado un Data Environment es posible ver la estructura de una base de datos (tablas, campos, vistas) a través del Data View Window, para ello se debe seleccionar del menú principal:

View » Data View Window y expandir los niveles de información deseados.

Data Report Designer

Microsoft Data Report designer es un generador versatil de reportes de datos, se utiliza en conjunto con una fuente de datos (Data Environment) y es posible crear reportes de distintas tablas, así como imprimir y exportar el reporte a una variedad de formatos.

Para utilizar un Data Report seleccione del menú principal:

  • Project » Add Data Report

    (Si no se presenta la opción Add Data Report abra la ventana de componentes y de clic en Designers y seleccione Add Data Report).

  • Agrege desde Data View Window los campos al reporte.
  • Establezca el valor de la propiedad DataSource con el nombre del objeto Data Environment a utilizar.
  • Establezca el valor de la propiedad DataMember con el nombre del objeto Command a utilizar.

Es posible dar clic al botón derecho del mouse y seleccionar por ejemplo Insert Control » Current page number para insertar en el reporte el número de página correspondiente.

Para presentar el reporte utilice la propiedad Show del objeto Data Report creado:

nombre_DataReport.Show

Leer más...

ADO Programaticamente

Si se trabaja con ADO programaticamente se utilizan principalmente 3 objetos ADO:

  1. Connection, se utiliza para crear una conexión a la fuente de datos.
  2. Command, se utiliza para regresar datos de una conexión. Los objetos Command pueden también manipular datos en una fuente de datos o invocar un stored procedure.

    A través de este objeto se definen los datos que se necesitan obtener de una conexión.

    Para agregar un command abra el objeto Data Environment, seleccione la conexión, de clic al botón derecho del mouse y seleccione Add Command, después seleccione el objeto agregado command, de clic al botón derecho del mouse y seleccione Properties donde deberá establacer la configuración correspondiente, por ejemplo seleccionar si es un strored procedure o una sentencia SQL para lo cual es de gran ayuda dar clic al botón [SQL Builder...] el cual ayuda a la construcción de la sentencia SQL.

    Acceder al resultado de un command

    Es posible seleccionar los objetos del Data Wiew Window por ejemplo seleccionar el objeto command y arrastrarlo a la forma con lo cual Visual Basic agrega los campos necesarios a la forma.

  3. Recordset, es utilizado para almacenar el resultado de una consulta a la fuente de datos.

    Para acceder a los registros obtenidos por un objeto command se utiliza el objeto Recordset:

    nombre_ObjetoDataEnvironment.rsNombreObjetoCommand

    Note que el recordset es una propiedad del objeto command creado, y su nombre se compone del prefijo rs seguido del nombre del objeto command, a su vez un recordset tiene propiedades, eventos y métodos.


venta piso
Leer más...