Академический Документы
Профессиональный Документы
Культура Документы
Net 2003
CREACIN DE MEN
Control MainMenu
En la versin anterior de visual Basic, se llamaba Men, pero ahora se llama MainMenu, viene a hacer el mismo control pero con otro nombre, a diferencia del control anterior en VB 6.0, este no utiliza un editor de mens, solo nos basta escribir en el men y darle entrar cada vez que ya queremos que grabe ese men, como en la figura que esta a continuacin.
Como se dan cuenta, este control se ubica en la parte inferior como todos los controles que son objetos de coleccin, si se preguntan como uno hace para ponerle teclas calientes a los mens es bien sencillo, para eso nos dirigiremos a la ventana de propiedades del men que hemos ingresados y seleccionaremos en la opcin ShortCut las teclas que queremos que al presionarse se ejecute las instrucciones del men que queremos, para que me entiendan un poco mas, vean la figura y lean esto de nuevo.
Aclarado como crear mens, solo me falta decirles que para poner una lnea en un men se hace lo mismo que en la versin anterior, sea ponerle un en la parte de texto del men.
Control ToolBar Este control tambin no ha cambiado mucho en su utilizacin, necesita un control ImageList para almacenar las imgenes que se van a mostrar en los botones, lo nico que cambia es un poco en su codificacin pero eso ya lo veremos con un ejemplo por no decir que lo veremos en la aplicacin 44, como ya les dije este, tambin es un control de coleccin as que tambin tendr un editor de colecciones, veamos la ventana de propiedades de este control para que me entiendan. ImageList.- En esta propiedad seleccionaremos de qu contenedor (Control de coleccin) utilizaremos las imgenes para los botones. Buttons.- En esta propiedad empezaremos a insertar los botones que queramos que se muestre en nuestro toolbar.
Una vez de dar clic en la propiedad Buttons del control Toolbar nos aparecer el editor de men, que es la siguiente figura.
Las propiedades mas utilizadas en el editor de los botones son: Name.- Si queremos ponerle un nombre especial o identificativo al botn. ImageIndex.- Aqu seleccionaremos el ndice o la imagen que queramos que se muestre en el botn, estas imgenes son las que estn en el control ImageList. ToolTipText.- Aqu escribiremos el texto que se va a mostrar cuando ubicaremos el Mouse por el botn.
Formulario MDI
A diferencia de la versin anterior, aqu nos agrega un formulario MDI, solo se cambia una propiedad del formulario.
Como ya saben se cambia el valor de False a True, y para especificar un formulario como hijo se tendr que digitar el siguiente cdigo.
Ejemplo:
Y nos mostrar el formulario como Hijo, as de sencillo no lo creen?. Ahora veremos una aplicacin que vamos a utilizar estos dos controles y otro control anterior que ya he explicado en la entrega anterior.
APLICACIN 42
En este formulario aprenderemos a utilizar los controles ya explicados, primero aadiremos un MainMenu, un Toolbar, un ImageList,, un StatusBar, y por ultimo cambiaremos la propiedad de IsMdiConteiner, de False a True. As que comencemos.
Paso 1.- Disear el Formulario, Ingresar los controles mencionados y editar el men y el ToolBar como se muestra en la figura.
Paso 2.- Para este caso no cambiaremos ningn nombre a los controles, ya que este formulario es puro diseo. Paso 3.- No hay Codificacin.
Como ya vieron no es nada del otro mundo, ahora veremos otra aplicacin que utilizaremos poca codificacin, ya que solo consta de dos formularios.
APLICACIN 44
En este formulario tendremos dos formularios, uno que es el login que solo nos permitir tener tres intentos de ingreso, y el otro ser el MDI, pero no tendr ningn formulario hijo todava.
Formulario frmlogin
! !
Paso 1.- Disear el formulario. Paso 2.- Asignarles nombres a los controles
Btnok (Evento Clic) Static Opcion As Integer Dim Usuario, Contrasea As String Dim Correcto As Boolean Dim Formulario As New frmsistema() Usuario = txtusuario.Text Contrasea = txtcontrasea.Text Opcion = Opcion + 1 Select Case Usuario Case "joel" If Contrasea = "150984" Then Correcto = True REM Usuario sin restricciones Case "GISELLE" If Contrasea = "VALVERDE" Then Correcto = True Formulario.Actualizar_Precios.Enabled = False Formulario.Registros_ventas.Enabled = False Formulario.Usuario.Visible = False Case "Krizia" If Contrasea = "Rupay" Then Correcto = True Formulario.Copia_Seguridad.Enabled = False Formulario.Internet.Enabled = False Formulario.Ventas.Visible = False Case Else Correcto = False End Select If Correcto = True Then Formulario.Show() Me.Hide() ElseIf Opcion = 3 Then Me.Close() Else MsgBox("Usuario o Contrasea Incorrecta", MsgBoxStyle.Information, "Seguridad") txtusuario.Text = "" txtcontrasea.Text = "" txtusuario.Focus() End If
Formulario frmsistemas
El Menu:
Paso 2.- No cambiaremos ningn nombre mas que el del men Salir, pondremos de Name Salir. Paso 3.- Codificacin.
frmsistemas (Evento Load) StatusBar1.Panels(0).Text = Format(Now, "dd - MMM - yyyy") StatusBar1.Panels(1).Text = Space(18) + StatusBar1.Panels(1).Text + Space(18) + "Los Peruanos Si Podemos!" Timer1.Interval = 100
Timer1 (Evento Tick) StatusBar1.Panels(2).Text = Format(Now, " hh:mm:ss tt") StatusBar1.Panels(1).Text = Mid(StatusBar1.Panels(1).Text, 2) + Microsoft.VisualBasic.Left(StatusBar1.Panels(1).Text, 1)
ToolBar1 (Evento ButtonClick) Dim Boton As Integer Boton = ToolBar1.Buttons.IndexOf(e.Button) Select Case Boton Case 1 Shell("D:\WINDOWS\system32\calc.exe", AppWinStyle.NormalFocus) Case 2 If MsgBox("Desea Salir de la Aplicacin", MsgBoxStyle.Question.YesNo, "Sistema") = MsgBoxResult.Yes Then Me.Close() End If End Select
Control ContextMenu
En la versin anterior de visual Basic, para mostrar un men contextual lo hacamos mediante cdigo, pero con esta versin tambien se puede hacer as, pero mas fcil es crendolo mediante el control ContextMenu que nos trae esta versin, se edita de la misma forma que MainMenu, y para asignar en que ventana va a funcionar este men contextual solo deberemos de indicarle en una propiedad del formulario que a continuacin veremos.
En la propiedad ContextMenu del formulario, seleccionaremos que control de men contextual queramos que nos muestre.
Control OpenFileDialog
Este uno de los nuevos controles que se encuentra en esta nueva versin y no te preocupes, que son fciles de usar, primero familiarcese con la imagen del control, que es el siguiente.
Este control nos permite abrir mltiples tipos de archivos, ya sean de imgenes, sonido, texto, etc. para abrir cada tipo de archivo necesitar utilizar un *.ocx o un *.dll que pueda soportar esa extensin, ahora veremos su sintaxis de utilizacin: Sintaxis
NombreDelControl.Filter() = Tipo de Archivo (*.ExtensinDelArchivo)|*. ExtensinDelArchivo
Por ejemplo, para abrir archivos de solo texto. OpenFileDialog1.Filter() = "Archivos de Texto (*.txt)|*.txt"
Control SaveFileDialog
Este nuevo control nos permite guardar mltiples archivos, ya sean de imgenes, textos, etc. Este es el siguiente icono del archivo.
Sintaxis
NombreDelControl.Filter() = Tipo de Archivo (*.ExtensinDelArchivo)|*. ExtensinDelArchivo
'En Una Sola Lnea este cdigo PictureBox1.Image.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg) Y listo esta imagen mostrada en un Picture Box se guardar en el lugar que le indiquemos, que fcil no?. Como se han dado cuenta para el filtro se utiliza igual la sintaxis del control anterior, la propiedad FileName del control SaveFileDialog1, tiene el nombre y la ruta del archivo a guardar y para decirle a la PC como que lo vamos a guardar, mejor dicho mediante que extensin lo guardamos, utilizamos el ImageFormat.Jpeg, que es la extensin de una imagen comprimida, si queremos BMP, seleccionaremos BMP en ImageFormat, as de sencillo.
Control FontDialog
Este nuevo control nos permite visualizar y cambiar el tipo de fuente de letra, tamao, estilo, su utilizacin es ms fcil que ponerse unas medias, su sintaxis es la siguiente:
Sintaxis NombreDelControl.ShowDialog() Por ejemplo para cambiar la fuente a un TextBox en tiempo de ejecucin. FontDialog1.ShowDialog() TextBox1.Font = FontDialog1.Font
Control ColorDialog
Este nuevo control nos permite visualizar y cambiar el color a varios controles, tambin es muy fcil de usar, su sintaxis es la siguiente:
Sintaxis NombreDelControl.ShowDialog() Por ejemplo para cambiar el color de la letra de un control TextBox en tiempo de ejecucin. ColorDialog1.ShowDialog() TextBox1.ForeColor = ColorDialog1.Color
APLICACIN 45
En este formulario tendremos tres formularios, y aprenderemos a utilizar unos nuevos objetos que ha incorporado en esta nueva versin.
Formulario frmmenu
Paso 1.- Disear el formulario, como lo ven, un ToolBar, MainMenu, y un ContextMenu. El ContextMenu va a tener los mismos elementos que el MainMenu.
Paso 2.- Asignarles nombres a los controles, para que nos sea mas fcil no cambiaremos nada. Paso 3.- Codificacin.
MenuItem2 y MenuItem6 (Evento Click) - Imagen Dim Imagen As New frmimagen() Imagen.MdiParent = Me Imagen.Show()
MenuItem3 y MenuItem7 (Evento Click) - Texto Dim Texto As New frmtexto() Texto.MdiParent = Me Texto.Show()
MenuItem5 y MenuItem9 (Evento Click) - Salir If MsgBox("Desea Salir de la Aplicacin?", MsgBoxStyle.Question.YesNo, "Atencion") = MsgBoxResult.Yes Then End End If
ToolBar1 (Evento ButtonClick) Dim Index As Integer Index = ToolBar1.Buttons.IndexOf(e.Button) Select Case Index Case 0 Dim Imagen As New frmimagen() Imagen.MdiParent = Me Imagen.Show() Case 1 Dim Texto As New frmtexto() Texto.MdiParent = Me Texto.Show() End Select
Formulario frmimagen
Paso 1.- Disear el formulario, como lo ven, va a contener OpenFileDialog, SaveFileDialog, un CheckedBox, 2 PictureBox.
un
Paso 2.- Asignarles nombres a los controles, para que nos sea mas fcil no cambiaremos nada.
btnabrir (Evento Click) OpenFileDialog1.Filter() = "Archivos de Imagenes (*.jpg; *.bmp)|*.jpg;*.bmp" If OpenFileDialog1.ShowDialog = DialogResult.OK Then PictureBox1.Image = New Bitmap(OpenFileDialog1.OpenFile) PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage btnguardar.Enabled = True Else Exit Sub End If
btnguardar (Evento Click) Dim NombreImagen As String If Not PictureBox1.Image Is Nothing Then SaveFileDialog1.Filter() = "Imgenes JPG (*.jpg)|*.jpg|Mapas de bits (*.bmp)|*.bmp" SaveFileDialog1.Title = "Guarda la imagen como..." If SaveFileDialog1.ShowDialog = DialogResult.OK Then NombreImagen = SaveFileDialog1.FileName If (NombreImagen.EndsWith("jpg")) Then PictureBox1.Image.Save(NombreImagen, System.Drawing.Imaging.ImageFormat.Jpeg) End If If (NombreImagen.EndsWith("bmp")) Then PictureBox1.Image.Save(NombreImagen, System.Drawing.Imaging.ImageFormat.Bmp) End If End If End If
CheckedBox1 (Evento CheckedChanged) If CheckBox1.Checked = PictureBox1.SizeMode Else PictureBox1.SizeMode PictureBox1.SizeMode End If True Then = PictureBoxSizeMode.StretchImage = PictureBoxSizeMode.Normal = PictureBoxSizeMode.CenterImage
Formulario frmtexto
Paso 1.- Disear el formulario, como lo ven, va a contener OpenFileDialog, SaveFileDialog, FontDialog, ColorDialog, RichTextBox.
un
Paso 2.- Asignarles nombres a los controles, para que nos sea mas fcil no cambiaremos nada.
btnabrir (Evento Click) OpenFileDialog1.Filter() = "Archivos de Texto (*.txt)|*.txt" If OpenFileDialog1.ShowDialog = DialogResult.OK Then RichTextBox1.LoadFile(OpenFileDialog1.OpenFile, RichTextBoxStreamType.PlainText) btnguardar.Enabled = True Else Exit Sub End If
btnguardar (Evento Click) Dim NombreTexto As String If Not RichTextBox1.Text = "" Then SaveFileDialog1.Filter() = "Texto .txt (*.txt)|*.txt" SaveFileDialog1.Title = "Guarda la texto como..." If SaveFileDialog1.ShowDialog = DialogResult.OK Then NombreTexto = SaveFileDialog1.FileName If (NombreTexto.EndsWith("txt")) Then RichTextBox1.SaveFile(NombreTexto, RichTextBoxStreamType.UnicodePlainText) End If End If End If
Primero nos ubicaremos en el nombre de la aplicacin y daremos clic derecho y seleccionaremos la opcin de propiedades y daremos clic.
Despus de dar clic nos mostrara la siguiente ventana, donde nos ubicaremos en Generales y le daremos clic, y despus seleccionaremos en la opcin de Objeto inicial, el nombre del formulario que queramos que inicie la aplicacin.
MODULOS
Como en las versiones anteriores, existan la ceracin de mdulos, ahora les explicare los pasos para crear o agregar un nuevo modulo a nuestro proyecto o solucin, primero aclaremos que una solucin puede tener varios proyectos, y los proyectos pueden tener varios mdulos, formulario, clases, etc., para agregar un nuevo mdulo ubicaremos el Mouse en el nombre del proyecto y daremos clic derecho y seleccionaremos, agregar - agregar nuevo elemento o tambin podramos ubicarnos en el men proyecto agregar nuevo elemento y darle clic. Para este caso elegiremos agregar agregar nuevo elemento como se muestra en la figura.
Al dar clic en esta opcin nos mostrar una ventana en donde podremos elegir, que tipo de elemento queramos que se muestre, como se darn cuenta hay varios elementos para agregar, ya sea formulario, clases, mdulos, etc. A continuacin seleccionaremos modulo y le pondremos el nombre que queramos y le daremos clic en abrir.
REFERENCIAS
Para agregar una nueva regencia a nuestro proyecto, ya sea para utilizar un objeto o biblioteca externa, nos ubicaremos en el nombre del proyecto y seleccionaremos agregar referencia o tambin podramos ir al men proyecto y escoger agregar referencia y darle clic pero para este caso haremos desde el men y seleccionaremos agregar referencia en el men de proyecto y daremos clic, luego nos aparecer una ventana en donde podremos seleccionar.
Las referencias como todos son sabes son librera u objetos, como lo quieran llamar, en esta nueva versin nos trae para ubicar que tipo de referencia queremos utilizar, como ven hay tres tipos de referencia: .Net son todas aquellas referencias que vienen en el FrameWork .Net Com son todas aquellas referencia que son de todos los programas instalados en el sistema operativo incluyendo el mismo visual Studio. Proyectos aqu podremos seleccionar referencia que hallamos creado o agregar una referencia que no esta instalado en la PC
EXCEPCIN DE ERRORES
Control estructurado de errores El mtodo recomendado de capturar errores en Visual Basic .NET, es usando la estructura Try Catch Finally. La forma de usar esta estructura ser algo as: Try el cdigo que puede producir error Catch [tipo de error a capturar] cdigo cuando se produzca un error Finally cdigo se produzca o no un error End Try En el bloque Try pondremos el cdigo que puede que produzca un error. Los bloques Catch y Finally no son los dos obligatorios, pero al menos hay que usar uno de ellos, es decir o usamos Catch o usamos Finally o, usamos los dos, pero como mnimo uno de ellos. Si usamos Catch, esa parte se ejecutar si se produce un error, es la parte que "capturar" el error. Despus de Catch podemos indicar el tipo de error que queremos capturar, incluso podemos usar ms de un bloque Catch, si es que nuestra intencin es detectar diferentes tipos de errores. En el caso de que slo usemos Finally, tendremos que tener en cuenta de que si se produce un error, el programa se detendr de la misma forma que si no hubisemos usado la deteccin de errores, por tanto, aunque usemos Finally (y no estemos obligados a usar Catch), es ms que recomendable que siempre usemos una clusula Catch, aunque en ese bloque no hagamos nada, pero aunque no
BASE DE DATOS
Para este caso, yo utilizare objetos para hacer las conexiones a base de datos de Access, primero haremos la conexin a base de datos mediante dos referencias que son las siguientes:
! !
Microsoft ActiveX Data Object 2.8 Library Microsoft CDO For Windows 2000 Library
Una vez agregadas las referencias, importaremos la librera a utilizar, casi todo el cdigo de conexin a la base de datos, lo haremos mediante un modulo as que primero importaremos la librera ADODB, su sintaxis seria as:
Imports ADODB Para importar la librera lo haremos antes del comienzo del mdulo, despus haremos la declaracin de la variable de conexin y la de para abrir la tabla.
Para abrir la base de datos, es muy importante que la base de datos se encuentre en la carpeta Bin del proyecto, para que as no le demos una ruta especfica, en caso que queramos tener la base de datos en otra direccin, tendremos que especificar la direccin de la base de datos. Para hacer la conexin utilizaremos una funcin, que es la siguiente:
Public Sub NombreFuncin() Conexion = New ADODB.Connection() Conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NomDB.mdb;" Conexion.Open() End Sub
Para cerrar una base de datos solo utilizaremos un solo cdigo, por que debemos cerrar la base de datos?, como todos saben una base de datos nunca puede estar abierta, ya que seria vulnerable a otros programas, y los datos estaran vulnerables a cualquier cambio o alteracin.
Conexin a tablas
Para este caso, para abrir una tabla utilizare una funcin, para esto declaramos una variable de tipo RecordSet, que contendr el siguiente cdigo:
Public Sub NombreFuncion() VariableTabla = New ADODB.Recordset() With Amigos .ActiveConnection = Conexion .CursorType = CursorTypeEnum.adOpenKeyset .LockType = LockTypeEnum.adLockOptimistic .Open("Select*from NombreDeTabla") End With End Sub
VariableTabla.AddNew()
Para grabar nuevos elementos en una tabla, primero tendremos que usar una variable de tipo ADODB.Fields.
Y luego tendriamos que escribir el siguiente cdigo para almacenar los datos ingresados en la tabla.
Eliminar Elementos En Tabla Para eliminar elementos en una tabla, ya no tendremos que usar una variable de tipo ADODB.Fields, solo bastara eliminarlos desde el mismo RecordSet.
VariableTabla.Delete()
Mover El Cursor En Una Tabla Para mover el curso en una tabla, solo bastara mover el cursor desde el mismo RecordSet.
Primer Registro VariableTabla.MoveFirst() Anterior Registro VariableTabla.MovePrevious() Siguiente Registro VariableTabla.MoveNext() Ultimo Registro VariableTabla.MoveLast()
Para que les sea mas claro, veremos tres aplicaciones de conexin y grabacin de datos en una base de datos de Access.
APLICACIN 46
En esta aplicacin nos permitir conectarnos a una base de datos, y grabar un nuevo elemento, primero crearemos una base de datos hecha en MS-Access llamada bdagenda, que contendr una tabla llamada tbamigos.
Crear un modulo, y no le pongan ningn nombre en especial por ahora, el mdulo contendr el siguiente cdigo, lo nico que aadiremos por ahora es el import ADODB.
Public Conexion As ADODB.Connection Public Amigos As ADODB.Recordset Public Campos As ADODB.Fields Dim Respuesta As Integer
La variable Conexion de tipo ADODB.Connection, nos servir para la conexin a la base de datos, la variable Amigos de tipo ADODB.Recordset, nos servir para abrir y capturar todos los campos de la tabla tbamigos, la variable Campo de tipo ADODB.Fields, nos servir para alterar el dato del campo de la tabla, y la variable Respuesta de tipo entero, almacenara el valor de la conexin, recordemos que cuando una conexin se establece satisfactoriamente nos devuelve un nmero distinto que 0.
Public Sub AbrirBase() Conexion = New ADODB.Connection() Conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bdagenda.mdb;" Try Conexion.Open() Catch ex As Exception End Try Respuesta = Conexion.Errors.Count() If Respuesta <> 0 Then MsgBox("ERROR: No se logro la Conexin", MsgBoxStyle.Critical, "Error de Conexin") Else MsgBox("La Conexin Fue Satisfactoria", MsgBoxStyle.Information, "Conexin Establecida") End If End Sub
Explicacin:
Primero la variable declarada, le asignamos o le decimos que es una conexin nueva, en otras palabras la instanciamos, como en Visual CSharp, despus en la cadena de conexin, pondremos el proveedor y el nombre de la base de datos, en caso de que la base de datos no se encuentra en la carpeta Bin del proyecto, tendremos que especificarle la direccin completa.
Despus tenemos un bloque de Try para capturar el error en la conexin de base de datos, en este caso si hay un error, dejaremos que contine, para as capturar el error en la variable llamada Respuesta, y de ah verificaremos si la respuesta es diferente a cero, mejor dicho hay un error en la conexin nos mostrar el siguiente mensaje.
En cambio si la respuesta del conteo de errores es igual a cero, mejor dicho no hubo errores en la conexin nos mostrara el siguiente mensaje.
Creacin de la funcin AbrirAmigos Como en la variable Conexin, la instanciamos, y luego le indicamos que active la conexin, mediante la variable conexion, de ah todo les he familiar como en VB 6.0
Public Sub AbrirAmigos() Amigos = New ADODB.Recordset() With Amigos .ActiveConnection = Conexion .CursorType = CursorTypeEnum.adOpenKeyset .LockType = LockTypeEnum.adLockOptimistic .Open("Select*from tbamigos") End With End Sub
Public Sub CerrarBase() Try Conexion.Close() Catch ex As Exception MsgBox("ERROR: No se logro el Cierre de Conexin a la Base de Datos, ya que la Base de Datos NO Esta Abierta o NO se Hall", MsgBoxStyle.Critical, "Error de Cierre de Conexin") Exit Sub End Try Try Respuesta = Conexion.Errors.Count() Catch ex As Exception End Try If Respuesta = 0 Then MsgBox("Conexin Fue Cerrada Satisfactoriamente", MsgBoxStyle.Information, "Conexin Cerrada") End If End Sub
En cambio en el segundo Try vemos si hay un conteo de errores en el cierre de la base de datos, si no lo hay o si la respuesta es de 0 errores nos mostrara este mensaje.
Formulario frmdatos
btnconectar (Evento clic) Me.Enabled = False Call AbrirBase() Me.Enabled = True btngrabar.Enabled = True
btngrabar (Evento clic) If Conexion.State = 1 Then Call AbrirAmigos() If Amigos.State = 1 Then Amigos.AddNew() Campos = Amigos.Fields Campos.Item(0).Value = txtnombre.Text Campos.Item(1).Value = txtdireccion.Text Campos.Item(2).Value = txtdistrito.Text Campos.Item(3).Value = txttelefono.Text Campos.Item(4).Value = dtpfecnac.Value Campos.Item(5).Value = txtsexo.Text Campos.Item(6).Value = txtpeso.Text Amigos.Update() Else MsgBox("ERROR: No Se Logr Abrir La Tabla Amigos", MsgBoxStyle.Critical, "Error al Guardar") Exit Sub End If Else MsgBox("ERROR: No Hay Conexin Con La Base de Datos", MsgBoxStyle.Critical, "Error al Guardar") End If
APLICACIN 47
En esta aplicacin nos permitir conectarnos a una base de datos, y grabar un nuevo elemento, aprenderemos a desactivar el botn cerrar del formulario, utilizaremos la misma base de datos de la aplicacin anterior, si no se acuerdan aqu les dejo el grfico.
Creacin del Mdulo, llamado Botn_Cerrar (Cdigo sacado de la pgina web de Maluco)
Module Boton_Cerrar Private Const Posicion As Integer = &H400 Private Const RemoverCerrar As Integer = &H1000 Private Const Desactivar As Integer = &H2 Private Declare Function GetSystemMenu Lib "User32" (ByVal hWnd As Integer, ByVal bRevert As Boolean) As IntPtr Private Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Integer) As IntPtr Private Declare Function RemoveMenu Lib "User32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Long) As IntPtr Private Declare Function DrawMenuBar Lib "User32" (ByVal hWnd As Integer) As IntPtr
Creacin del Mdulo, llamado BaseDatos Imports ADODB Module BaseDatos Public Conexion As ADODB.Connection = New ADODB.Connection() Public Amigos As ADODB.Recordset = New ADODB.Recordset() Public Campos As ADODB.Fields Dim Respuesta As Integer Public Sub AbrirBase() Conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bdagenda.mdb;" Try Conexion.Open() Catch ex As Exception End Try Respuesta = Conexion.Errors.Count() If Respuesta <> 0 Then MsgBox("ERROR: No se logro la Conexin", MsgBoxStyle.Critical, "Error de Conexin") Else MsgBox("La Conexin Fue Satisfactoria", MsgBoxStyle.Information, "Conexin Establecida") End If End Sub Public Sub AbrirAmigos() Amigos = New ADODB.Recordset() With Amigos .ActiveConnection = Conexion .CursorType = CursorTypeEnum.adOpenKeyset .LockType = LockTypeEnum.adLockOptimistic .Open("Select*from tbamigos") End With End Sub
Public Sub CerrarBase() Try Conexion.Close() Catch ex As Exception MsgBox("ERROR: No se logro el Cierre de Conexin a la Base de Datos, ya que la Base de Datos NO Esta Abierta o NO se Hall", MsgBoxStyle.Critical, "Error de Cierre de Conexin") Exit Sub End Try Try Respuesta = Conexion.Errors.Count() Catch ex As Exception End Try If Respuesta = 0 Then MsgBox("Conexin Fue Cerrada Satisfactoriamente", MsgBoxStyle.Information, "Conexin Cerrada") End If End Sub End Module
Formulario frmpresentacion
El control primordial que va a tener este formulario es un Timer, y de ah le pueden poner cualquier imagen.
Timer1 (Evento Tick) Me.Opacity -= 0.02 If Me.Opacity = 0.0 Then Me.Timer1.Enabled = False Dim Formulario As New frmaplicacion47() Formulario.Show() Me.Hide() End If
Formulario frmaplicacion47
! !
Paso 1.- Disear el formulario tal como se muestra en la figura. Paso 2.- Asignarles los nombres a los controles.
Codificar.
Funcin Desconectar_Load. Function Desconectar_Load() btndesconectar.Enabled = False btnnuevo.Enabled = False btngrabar.Enabled = False btnconectar.Enabled = True btnsalir.Enabled = True End Function
Funcin Conectar_Grabar Function Conectar_Grabar() btndesconectar.Enabled = True btnnuevo.Enabled = True btngrabar.Enabled = False btnconectar.Enabled = False btnsalir.Enabled = False End Function
Funcin Verificar Function Verificar() If txtnombre.Text = "" AndAlso txtdireccion.Text = "" AndAlso cbodistrito.Text = "" Then Exit Function End If If txttelefono.Text = "" Or IsNumeric(txttelefono.Text) = False Then Exit Function End If If Not IsDate(dtpfecnac.Value) Then Exit Function End If If rdbmasculino.Checked = False AndAlso rdbfemenino.Checked = False Then Exit Function End If If txtpeso.Text = "" Or IsNumeric(txtpeso.Text) = False Then Exit Function End If btngrabar.Enabled = True End Function
btnconectar (Evento Clic) Call AbrirBase() If Conexion.State = 0 Then Exit Sub End If BotonCerrar(Me.Handle, False) Conectar_Grabar()
btnnuevo (Evento Clic) datos.Enabled = True btndesconectar.Enabled = False btnnuevo.Enabled = False btngrabar.Enabled = False btnconectar.Enabled = False btnsalir.Enabled = False Call AbrirAmigos() Amigos.AddNew()
btngrabar (Evento Clic) Dim Sexo As String datos.Enabled = False Conectar_Grabar() If rdbmasculino.Checked = True Then Sexo = "M" Else Sexo = "F" End If If Amigos.State = 1 Then Campos = Amigos.Fields Campos.Item(0).Value = txtnombre.Text Campos.Item(1).Value = txtdireccion.Text Campos.Item(2).Value = cbodistrito.Text Campos.Item(3).Value = txttelefono.Text
Nota: Para toda aplicacin que usemos el ADODB tendremos que agregar las referencias. ! ! Microsoft ActiveX Data Object 2.8 Library Microsoft CDO For Windows 2000 Library
APLICACIN 48
En esta aplicacin nos permitir conectarnos a una base de datos, grabar, eliminar y desplazarnos por todos los registros de la base de datos.
Imports ADODB Module BaseDeDatos Public CN As ADODB.Connection = New ADODB.Connection() Public RSTrabajador As ADODB.Recordset = New ADODB.Recordset() Public Campo As ADODB.Fields = RSTrabajador.Fields Public Function AbrirBase() CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=bdcompaia.mdb;" Try CN.Open() Catch ex As Exception End Try If CN.Errors.Count() <> 0 Then MsgBox("ERROR: No se logro la Conexin", MsgBoxStyle.Critical, "Error de Conexin") End End If End Function Public Sub CerrarBase() Try CN.Close() Catch ex As Exception MsgBox("ERROR: No se logro el Cierre de Conexin a la Base de Datos, ya que la Base de Datos NO Esta Abierta o NO se Hall", MsgBoxStyle.Critical, "Error de Cierre de Conexin") Exit Sub
Formulario frmconexion
Disear el formulario, ingresar un Timer al cual no le cambiaremos el nombre, e ingresar un ProgressBar que se llamar pgbconexion y dos Label, uno se llamar lblporcentaje y el otro no le cambiaremos el nombre, ya que no lo utilizaremos.
Timer1 (Evento Tick) Static Avance As Integer Avance = Avance + 1 Me.pgbconexion.Value = Avance Me.lblporcentaje.Text = CStr(Avance) + " %" If Avance = 65 Then Call AbrirBase() ElseIf Avance = 100 Then Me.tmravance.Enabled = False Call AbrirTrabajador() Dim Formulario As New frmmantenimiento() Formulario.Show() Me.Hide() End If
Formulario frmmantenimiento
Control TextBox1 TextBox2 TextBox3 TextBox4 TextBox5 Button1 Button2 Button3 Button4 Button5 Button6 Button7 Button8 Button9
Name txtcodigo txtnombres txtapellidos txtcargo txtsueldo btnprimero btnanterior btnsiguien btnultimo btnnuevo btngrabar btneliminar btnmodificar btncancelar
Codificar.
Funcin LlenarControles Function LlenarControles() txtcodigo.Text = CStr(Campo.Item(0).Value) txtnombres.Text = CStr(Campo.Item(1).Value) txtapellidos.Text = CStr(Campo.Item(2).Value) txtcargo.Text = CStr(Campo.Item(3).Value) txtsueldo.Text = CStr(Campo.Item(4).Value) SoloLectura(True) End Function
Funcin SoloLectura Function SoloLectura(ByVal Valor As Boolean) txtcodigo.ReadOnly = Valor txtnombres.ReadOnly = Valor txtapellidos.ReadOnly = Valor txtcargo.ReadOnly = Valor txtsueldo.ReadOnly = Valor End Function
Funcin ModoEditar Function ModoEditar(ByVal Valor As Boolean) btnnuevo.Enabled = Valor btngrabar.Enabled = Not Valor btneliminar.Enabled = Valor btnmodificar.Enabled = Valor btncancelar.Enabled = Valor SoloLectura(Valor) End Function
Funcin LimpiarControles Function LimpiarControles() txtcodigo.Text = "" txtnombres.Text = "" txtapellidos.Text = "" txtcargo.Text = "" txtsueldo.Text = "" End Function
btnanterior (Evento Clic) RSTrabajador.MovePrevious() If RSTrabajador.BOF Then MsgBox("Estamos en el Primer Registro") RSTrabajador.MoveFirst() End If LlenarControles()
btnsiguiente (Evento Clic) RSTrabajador.MoveNext() If RSTrabajador.EOF Then MsgBox("Estamos en el ltimo Registro") RSTrabajador.MoveLast() End If LlenarControles()
btngrabar (Evento Clic) With Campo .Item(0).Value = CStr(txtcodigo.Text) .Item(1).Value = CStr(txtnombres.Text) .Item(2).Value = CStr(txtapellidos.Text) .Item(3).Value = CStr(txtcargo.Text) .Item(4).Value = CInt(txtsueldo.Text) End With RSTrabajador.Update() ModoEditar(True)
Bueno seores, con esto acabo con la tercera entrega, he tocado un poco lo que es conexiones a base de datos, seguro otros pedirn la las conexiones a base de datos de SQL, pero eso ser a la prxima entrega o a la quinta entrega, ya que me falta hacer conexin a base de datos mediante el Data Enviorement, consultas, y si me da tiempo, har reportes en Cristal Report.
Espero que les sea de bastante utilidad esta entrega, ya saben que para cualquier cosa esta mi correo jmchm19@hotmail.com que les responder lo mas rpido posible, bueno ya me despido, aqu en Per estamos en carnavales y ya paso el da del Pisco, que por supuesto que es peruano!, bye y cudense. Donaciones a la Cuenta de Ahorros del Banco Interbank del Per ! Cuenta en Soles: 067-3008573552 ! Cuenta en Dlares: 067-3008573560
www.interbank.com.pe