You are on page 1of 4

Acceder a una base de datos de Access usando ADO, desde un formulario Web (.

aspx)
Publicado el 02/Ene/2004 Actualizado el 02/Ene/2004 Introduccin
En este ejemplo se accede a una base de datos de Access usando ADO. Como vers el cdigo ser parecido al que se usara en una pgina ASP normal. Lo nico que tenemos que hacer es: Indicar que se va a usar compatibilidad con COM. Esto se consigue indicando aspcompat = true en la directiva ASP.NET indicada al principio de la pgina. La forma de acceder a los objetos ADO (que son COM/ActiveX) ya que habr que usar cdigo "compatible" con punto NET, al menos en la forma de llamar a los mtodos y funciones, es decir usando los parntesis para encerrar los parmetros. Ya que por lo dems, el cdigo es "exactamente" el mismo que se usara con ASP y VBScript. Panorama

En el ejemplo siguiente, se da por supuesto que existe un directorio llamado "datos" que est en el mismo directorio que la pgina ASPX, si cambias la localizacin de ese directorio, tendrs que cambiar el cdigo de la conexin, ms concretamente en el parmetro a Server.MapPath(...). En el zip con el ejemplo, incluyo una pequea base de datos que es la usada en el formulario Web. Por tanto, si lo descomprimes, procura que la base de datos se quede dentro del

directorio "datos". De forma predeterminada se crear ese directorio. Dnde descomprimir el fichero? Dentro del directorio "localhost", por defecto es: C:\Inetpub\wwwroot Para acceder a la pgina de prueba, tendrs que usar http://localhost/ejemploAccessADO.aspx Por supuesto esto slo ser posible si tienes el Windows 2000/XP Profesional o un Windows Server que tenga instalado el IIS. En este ejemplo slo muestro el cdigo de Visual Basic, ya que al fin y al cabo es VBScript.

Nota: Este ejemplo realmente no utiliza ningn control ASP.NET, slo cdigo "puro y duro".

El link al cdigo de ejemplo: ejemploAccess.zip (13.4KB) El cual incluye tambin el ejemplo de acceso a ADO.NET (tanto para VB como para C#)

El cdigo para VBSCRIPT.

<% @Page aspcompat=true Language = VB %> <html> <head> <title>Acceso a datos con compatibilidad ASP (COM)</title> </head> <BODY bgcolor="#FFFFFF" text="#000000"> <p><font face="Verdana" size="4">Prueba de acceso a base de datos Access con ADO desde ASP.NET</font> <hr noshade size="3"> <font face="Verdana" size="2"> <br> <%

' Variables usadas para crear los objetos, etc. Dim Rst, Cnn Dim sConn, sTip Dim sTitulo, sLink, sApartado, sDescripcion Dim s, i ' Crear los objetos Cnn = Server.CreateObject("ADODB.Connection") ' Crear la conexin a la base de datos sConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Server.MapPath("datos\elguille.mdb") & ";" Cnn.Open(sConn) ' Crear la cadena SQL s = "SELECT * FROM Titulos ORDER BY Apartado ASC" Rst = Cnn.Execute(s) On Error Resume Next Err.Clear ' Buscar desde el principio Rst.MoveFirst i = 0 Do While Not (Rst.BOF Or Rst.EOF) i = i + 1 With Rst ' Asignar a las variables el contenido del registro sTitulo = .Fields("Titulo").Value & "" sLink = .Fields("Link").Value & "" sApartado = .Fields("Apartado").Value & "" sDescripcion = .Fields("Descripcion").Value & "" ' Mostrar los datos hallados Response.Write(i & "- <a href='" & sLink & "'>" & _ sTitulo & "</a> <b>(" & _ sApartado & ")</b><br>" & sDescripcion & "<br>") End With ' ' Mostrar el siguiente registro Rst.MoveNext Loop

Response.Write("<br>") Err.Clear If i = 0 Then Response.Write("<br><b>No se ha encontrado ningn registro que contenga") Response.Write(" lo que has especificado.</b><br>") Response.Write("Pulsa en este link para <b>") Response.Write("<a href='mostrarDatosTodo.aspx'>" Response.Write("Mostrar todos los registros</a></b>.<br>") End If ' Rst.Close Cnn.Close Rst = Nothing Cnn = Nothing ' %> <hr noshade size="3"> </font> </body> </html>

You might also like