31 octubre 2010

Visual Basic .net, ADO.NET y Access

Hice un pequeño ejemplo que muestra la forma en que se pueden accesar datos de tablas hechas en Access (en este caso de la versión 2007) desde Visual Basic .net (en mi caso, la versión 2010) usando ADO.NET.
Para explicar todo el rollo, hice un Prezi (odio el PowerPoint), y se los presento a continuación.  No me lo critiquen mucho, que es el primero que hago Lengua fuera.  Les recomiendo que lo vean en pantalla completa porque en esta ventanita casi no se ve (esto se logra haciendo clic en “More” y luego en “Fullscreen”).

 El código (por si no se ve claro en el Prezi) es este:
 
03---Codigo
 
Puedes descargar el código (está hecho en Visual Basic 2010) aquí.  
Espero que te sea útil.  ¡Hasta la próxima!

14 comentarios:

Paulo Maia dijo...

Tony, este asunto me interesa! está chido! y la animación que hiciste está padrísima!!! que paciencia!!!!
saludos, mi amigo

Paulo Maia dijo...

bueno, tengo que explicarte que me refiero al stop motion... es que me confundí sobre donde poner el comentario del post! jejej

Tony Valderrama dijo...

Mil gracias, querido amigo. Es solo un poco de paciendia, pero no mucha. Ese pequeño video lo hice con mis dos hijas saltando alrededor, jejeje.

Te mando un gran abrazo, hermano. Te comento que por fin estoy en Proyectos III... con el nervio porque tengo menos de un mes para entregar la tesis y todavía me falta.

Anónimo dijo...

Hola... estuvo muy padre esta animación. Q crees que estoy realizando un proyecto en VB .NET, tratando de acceder a una base de datos llamada COMPRAS.mdb o sea q es 2003, esta base de datos se encuentra protegida...quiero acceder localmente es decir esta base de datos se encuentra en otra computadora y estamos conectados localmente. Segui tus codigos al pie de la letra pero me sigue marcando un error que dice: "ERROR: No se pudo instalar el archivo ISAM instalable Número:5" Mi código quedo de la siguiente manera espero puedas ayudarme, ya intente de mil maneras y nada!!... muchas gracias... y felicidades!!



Dim coneXion As OleDbConnection
Dim comMando As OleDbCommand
Dim leCtor As OleDbDataReader

Try
coneXion = New OleDbConnection()
coneXion.ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; Data Source= " & _
Application.StartupPath & "\\SERVIDOR\Public\bases de dat\COMPRAS.mdb; Persist Security Into=False;"
coneXion.Open()
comMando = New OleDbCommand("SELECT * FROM PROVEEDORES", coneXion)

leCtor = comMando.ExecuteReader
Do While leCtor.Read()
txtNodeproveedor.Text = leCtor.Item("No_de_Proveedor")


Loop
leCtor.Close()
coneXion.Close()

Catch
MsgBox("Error: " & Err.Description & vbCrLf & "Número: " & Err.Number)
End

End Try
End Sub

Tony Valderrama dijo...

Estimado Anónimo:

Creo que ya vi donde tienes el problema. La propiedad Application.StartupPath te da la carpeta donde está el archivo EXE de tu proyecto. Pero tu al final le estás poniendo "\\SERVIDOR...". Quita al Application.StartupPath y creo que debería funcionar.

¡Saludos!

Anónimo dijo...

graxx de nuevo, ya quite la linea en la que tenia error, pero ahora me manda otro error vaya la redundancia y dice: "No se puede ler registro no tiene permiso para READ en Proveedores"

Tony Valderrama dijo...

Se me hace que es por algo de la seguridad. Yo empezaría quitando las restricciones (protecciones) del archivo y lo probaría así. si funciona, entonces hay que ver qué agregar a tu ConnectionString para darle usuario y contraseña (porque ahorita no lo estás poniendo).

¡Saludos!

TIntelligence dijo...

Hola estimado Tony, una pregunta estoy tratando con un proyecto de visual studio y Access; solo que tengo una grande duda mediante código puedo crear una tabla directamente en mi archivo de Access... Me explico mejor:
Cuando utilizo SQL lo puedo hacer desde visual basic con un Query desde codigoooo hay alguna forma de hacer algo para Access... Gracias de antemano... Coordial Saludo muy buen blog!!!

Tony Valderrama dijo...

Uziel:

En SQL hay instrucciones para crear tablas (CREATE TABLE). Aunque yo no lo he hecho, en teoría debería poderse usar esta instrucción desde VB y ejecutarlo con un ExecuteNonQuery o algo similar...

No sé si te estoy haciendo más bolas o que onda, pero espero ayudar...

TIntelligence dijo...

Claroo que sii entiendoo ExecuteQuery es a lo que me referia lo probare haber como anda esoo!!! Gracias!!! por cierto excelente Blog!!!!

Tony Valderrama dijo...

Uziel:

Checa esta liga para que veas la sintaxis del CREATE TABLE:

http://sql-info.de/mysql/examples/CREATE-TABLE-examples.html

Luego, pones esa instrucción (ya completa: tienes que construir un String que tenga la instrucción que haga la tabla como la necesitas) como el parámetro CommandText de tu objeto Command. Luego ejecutas el método ExecuteNonQuery del comando y listo (creo)...

Anónimo dijo...

Me encanto el video. esta muy practico tu ejemplo. pero ahora como inserto, elimino y guardo.

Mil gracias ;)

Anónimo dijo...

estoy haciendo esto en tu ejemplo en un boton de insertar. me marca error

sqlc = "Insert into Alurnos(Nombre,ApellidoP,ApellidoM,IMeil) Values('" & txtNombre.Text & "','" & txtApellidoP.Text & "','" & txtApellidoM.Text & "','" & txtIMeil.Text & "')"
comMando = New OleDbCommand(sqlc, coneXion)
comMando.CommandType = CommandType.Text
comMando.CommandText = sqlc
comMando.ExecuteNonQuery()


como ejecuto el comando?}


Gracias!

Jeancarlos dijo...

hola, muy buen trabajo, es un codigo muy sencillo, pero dime podras mostrarnos como guardar ahora? con ese mismo ejemplo, agregar un boton guardar, o quiza modificar, te lo agradeceria mucho, al menos comentarlo. Muchas gracias. Jeancarlos

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...