martes, 25 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

12 comentarios:

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

    saludos…

    by rexonline

    ResponderSuprimir
  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!!!

    ResponderSuprimir
  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

    ResponderSuprimir
  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

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

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

    davito.hxc@hotmail.com

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

    ResponderSuprimir
  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.

    ResponderSuprimir
  9. gracias por ese codigo me ayudo mucho

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

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

    ayudemen con esto pliz

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

    ResponderSuprimir