miércoles, 26 de noviembre de 2008

Visual Basic .net + access

Tenia muchas ganas de escribir este articulo, pero me costava encontrar la manera adecuada para hacero. Se trata de un pequeño ejemplo en Visual Basic .NET que se conecta a una base de datos Access.
La aplicación, es un Listin Telefónico super sencillo, en el que se pueden buscar telefonos según el nombre introucido o insertar nuevas personas.
Este articulo no es para iniciarse en la programación de aplicaciones visuales, o programación orienteada a eventos. Pero si tienes unas nociones sobre este tipo de programación, creo que el siguiente ejemplo te puede ayudar bastante para orientarte en cuanto a aplicaciones que se conecta a bases de datos.
Por cierto, si no te interesa la programación, pero quieres descargarte la agenda de soy-informático solo tienes que pulsar aqui.
Para este articulo, me he documentado sobre el blog de tony y sus ondas. Sobre todo de estos dos articulos:
Tengo que reconocer que la indentación no la he trabajado mucho, pero por lo menos he podido indentar gracias al blog de Albert Mata

Para cualquier cosa, contactarnos a traves de los comentarios.

Public Class Form1
Dim dt As New DataTable
Dim fila As Integer = 0
Dim strConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=bd1.mdb"

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strSQL As String = "Select * from telefonos"
Dim dataAdapter As New OleDb.OleDbDataAdapter(strSQL, strConexion)
dataAdapter.Fill(dt)
dataAdapter.Dispose()
ActualizaTexto()
End Sub

Private Sub ActualizaTexto()
txtNombre.Text = CStr(dt.Rows(fila)("nombre"))
txtTelefono.Text = CStr(dt.Rows(fila)("telefono"))
End Sub

Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click
Dim StrBuscaNombre As String
Dim Encontrado As Boolean = False
Dim i As Integer
StrBuscaNombre = txtNombre.Text
For i = 0 To dt.Rows.Count - 1
If CStr(dt.Rows(i)("nombre")) = StrBuscaNombre Then
Encontrado = True
;fila = i
ActualizaTexto()
End If
Next
If Not Encontrado Then
MsgBox("No se encontro " & StrBuscaNombre)
End If
End Sub

Private Sub btnInsertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsertar.Click
Dim Conex As New OleDb.OleDbConnection
Dim Comm As New OleDb.OleDbCommand
Conex.ConnectionString = strConexion
Comm.Connection = Conex
Dim filas As Integer = dt.Rows.Count + 1
Comm.CommandText = "INSERT INTO telefonos(id, nombre, telefono)" & _
"values(" & filas.ToString & ", '" & txtNombre.Text & "', " & txtTelefono.Text & ");"
Conex.Open()
Comm.ExecuteNonQuery()
Conex.Close()
MsgBox("Dato introducido correctamente")
Dim strSQL As String = "Select * from telefonos"
Dim dataAdapter As New OleDb.OleDbDataAdapter(strSQL, strConexion)
dataAdapter.Fill(dt)
dataAdapter.Dispose()

End Sub
End Class

20 comentarios:

  1. La verdad me ayudo bastante lo que publicaste eh!!!
    sigue publicando mas de estos contenidos

    saludos…

    by rexonline

    ResponderEliminar
  2. Muchas gracias por el comentario. Voy posteando lo que creo conveniente y sobre todo cuando el tiempo y las ganas me lo permiten, jejeje. Los enlaces que he puesto también soy muy interesantes, y si quieres algo ya sabes que aquí estamos.
    Saludos!!!

    ResponderEliminar
  3. hola, me parece muy claro todo el codigo, o bueno creo haberlo entendido, ese codigo se escribe dentro de visual studis verdad? tengo otras dudas, se debe de crear antes una base de datos en acces con sus tablas ? y se tiene que descargar algun controlador o como se hace la conexion entre visual y access? gracias de antemano. javier

    ResponderEliminar
  4. Hola Javier, en primer lugar muchas gracias por leer y comentar en el blog. El código que hay se tiene que escribir en un fichero que se llame Form.vb si tu formulario principal se llama de otro manera, sería nombreformulario.vb
    Por otro lado si, primero tienes que crear una base de datos en este caso access y que se llame bd1.mdb
    Bueno, espero haberte ayudado, para cualquier otra cosa, ya sabes.
    Saludos

    ResponderEliminar
  5. ala muxas gracias, me sirvio d muxo tu ejemplo, en serio, GRACIAS!!!!!!!!!!!!!! =0)

    ResponderEliminar
  6. NO PUEDODESCARGAR EL ARCHIVO ME LO ENVIAS AL MAIL

    davito.hxc@hotmail.com

    ResponderEliminar
  7. Ya he reparado el enlace.
    Un saludo.

    ResponderEliminar
  8. He escuchado sobre un programa. El ha sido en un sitio con los softwares - reparar archivos access. El programa ha terminado mis problemas muy con facilidad y de balde. Todavia sobre este programa mis amigos han estado contento de este utilidad. Ellos han dicho que con ayuda del instrumento ha economizado el tiempo. El utilidad ha demostrado sus posibilidades en guardar los datos de salidas como un solo archivo .pst o como un grupo de archivos .eml, .vcf y .txt.

    ResponderEliminar
  9. gracias por ese codigo me ayudo mucho

    ResponderEliminar
  10. Muchas gracias!! Me sirvio muchisimo su código :)

    ResponderEliminar
  11. hola a todos, tengo problema en da.Fill(dt), no me corre el programa, k podria hacer!!!!???

    ayudemen con esto pliz

    ResponderEliminar
  12. tengo el mismo problema.. porfavor alguien me ayude ya son muchas cosas las que e intentado

    ResponderEliminar
  13. hola, el ejemplo no está mal me gusta pero quiero hacer una consulta.
    Tengo una BD acces con campos Integer y otros tipos de datos que no son string.
    ¿COMO LE HAGO?

    ResponderEliminar
    Respuestas
    1. tendras otro que sea solo el menu y 2 form uno de captura de 2 articulos y el otro de le venta de ellos en access asi de excelente como este

      Eliminar
  14. Hola muy buena tu aplicacion, pero megustaria saber si me pueden colaborar con una cosita es que necesito crear login con access 2010 y visual basic.net 2010 les agradeseria de todo corazon mi correo damilban@hotmail.com

    ResponderEliminar
  15. Alguien me podria ayudar con una form de venta de 4 articulos a la vez

    ResponderEliminar
  16. Aqui codigos VB.Net 2010 --->http://ayudaveloz.blogspot.com/

    ResponderEliminar
  17. Me marca error de no encontrar la base de datos con el dataAdapter.Fill(dt)

    ResponderEliminar
  18. Muchísimas gracias por presentar este ejemplo, todavía estoy un poco perdido con el tema de como pasar correctamente las tablas de la base de datos a vb en tiempo de programación y con suerte esto me sirve.

    ResponderEliminar