Está en la página 1de 26

CONCEPTOS PRINCIPALES El entorno de desarrollo de visual Basic le permite al programador crear aplicaciones en el entorno de interfaz grfica de usuario (GUI).

Visual Basic tiene ventanas o formularios, en donde se podr dibujar una interfaz sin ningn problema como estar en Corel Draw o Paint. Proyecto Una aplicacin que se ejecuta en un entorno de trabajo, se encuentra desligada de la herramienta de programacin en la cual se cre. Un proyecto es simplemente analista de archivos, el mismo que se encuentra conformado por: Un archivo de proyecto. Tiene la funcin de administrar los diferentes archivos que se crean. Su extensin es .vbp Archivos de formulario. En un proyecto podrn existir una o varias ventanas. Su extensin es .frm Archivos de datos binario. Todo formulario puede generar un archivo de datos binario si tienen datos sobre propiedades, de controles u objetos del formulario tales como: image, Picture,etc. Su extensin es .frx Archivos para mdulos Estndares y de clase(opcionales). Para mdulos estdares la extensin es .bas y para los de clase es .cls Archivos para controles ActiveX(opcionales). Su extensin es .ocx

Formulario Las ventanas que se realizan para que el usuario final establezca una comunicacin con la aplicacin, toman el nombre de formulario. Existen tres tipos de formularios: 1. Formulario normal(form). Estos trabajan de manera independiente en un proyecto y es el que se analiz anteriormente. 2. Formulario padre (MDIDForm). Para la creacin de interfaces de documentos mltiples. 3. Formulario hijo(ChildForm). Estos formularios se encuentran administrados por un nico formulario padre(MDIForm). Objeto: En visual Basic los objetos toman el nombre de controles (textbox, commandbutton,etc). Estos controles se encuentran en la caja de herramientas Toolbox(controles intrnsecos). Propiedades de un objeto Las propiedades son caractersticas de un objeto o control, caractersticas que podrn cambiar dependiendo del valor que se le asignen. Cambio de valores de propiedades. Las propiedades, como caractersticas, pueden tomar diferentes valores dependiendo del problema planteado. Existen dos tiempos: Tiempo de diseo Tiempo de ejecucin Cambio de valores a propiedades en tiempote ejecucin.

Para cambiar: Objeto. Propiedad = Expresin Para Extraer: Variable = objeto. propiedad Mtodos de un objeto. Todo objeto o control puede ejecutar mtodos en respuesta a una accin del usuario final (a estas acciones se las denominan Eventos); por ejemplo, dar un clic sobre algn botn. Lo que acontece cuando el usuario da un clic es una tarea; tarea que a su vez puede contener mtodos que afectan directamente al objeto. Mi primer formulario

Codificacin

Mi segundo formulario

Codificacin del segundo formulario

Ejemplo del mtodo Show

Codificacin Private Sub frmshow_Click() frmmostrado.Show End Sub Formulario mostrado al ejecutarse el mtodo show

Diferencia entre propiedad y mtodo Objeto.propiedad Objeto.mtodo La diferencia es que la propiedad toma un valor y los mtodos actan directamente sobre el objeto frmmostrado.Show mtodo propiedad

Text1.ForeColor = &HC00000 Text1.SetFocus TIPOS DE FORMULARIOS Mdulos de formularios

mtodo

Un mdulo de formulario se encuentra ligado obligatoriamente a una ventana o formulario; los formularios tendrn otros controles y stos a su vez respondern, con tareas, a los eventos que el usuario otorgue. Los mdulos de formularios contendrn, en su mayor parte, procedimientos que controlen eventos (tareas); tambin procedimientos generales y declaraciones de variables, constantes y tipos de datos en el nivel de formulario. Lista de controles lista de eventos

Lista de controles del formulario. En esta lista se encuentran todos los controles que se encuentran dibujados en el formulario. Lista de eventos. Todos los controles tiene eventos y en esta parte se encuentran los eventos de aquel control que se encuentra seleccionado en la lista de controles del formulario. Cada control tiene un evento por defecto, como por ejemplo: Textbox change Commandbutton click Optionbutton click Mdulos estndar Estos no se encuentran ligados a ningn formulario, son independientes; lo que significa que no contendr procedimientos que controlen eventos, porque no existen controles.

Vista de un mdulo estndar

Mdulos de clase Estos permiten crear clases de objetos o controles personales, osea, creados por el programador. Pueden incluirse propiedades que definen las caractersticas de un objeto y mtodos.

VARIABLES Son localidades de memoria que adems de contener datos pueden contener tambin objetos como imgenes. Se crean igual que la forma estndar, con nombres de mximo 255 caracteres, empezar con una letra, sin espcacios en blanco ni caracteres especiales. Si una variable en visual Basic no tiene un tipo de datos por defecto se la considera con un tipo Variant. Declaracin Sintaxis: Dim nombre_variable [as tipo]

Ejemplos: Dim ciudad as string Dim tarbas as integer Dim bono

tipo de datos variant

FORMAS DE DECLARAR UNA VARIABLE Una variable en la codificacin puede esar o no declarada. Existen dos formas de declarr: 1. Declaracin implcita En esta forma la variable no es declarada antes de utilizarla. Al momento de asignar un valor ste ser su tipo asignado. Patrimonio = 23 2. Declaracin explcita. Se recomienda que las variables que se utilizan en una aplicacin se encuentren declaradas, la instruccin Option Explicit forzar a declara las variables al programador.

Alcance de Variables Si consideramos dos puntos de una aplicacin (punto A y punto C) y en punto A se encuentra declarada una variable; se entiende por Alcance a la posibilidad de utilizar la variable que se encuentra en el punto A desde el punto C. Por su alcance las variables pueden ser: Privadas (Dim o Private). Pueden ser utilizadas solamente dentro del procedimiento o mdulo donde fueron declaradas. Pblicas (Public). Pueden ser utilizadas desde cualquier parte de la aplicacin.

La declaracin de variables se establece, por lo general, en el nivel de procedimiento o mdulo. El nivel de procedimiento se lo considera en la lnea siguiente del Private Sub. El nivel de mdulo se lo apertura seleccionando General en la lista de Objetos.

Tiempo de vida de las variables Se considera tiempo de vida al lapso de tiempo que pueden las mantener su valor y pueden ser declaradas en las siguientes partes: variables

1. En el nivel de un procedimiento. Estas variables sern solamente privadas (Dim) y su contenido estar disponible mientras dure el procedimiento. 3. En el nivel de mdulo de formulario. Estas variables podrn ser Privadas (Private) o Pblicas (Public) y su contenido permanecer disponible hasta que el formulario se cierre.

Codificacin ------------------------------------------------------Option Explicit 'declaracin a nivel del mdulo de formulario Private incre As Integer -----------------------------------------------------Private Sub cmdsalir_Click() End End Sub Private Sub Command1_Click() Dim car As String * 1 'con static el valor de la variable no se pierde al terminar el procedimiento Static acumulado As Double If incre >= 0 And incre <= 9 Then acumulado = acumulado + txtintervalo txtresultado = acumulado End If End Sub

Private Sub txtintervalo_KeyPress(KeyAscii As Integer) Dim car As String * 1 'declaracin a nivel de procedimiento car = Chr(KeyAscii)

incre = Val(car) If car < "0" Or car > "9" Then KeyAscii = 0 Beep End If MsgBox "el intervalo ser de ===>" & car End Sub ---------------------------------------------------------------------Las variables privadas (Private) sern utilizadas por los procedimientos dentro del mdulo. Las variables Pblicas (Public) sern utilizadas por los procedimientos dentro del mdulo y por otros mdulos de la aplicacin., en este caso sedebe especificar el nombre del formulario que lo contiene. Nombre_del_formulario.Nombre_variable_publica. 3. En el nivel del mdulo estndar. Las variables pueden ser utilizadas por todos los mdulos del proyecto, si es pblica (Public), si es Prvate, solamente por los procedimientos dentro del mdulo estndar Creacin de una aplicacin Esta aplicacin controla las ventas de artculos que se encuentran en promocin, para lo cual se considera tres categoras (alfa, omega y beta)

catego Alfa Omeg Beta

Diseo de formulario

Codificacin:

Private Sub cmdlimpiar_Click() txtvalor.Text = Clear txtporcentaje.Text = Clear txttotal.Text = Clear End Sub Private Sub cmdsalir_Click() Unload Me End Sub Private Sub Combo1_Click() If Combo1.ListIndex = 0 Then txtporcentaje.Text = 10 txttotal = Val(txtvalor) - Val(txtvalor) * 0.1 ElseIf Combo1.ListIndex = 1 Then txtporcentaje.Text = 20 txttotal = Val(txtvalor) - Val(txtvalor) * 0.2 ElseIf Combo1.ListIndex = 2 Then txtporcentaje.Text = 30 txttotal = Val(txtvalor) - Val(txtvalor) * 0.3 End If End Sub Private Sub Form_Load() Combo1.ListIndex = 0 End Sub Private Sub txtvalor_KeyPress(KeyAscii As Integer) Dim car As String * 1 'declaracin a nivel de procedimiento car = Chr(KeyAscii) If car < "0" Or car > "9" Then KeyAscii = 0 Beep End If End Sub ARREGLOS Son celdas de memoria contiguas donde se guardan los datos que deben ser homogneos. Tienen un nombre y un subndice indicando la cantidad de celdas de memoria reservadas. Arreglos con tamao fijo Quiere decir que el arreglo no cambiar de tamao y tendr el que se estableci al inicio. Para declaralo se lo podr realizar en las siguientes secciones:

1. En el nivel de un procedimiento con Dim o Static 2. En el nivel de un mdulo de formulario pude ser Privado con Private o Dim 3. A nivel de

mdulo Standard con Private, Dim o Pblico.

(General) Option Explicit Private arrciudades(5) As String * 20 ----------------------------------------------------------Private Sub CMDLLENARCIUDADES_Click() Dim j As Integer 'llenar las 6 localidades de arrciudades arrciudades(0) = "Berln" arrciudades(1) = "Madrid" arrciudades(2) = "Londres" arrciudades(3) = "Pars" Cmdllenarpaises

cmdllenarciudades

cmdllenaridiomas cmdsalir

arrciudades(4) = "Atenas" arrciudades(5) = "Lisboa" 'llenar la lista con el contenido de arrciudades List1.Clear For j = 0 To 5 List1.AddItem arrciudades(j) Next j End Sub Private Sub CMDLLENARIDIOMAS_Click() Dim i As Integer 'llenar las localidades del arreglo arridiomas(0) arridiomas(1) arridiomas(2) arridiomas(3) arridiomas(4) arridiomas(5) = "Alemn" = "Espaol" = "Ingls" = "Francs" = "Griego" = "Portugus"

'se llena la llista con el contenido del arreglo List1.Clear For i = 0 To 5 List1.AddItem arridiomas(i) ' agrega el contenido de la celda en el control listbox Next i End Sub Private Sub CMDLLENARPAISES_Click() 'Declarar arreglo unidimiensional de 6 localidades Dim arrpaises(5) As String * 20 Dim i As Integer 'llenar las localidades del arreglo arrpaises(0) arrpaises(1) arrpaises(2) arrpaises(3) arrpaises(4) arrpaises(5) = "Alemania" = "Espaa" = "Inglaterra" = "Francia" = "Grecia" = "Portugal"

'se llena la llista con el contenido del arreglo List1.Clear For i = 0 To 5

List1.AddItem arrpaises(i) ' agrega el contenido de la celda en el control listbox Next End Sub Private Sub CMDSALIR_Click() Unload Me End Sub

A nivel de Mdulo Standard (General) Option Explicit Public arridiomas(5) As String * 20

Arreglos con tamao no fijo

Existen momentos en los cuales no se sabe con exactitud cul ser el lmite superior de un arreglo, en tiempo de ejecucin, para ello Basic incorpora esta caracterstica. 1. Podr declarar un arreglo de tamao no fijo en el nivel de un procedimiento (con Dim o Static), en el nivel de mdulo de formulario (con Dim o Private) o en el nivel de un mdulo estndard (con Public). 2. Para asignar un tamao al arreglo se deber aplicar la instruccin de redimensin Redim. Redim establece el tamao del arreglo llamado arreglosec1, considerando el valor que tiene el textbox llamado txtlimitesup.

Option Explicit Private arreglosec1() As Integer Private j As Integer ------------------------------------Private Sub cmdempezar_Click() MsgBox "Se crear un arreglo de ==>" & Val(txtlimitesup) + 1 & "localidades" 'Cambiar la dimensin de un arreglo ReDim arreglosec1(Val(txtlimitesup)) 'llenar el arreglo sesde la celda con ndice 0 hasta el valor de txtlimitesup For j = 0 To Val(txtlimitesup) arreglosec1(j) = j List1.AddItem arreglosec1(j) Next j End Sub

'adiciona el valor del arreglo a la lista

Private Sub Text1_KeyPress(KeyAscii As Integer) Dim car As String car = Chr(KeyAscii) If car < "0" Or car > "9" Then KeyAscii = 0 Beep

End If End Sub Private Sub cmdsalir_Click() Unload Me End Sub

PROCEDIMIENTOS En la codificacin de visual Basic no encontramos un cuerpo principal del programa porque su trabajo es en base a procedimientos o partes pequeas de cdigo. Estas partes tiene la posibilidad de compartirse para no ser codificadas dos o ms veces en el mismo proyecto. Un procedimiento se encontrar codificado en los mdulos de un proyecto. Existen tres tipos de procedimientos, tales como: 1. Procedimientos de eventos y generales (Sub). a) Procedimientos de eventos Cuando se produce un evento o accin sobre cualquier control de un formulario se lleva a cabo un procedimiento.

Sintaxis: [Private][Static] Sub NombredelControl_Evento(parmetros) Instrucciones Exit sub End Sub Ejemplo 1: Private Sub Txtentrada_keypress (keyascii as integer) Msgbox Presion la tecla & Chr(Keyascii) End sub Ejemplo 2: Static Sub CmdAcumular_Click() Dim Total as double Total = Total + Val(txtvalor.text) .. End sub b) Los procedimientos generales

Estos no se efectan cunado sucede un evento. Los procedimientos generales son invocados por procedimientos de eventos por medio de su nombre. [Public][Private][Static] Sub nombre_Del_procedimiento (parmetros) Instrucciones Exit sub End sub Ejercicio de una aplicacin con procedimiento general

Codificacin: Option Explicit Dim valorporcentaje As Double 'Procedimiento General Private Sub calculoporcentaje(c As Double, p As Integer) valorporcentaje = (c * p) / 100 End Sub ' porcedimiento de eventos

Private Sub cmdlimpiar_Click() txtcantidad.Text = "" txtresultado.Text = "" Option1 = False Option2 = False Option3 = False End Sub

Private Sub cmdsalir_Click() Unload Me End Sub Private Sub Command1_Click() End Sub 'Procedimiento de eventos Private Sub Option1_Click() calculoporcentaje Val(txtcantidad), 30 txtresultado = valorporcentaje End Sub Private Sub Option2_Click() calculoporcentaje Val(txtcantidad), 60 txtresultado = valorporcentaje End Sub Private Sub Option3_Click() calculoporcentaje Val(txtcantidad), 90 txtresultado = valorporcentaje End Sub

Private Sub txtcantidad_KeyPress(KeyAscii As Integer) Dim car As String * 1 'declaracin a nivel de procedimiento car = Chr(KeyAscii) If car < "0" Or car > "9" Then KeyAscii = 0 Beep End If End Sub

Procedimientos Function

Procedimientos Property. MANEJO DE BASE DE DATOS

En la propiedad DataBaseName del data control DCTAGE seleccionar la base da datos roles.mdb en la carpeta <curso deVbasic> y presionar botn abrir

Con lo que se tendr la ruta de la base de datos en dicha propiedad

Codificacin en el mdulo del formulario ---------------------------------Option Explicit ----------------------------------------------Private Sub CMBCON_Click() DCTAGE.RecordSource = "SELECT * FROM INGRESO WHERE COD = '" & TXTCOD & "'" DCTAGE.Refresh TXTNOM = DCTAGE.Recordset!NOM

TXTCAR = DCTAGE.Recordset!CAR TXTSUE = DCTAGE.Recordset!SUE TXTHEX = DCTAGE.Recordset!Hex TXTANT = DCTAGE.Recordset!ANT TXTIES = DCTAGE.Recordset!IES TXTMUL = DCTAGE.Recordset!MUL TXTTDE = DCTAGE.Recordset!TDE TXTIN = DCTAGE.Recordset!TIN TXTNRE = DCTAGE.Recordset!NRE MsgBox "SUS REGISTROS FUERON CONSULTADOS", 48 End Sub ---------------------------------------------------Private Sub CMBELI_Click() If MsgBox("DESEA ELIMINAR ESTOS DATOS", 36, "PREGUNTA") = 6 Then DCTAGE.RecordSource = "SELECT * FROM INGRESO" DCTAGE.Refresh DCTAGE.Recordset.Delete MsgBox "SUS DATOS FUERON ELIMINADOS", 48 End If End Sub ---------------------------------------------Private Sub CMBMOD_Click() If MsgBox("DESEA MODIFICAR ESTOS DATOS", 36, "PREGUNTA") = 6 Then DCTAGE.RecordSource = "SELECT * FROM INGRESO WHERE COD='" & TXTCOD & "'" DCTAGE.Refresh DCTAGE.Recordset.Edit DCTAGE.Recordset!NOM = TXTNOM DCTAGE.Recordset!CAR = TXTCAR DCTAGE.Recordset!SUE = CDbl(TXTSUE) DCTAGE.Recordset!Hex = CDbl(TXTHEX) DCTAGE.Recordset!ANT = CInt(TXTANT) DCTAGE.Recordset!IES = CDbl(TXTIES) DCTAGE.Recordset!MUL = CDbl(TXTMUL) DCTAGE.Recordset!TDE = CDbl(TXTTDE) DCTAGE.Recordset!TIN = CDbl(TXTIN) DCTAGE.Recordset!NRE = CDbl(TXTNRE) DCTAGE.Recordset.Update MsgBox "SUS DATOS FUERON MODIFICADOS EXITOSAMENTE", 48 End If End Sub -----------------------------------------------------------Private Sub CMBOTR_Click() If MsgBox("DESEA HACER OTRO PROCESO", 36, "PREGUNTA") = 6 Then TXTCOD = "" TXTNOM = ""

TXTCAR = "" TXTSUE = 0 TXTHEX = 0 TXTANT = 0 TXTIES = 0 TXTMUL = 0 TXTTDE = 0 TXTIN = 0 TXTNRE = 0 TXTCOD.SetFocus End If End Sub -----------------------------------------------------------Private Sub CMDGRABAR_Click() If MsgBox("dESEA GRABAR ESTOS DATOS", 36, "PREGUNTA") = 6 Then DCTAGE.RecordSource = "SELECT * FROM INGRESO" DCTAGE.Refresh DCTAGE.Recordset.AddNew DCTAGE.Recordset!COD = TXTCOD DCTAGE.Recordset!NOM = TXTNOM DCTAGE.Recordset!CAR = TXTCAR DCTAGE.Recordset!SUE = CDbl(TXTSUE) DCTAGE.Recordset!Hex = CDbl(TXTHEX) DCTAGE.Recordset!ANT = CInt(TXTANT) DCTAGE.Recordset!IES = CDbl(TXTIES) DCTAGE.Recordset!MUL = CDbl(TXTMUL) DCTAGE.Recordset!TDE = CDbl(TXTTDE) DCTAGE.Recordset!TIN = CDbl(TXTIN) DCTAGE.Recordset!NRE = CDbl(TXTNRE) DCTAGE.Recordset.Update MsgBox "SUS DATOS FUERON GRABADOS EXITOSAMENTE", 48 End If End Sub ------------------------------------------------Private Sub Form_Load() DCTAGE.DatabaseName = App.Path & "\ROLES.MDB" DCTAGE.Refresh End Sub ---------------------------------------------------------Private Sub TXTANT_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTMUL.SetFocus End If

End Sub ----------------------------------------------------------Private Sub TXTCAR_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTSUE.SetFocus End If End Sub ---------------------------------------------------------Private Sub TXTCOD_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTNOM.SetFocus End If End Sub --------------------------------------------------------Private Sub TXTHEX_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTIN = CDbl(TXTSUE) + CDbl(TXTHEX) TXTANT.SetFocus End If End Sub ---------------------------------------------------------Private Sub TXTIES_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTTDE.SetFocus End If End Sub -------------------------------------------------------Private Sub TXTMUL_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTTDE = CDbl(TXTANT) + CDbl(TXTIES) + CDbl(TXTMUL) TXTNRE = CDbl(TXTIN) - CDbl(TXTTDE) CMDGRABAR.SetFocus End If End Sub ----------------------------------------------------------Private Sub TXTNOM_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then TXTCAR.SetFocus End If End Sub -----------------------------------------------------------Private Sub TXTNRE_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then CMBGRA.SetFocus

End If End Sub ---------------------------------------------------------Private Sub TXTSUE_KeyPress(KeyAscii As Integer) Dim CAR CAR = Chr(KeyAscii) If CAR < "0" Or CAR > "9" Then If KeyAscii = 13 Then TXTIES = CDbl(TXTSUE) * 0.0935 TXTHEX.SetFocus Else KeyAscii = 0 End If End If End Sub -------------------------------------------------------------Private Sub TXTTDE_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then CMBGRA.SetFocus End If End Sub

También podría gustarte