Tutoriales de Visual Basic

« 1/2 2 »

Antonio Salas G. 

Colecciones de tipo ArrayList

Son utilizadas para agrupar objetos (elementos) que de alguna forma están relacionados son similar a los Arrays pero una de las diferencias entre Array y Colecciones de tipo ArrayList, es la manera de agregar y eliminar elementos, que estos elementos son tipos de datos por referencia y admite cualquier tipo de dato. Debemos usar New seguido del tipo de colección ya que los datos son almacenados como objetos.

.Add: Es utilizado para agregar elementos después del último registrado.

Dim clectionarraylist As New ArrayList

        clectionarraylist.Add("Paco")

        clectionarraylist.Add("Marco")

        clectionarraylist.Add("Fermin")

        clectionarraylist.Add("Chuy")

 

        For Each aux As String In clectionarraylist

            txt1.Text &= aux & vbCrLf

        Next

.Clear: Elimina todos los elementos de la ArrayLis.

clectionarraylist.Clear()

.Containers: Indica si el elamento indicado esta en la colección.

txt1.Text &= clectionarraylist.Contains("Paco")

.Counts: Nos indica el numero de elementos.

txt1.Text &= clectionarraylist.Count         

.IndexOf: Es para buscar un elemento y saber el índice en el que esta almacenado.

txt1.Text &= clectionarraylist.IndexOf("Fermin")

.Insert: Inserta un nuevo elemento en la posición indicada.

clectionarraylist.Insert(4, "Ivan")

.Remove: Elimina un elemento.

clectionarraylist.Remove("Marco")

.Sort: Ordena el contenido de la colección.

clectionarraylist.Sort()

 

HashTable: Nos permite almacenar cualquier tipo de datos.

 

Dim colectionHast As New Hashtable

 

        colectionHast.Add(0, "Paco")

        colectionHast.Add(1, "Marco")

        colectionHast.Add(2, "Fermin")

        colectionHast.Add(3, "Chuy")

 

       For Each aux As String In colectionHast.Values

            txt1.Text &= aux & vbCrLf

        Next
 

.Add: Añadir nuevos elementos.

Dim colectionHast As New Hashtable

 

        colectionHast.Add(0, "Paco")

        colectionHast.Add(1, "Marco")

        colectionHast.Add(2, "Fermin")

        colectionHast.Add(3, "Chuy")

 

.Clear: Eliminar todos los elementos.

colectionHast.Clear() 

.Contains: Indica si la clave indicada está en la colección.

txt1.Text = colectionHast.Contains(3)

.ContainsKey: Indica si la clave indicada está en la colección.

txt1.Text &= colectionHast.ContainsKey(2)

.ContainsValue: Indica si el valor indicado está en la colección.

 txt1.Text &= colectionHast.ContainsValue("Fermin")

 

.Ramove: Elimina el elemento con la clave indicada.

colectionHast.Remove(2)

 

Queue. Es una colección del tipo FIFO (First In First Out) utilizada para crear colas de datos.

 

Dim colectionHast As New Queue

 

        colectionHast.Enqueue("Paco")

        colectionHast.Enqueue("Marco")

        colectionHast.Enqueue("Fermin")

        colectionHast.Enqueue("Chuy")

 

        For Each aux As String In colectionHast

            txt1.Text &= aux & vbCrLf

        Next

 

.Peek: Para acceder al último elemento añadido, pero sin eliminarlo.

txt1.Text &= colectionque.peek & vbCrLf

.Enqueue: Añadir un nuevo elemento a la colección.

 

        colectionHast.Enqueue("Paco")

        colectionHast.Enqueue("Marco")

        colectionHast.Enqueue("Fermin")

        colectionHast.Enqueue("Chuy")

 
.Dequeue: Para sacar el primer elemento de la colección.

txt1.Text &= colectionque.Dequeue & vbCrLf

.Count: Nos indica el número de elementos.

txt1.Text &= colectionque.Count & vbCrLf

.Clear: Eliminar todos los elementos.

colectionque.Clear()

 
Stack. Es una colección del tipo LIFO (Last In First Out) utilizada para crear pilas de datos.

 

        Dim colectionstak As New Stack

 

        colectionstak.Push("Paco")

        colectionstak.Push("Marco")

        colectionstak.Push("Fermin")

        colectionstak.Push("Chuy")

 

        For Each aux As String In colectionstak

            txt1.Text &= aux & vbCrLf

        Next

 

.Peek: Para acceder al último elemento añadido, pero sin eliminarlo.

txt1.Text &= colectionstak.Peek & vbCrLf

.Push: Para agregar un nuevo elemento al principio de la colección.

 

        colectionstak.Push("Paco")

        colectionstak.Push("Marco")

        colectionstak.Push("Fermin")

        colectionstak.Push("Chuy")

 
.Pop: Para recuperar el último elemento y eliminarlo de la colección.

txt1.Text &= colectionstak.Pop & vbCrLf

.Count: Nos indica el número de elementos.

txt1.Text &= colectionstak.Count & vbCrLf

.Clear: Eliminar todos los elementos.

colectionstak.Clear()

 

Antonio Salas G. 

Autor: Antonio Salas G.

Como en tutoriales pasados la finalidad es aprender a utilizar los ciclos que ofrece el lenguaje visual basic .net, lo que hace esta aplicación es mostrar en una caja de texto multilínea el tablero de ajedrez, representando las casillas blancas por una B y las negras por una N, además se ingresa una coordenada en donde se ubica un alfil y muestra la trayectoria donde se puede mover el alfil con un *.


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As Integer = 1
        Dim b As Integer = 1
        Dim c As Integer = 1
        Dim d As Integer
        Dim aux As String

        While a <= 8
            While b <= 8
                d = Math.Abs(textbox1.Text - a)
                If textbox2.Text - d = b Or textbox2.Text + d = b Then
                    aux = "*"
                    If c = 1 Then
                        c = 0
                    Else
                        c = 1
                    End If
                Else
                    If c = 1 Then
                        aux = "B"
                        c = 0
                    Else
                        aux = "N"
                        c = 1
                    End If
                End If
                textbox3.Text = textbox3.Text + aux
                b = b + 1
            End While
            textbox3.Text = textbox3.Text & vbNewLine
            b = 1
            a = a + 1
        End While
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim a As Integer = 1
        Dim b As Integer = 1
        Dim c As Integer = 1
        Dim d As Integer
        Dim aux As String

        For a = 1 To 8
            For b = 1 To 8
                d = Math.Abs(textbox1.Text - a)
                If textbox2.Text - d = b Or textbox2.Text + d = b Then
                    aux = "*"
                    If c = 1 Then
                        c = 0
                    Else
                        c = 1
                    End If
                Else
                    If c = 1 Then
                        aux = "B"
                        c = 0
                    Else
                        aux = "N"
                        c = 1
                    End If
                End If
                textbox3.Text = textbox3.Text + aux
            Next
            textbox3.Text = textbox3.Text & vbNewLine
            b = 1
        Next
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim a As Integer = 1
        Dim b As Integer = 1
        Dim c As Integer = 1
        Dim d As Integer
        Dim aux As String

        Do While a <= 8
            Do While b <= 8
                d = Math.Abs(textbox1.Text - a)
                If textbox2.Text - d = b Or textbox2.Text + d = b Then
                    aux = "*"
                    If c = 1 Then
                        c = 0
                    Else
                        c = 1
                    End If
                Else
                    If c = 1 Then
                        aux = "B"
                        c = 0
                    Else
                        aux = "N"
                        c = 1
                    End If
                End If
                textbox3.Text = textbox3.Text + aux
                b = b + 1
            Loop
            textbox3.Text = textbox3.Text & vbNewLine
            b = 1
            a = a + 1
        Loop
    End Sub

Autor: elgame

En este manual explicaremos como hacer los múltiplos del 5 o cualquier otro numero con los distintos tipos de ciclos que hay en visual Basic .net (For, While y Do While). Con la finalidad de aprender a utilizar lo ciclos.

El programa requiere de dos valores A y B los cuales se tiene que introducir por el usuario, estos números será el rango al cual queremos obtener los múltiplos de algún número y estos los mostraremos en un TextBox multilínea.

Ciclo For

Primero declaramos nuestro método en el evento Click del botón 1, después declaramos las variables que vamos a utilizar (a, b, c).

Y ahora comparamos si los valores de las cajas de texto son numéricos si es así tenemos que evaluar la condición para que un numero sea múltiplo de otro, y esta condición es que al dividir los números el residuo sea 0, con la instrucción Mod obtenemos el residuo de una división.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
     Dim a As Integer
     Dim b As Integer
     Dim c As Integer

     If IsNumeric(txta.Text) And IsNumeric(txtb.Text) Then
         txtmultiplos.Text = ""

         c = 0
         a = Val(txta.Text)
         b = Val(txtb.Text)

         If a > b Then
             c = a
             a = b
             b = c
         End If
         For c = a To b
             If c Mod 5 = 0 Then
                 txtmultiplos.Text = txtmultiplos.Text +
                 Convert.ToString(c) + vbNewLine
             End If
         Next
     Else
         MsgBox("Error")
     End If
End Sub

 

Ciclo While y Do While

Los ciclos While y Do while es prácticamente lo mismo, la diferencia es que el Do While se cierra con Loop y el While con End While.

Ten en cuenta que estos ciclos funcionan por condiciones a diferencia del For que repite las instrucciones un numero determinado de veces.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e 
    As System.EventArgs) Handles Button2.Click
        Dim a As Integer
        Dim b As Integer
        Dim c As Integer

        If IsNumeric(txta.Text) And IsNumeric(txtb.Text) Then
            txtmultiplos.Text = ""

            a = txta.Text
            b = txtb.Text

            If a > b Then
                c = a
                a = b
                b = c
            End If
            While a <= b
                If a Mod 5 = 0 Then
                    txtmultiplos.Text = txtmultiplos.Text +
                    Convert.ToString(a) + vbNewLine
                End If
                a = a + 1
            End While
        Else
            MsgBox("Error")
        End If
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e
    As System.EventArgs) Handles Button3.Click
        Dim a As Integer
        Dim b As Integer
        Dim c As Integer

        If IsNumeric(txta.Text) And IsNumeric(txtb.Text) Then
            txtmultiplos.Text = ""

            a = txta.Text
            b = txtb.Text

            If a > b Then
                c = a
                a = b
                b = c
            End If
            Do While a <= b
                If a Mod 5 = 0 Then
                    txtmultiplos.Text = txtmultiplos.Text +
                    Convert.ToString(a) + vbNewLine
                End If
                a = a + 1
            Loop
        Else
            MsgBox("Error")
        End If
    End Sub

 

Autor: elgame

Como ya sabemos en la gran mayoría de los lenguajes de programación es necesario utilizar bases de datos para almacenar información

En la actualidad la gran mayoría de las aplicaciones que se desarrollan es necesario almacenar información en base de datos, por esta razón me vi obligado a compartir con ustedes este articulo.

Lo que vamos hacer es mostrar como nos podemos conectar a una base de datos de Access a través de Visual Basic.

Primero creamos nuestra base de datos. Abrimos Access, seleccionamos nuevo documento y le damos base de datos en blanco, la guardamos en alguna carpeta donde va ha estar nuestra aplicación en Visual.
Después crea una tabla con los campos que necesites para tu aplicación; ya que la creaste sierra Access y nos trasladamos a Visual Basic.

En Visual Basic le seleccionamos en nuevo proyecto EXE estándar, serramos el formulario que se abrió automáticamente, después creamos un modulo. Para esto en el menú proyecto presiona Agregar modulo y después aceptar.

En el modulo crearemos una función para hacer la conexión con la base de datos y además declararemos las variables ADODB de forma publicas para poder manipular los datos en cualquier parte de la aplicación.

Función main(), contiene la conexión a la base de datos.
Una variable AdoConexion, contiene el path a la base de datos.
Un AdoA que es una variable recordset.



Public AdoConexion As ADODB.Connection
Public AdoA As ADODB.Recordset
Dim sBase As String

sub main()
    Set AdoConexion = New ADODB.Connection  
    Set AdoA = New ADODB.Recordset
    sBase = App.Path
    
       ‘Driver para crear la conexión a la DB
    AdoConexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data 
    Source=TuBD.mdb;Persist Security Info=false"
    AdoConexion.open
    
     ‘se le asignan la propiedades al recordset
    AdoA.LockType = adLockOptimistic  
    AdoA.CursorType = adopenDynamic
    AdoA.CursorLocation = adUseClient
    
    Form1.Show
end sub


Ya que tenemos nuestro modulo preparado en los formularios podemos manipular los datos ejemplo, para hacer una consulta, a nuestra variable recordset le asignamos el resultado, la estructura es la siguiente.



AdoA.open "select * from tabla where id = " & casilla, AdoConexion


Para que no tengas ningún problema al estar manipulando los resultados de las consultas y te marquen errores es recomendable que antes de cada consulta cierres las consultas abiertas.



if AdoA.State = 1 Then
       AdoA.close
end If


Y por ultimo para poder manipular los datos obtenidos en la consulta hay que realizar lo siguiente.



For I = 0 To AdoA.Fields.Count - 1
         Text1(I) = AdoA.Fields(I)
Next


Autor: ElGame
Introducción

Programita que convierte distintos tipos de monedas pero utilizando una función definida por el usuario.

En el formulario agregamos dos etiquetas, dos combobox, dos cajas de texto y un botón (aceptar).
Utilizaremos la función convierte para realizar la conversión de la moneda.



function convierte(numero As Integer) As String
    Dim peso As Integer, euro As Integer, dolarA As Integer, 
dolarC As Integer, libra As Integer
    Dim vec1(4) As Integer
    valor de cada moneda en pesos
    vec1(0) = 1 pesos
    vec1(1) = 15 euro
    vec1(2) = 11 dollar ameri
    vec1(3) = 12 dollar canadi
    vec1(4) = 5 libra
    selec1 = Combo1.ListIndex
    selec2 = Combo2.ListIndex
    
    resul = numero * vec1(selec1)
    convierte = resul / vec1(selec2)
end function


En el botón aceptar:



Private sub Command1_Click()
    if Text1.Text <> "" Then
        Text2.Text = convierte(Text1.Text)
    end If
end sub


En la caja de texto, para validar que solo sean números.



Private sub Text1_KeyPress(KeyAscii As Integer)
    if KeyAscii <> 8 Then                los caracteres
        if KeyAscii < 48 Or KeyAscii > 57 Then
            KeyAscii = 0
        end If
    end If
end sub


Autor: Gamaliel M.
Introducción

Este programa permite escribir un numero y el te devuelve el nombre del valor escrito.

En el formulario agregamos dos botones (aceptar y salir) y una caja de texto.
Y utilizaremos dos funciones unidades y decenas.



Private function Unidades() As Integer
    select Case Right(txtnumeros.Text, 1)
        Case 1: labresultado.Caption = labresultado.Caption + "Uno"
        Case 2: labresultado.Caption = labresultado.Caption + "Dos"
        Case 3: labresultado.Caption = labresultado.Caption + "Tres"
        Case 4: labresultado.Caption = labresultado.Caption + "Cuatro"
        Case 5: labresultado.Caption = labresultado.Caption + "Cinco"
        Case 6: labresultado.Caption = labresultado.Caption + "Seis"
        Case 7: labresultado.Caption = labresultado.Caption + "Siete"
        Case 8: labresultado.Caption = labresultado.Caption + "Ocho"
        Case 9: labresultado.Caption = labresultado.Caption + "Nueve"
    end Select
end function

Private function Decenas() As Integer select Case Left(txtnumeros.Text, 1) Case 1: labresultado.Caption = "Dieci " Case 2: labresultado.Caption = "Veinti " Case 3: labresultado.Caption = "Treinta " Case 4: labresultado.Caption = "Cuarenta " Case 5: labresultado.Caption = "Cincuenta " Case 6: labresultado.Caption = "Sesenta " Case 7: labresultado.Caption = "Setenta " Case 8: labresultado.Caption = "Ochenta " Case 9: labresultado.Caption = "Noventa " end Select end function


En el botón aceptar:



Private sub cmmaceptar_Click()
    if IsNumeric(txtnumeros.Text) Then
        select Case txtnumeros.Text
            Case 0:  labresultado.Caption = "Cero"
            Case 11: labresultado.Caption = "Once"
            Case 12: labresultado.Caption = "Doce"
            Case 13: labresultado.Caption = "Trece"
            Case 14: labresultado.Caption = "Catorce"
            Case 15: labresultado.Caption = "Quince"
            Case 10: labresultado.Caption = "Diez"
            Case 20: labresultado.Caption = "Veinte"
            Case 30: labresultado.Caption = "Treinta"
            Case 40: labresultado.Caption = "Cuarenta"
            Case 50: labresultado.Caption = "Cincuenta"
            Case 60: labresultado.Caption = "Sesenta"
            Case 70: labresultado.Caption = "Setenta"
            Case 80: labresultado.Caption = "Ochenta"
            Case 90: labresultado.Caption = "Noventa"
        end Select
        if Right(txtnumeros, 1) = 0 Or (txtnumeros.Text >= 11 And 
txtnumeros.Text <= 15) Then
            
        else
            if Len(txtnumeros.Text) = 1 Or 
Left(txtnumeros.Text, 1) = 0 Then
                labresultado.Caption = ""
                Call Unidades
            else
                Call Decenas
                Call Unidades
            end If
        end If
    else
        MsgBox ("Escribe solo numeros")
    end If
    
    txtnumeros.Text = ""
    txtnumeros.SetFocus
end sub


En el botón salir:



Private sub cmmsalir_Click()
    Unload Me
end sub


Autor: Gamaliel M.
Introducción

Utilizaremos matrices para el siguiente programita, generaremos números aleatorios, los almacenaremos en una matriz, y obtendremos el número mayor de los pares de cada columna y los mostraremos.

Agregamos un botón y colocamos el siguiente código fuente.



Private sub Command1_Click()
    Dim ma(5, 7) As Integer
    Dim mayor As Integer
    
    Text1.Text = ""
    
    For q = 0 To 5
        For q1 = 0 To 7
            signo = Int((Rnd * 2) + 1)
            
            nu = Int(Rnd * 100)
            if signo = 1 Then
                nu = nu * -1
            end If
            ma(q, q1) = nu
            Text1.Text = Text1.Text & ma(q, q1) & "         "
        Next
        Text1.Text = Text1.Text & vbCrLf
    Next
    
    mayor = -100

    For q1 = 0 To 7
        For q = 0 To 5
            if ma(q, q1) Mod 2 = 0 Then
                if ma(q, q1) > mayor Then
                    mayor = ma(q, q1)
                    
                end If
            end If
        Next
        Label1(q1).Caption = mayor
        mayor = -100
    Next
end sub


Tenemos que crear una caja de texto con ScrollBars vertical y multilínea, ademas ocho etiquetas en tipo vector.

Autor: Gamaliel M.
Introducción

Aquí esta este programa que convierte de binario a decimal, se tienen que pedir el número de bits que se quieran convertir.

Creamos el formulario y en el agregamos un botón (pedir), tres cajas de texto y tres etiquetas.
En el botón pedir es donde agregaremos todo el algoritmos para realizar la conversión.



Private sub cmdPedir_Click()
    Dim i As Integer, i2 As Integer, nu As Integer, base As Integer, su As Integer
    Dim sbits As String
    
    su = 0
    base = 0
    
    if IsNumeric(Text1.Text) Then
        nu = CInt(Text1.Text)
        
        For i = (nu - 1) To 0 Step -1
            v = InputBox("Escribe el bit")
            if v = 1 Or v = 0 Then
                sbits = sbits & v
            else
                i = i + 1
            end If
            if v = 1 Then
                if i = 0 Then
                    base = 1
                else
                    if i = 1 Then
                        base = 2
                    else
                        base = 2
                        For i1 = 1 To (i - 1)
                            base = base * 2
                        Next
                    end If
                end If
                su = su + (v * base)
            end If
        Next
    end If
    Text2.Text = sbits
    Text3.Text = su
end sub


Validamos la caja de texto donde pedimos los bits para que solo escriban números.



Private sub Text1_KeyPress(KeyAscii As Integer)
    if KeyAscii <> 8 Then
        if KeyAscii < 48 Or KeyAscii > 57 Then
            KeyAscii = 0
        end If
    end If
end sub


Autor: Gamaliel M.
Introducción

Descarga es te programa echo en visual que simula la configuración de la instalación de un programa para agregar los componentes, o para agregar los campos de una base de datos como en Access cuando creas una consulta?

El programa agrega elementos, los pasa de una lista a otro, los elimina, puede subir, bajar la posición, etc.

Descárgalo al final.

Autor: Gamaliel M.
Introducción

Este programita permite convertir de decimal a otra base, para que funciones es necesario que introduzca la base a la que quiere convertir, puede convertir de la base 1 a la 10 y también la base 16.

Al final puedes descargar el conversor para que lo veas con detalle.

Autor: Gamaliel M.
« 1/2 2 »