Hola: Estoy trabajando en una pag. Web y necesito acceder a las propiedades de una tabla de access. Te explico. Cada cierto tiempo importo una tabla de access y necesito tener acceso a su su fecha de modificación. Te agradecería si pudieras ayudarme. Gracias.
Tienes la tabla de sistema MSysObjects. El campo DateUpdate te devuelve la fecha de moficación.
He conseguido ver los campos de la tabla con una select desde access. select * from MSysObjects; Mi duda es como la select desde fuera de access. Por favor podrías indicarme como hacerlo con por ejem. una tabla llamada clientes. Muchísimas gracias.
Tienes que hacerlo con ADO. Creas un objeto ADODB. Connection y abres la conexión con la base de datos. Luego, con el mismo objeto, ejecutas la sentencia SQL, y te devolverá un Recordset donde podrás acceder al contenido.
Tengo entendido que Access no te brinda información acerca de la fecha de la última modificación de una tabla. Lo que se me ocurre que podrías hacer es manejar un campo que te lo indique.
¿Podrías aclararme un poco como hacerlo porque no tengo ni idea? Gracias.
Me refiero a mantener un campo dentro de la tabla que te interese usar en el que guardes la fecha actual cada vez que actualices la tabla. ¿Se entiende?
- Anónimoahora mismo
Respuesta de reynerd
1
1
reynerd, Trabajo en programacion web desde hace ya 6 años
Te envio un ejemplo que yo utilizo para listar las tablas de una base de access y luego los registros de cada tabla. Justamente en este caso hago lo mismo qeu vos, subo un archivo de access y listo todo lo qeu hay adentro. Fijate en www.asp101.com/samples/ .. creo que hay un ejemplo de como hacer esto. Saludos y suerte Nico <% Response.Flush Set connSegnet = Server.CreateObject("ADODB.Connection") cnpath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & Server.Mappath("bases/segnet.mdb") & "';" connSegnet.Open cnpath Set objRS = connSegnet.OpenSchema(adSchemaTables) If Not objRS.EOF Then objRS.MoveFirst Response.Write "<table border='0' cellPadding='2' cellSpacing='2'>" & chr(10) Response.Write "<tr>" Do While Not objRS.EOF ' Rule out everything but tables and don't list system tables. ' Note MSys is only for OLEDB. If objRS.Fields("TABLE_TYPE") = "TABLE" AND Left(objRS.Fields("TABLE_NAME"), 4) <> "MSys" Then Response.Write "<td class=tblTitulo align=center width=100>" if trim(request("tabla")) = trim(objRS.Fields("TABLE_NAME")) then Response.Write "<b>" else Response.Write "<a href='BIARTSegnetHabilitados.asp?accion=VerTabla&Tabla=" Response.Write Server.URLEncode(objRS.Fields("TABLE_NAME")) & "'>" end if Response.write objRS.Fields("TABLE_NAME") if trim(request("tabla")) = trim(objRS.Fields("TABLE_NAME")) then Response.Write "</b>" else Response.Write "</a>" end if Response.Write "</td>" End If objRS.MoveNext Loop Response.Write "</tr>" Response.Write "</table>" set objRS = nothing Response.Flush if request("accion") = "VerTabla" then sTableName = request("tabla") sSqlString = "SELECT * FROM [" & sTableName & "]" if request("orden") <> "" then sSqlString = sSqlString & " ORDER BY [" & request("orden") & "]" Set RSResult = Server.CreateObject("ADODB.Recordset") RSResult.Open sSqlString, connSegnet, adOpenForwardOnly, adLockReadOnly If Not RSResult.EOF Then RSResult.MoveFirst Response.Write "<p><table border='0' cellPadding='2' cellSpacing='1'>" & chr(10) Response.Write "<tr>" For I = 0 to RSResult.Fields.Count - 1 Response.Write "<td nowrap class=tblTitulo>" Response.Write "<a href='" & Request.ServerVariables("script_name") Response.Write "?accion=VerTabla&Tabla=" & Server.URLEncode(sTableName) Response.Write "&Orden=" & Server.URLEncode(RSResult.Fields(I).Name) Response.Write "'>" Response.write RSResult.Fields(I).Name & "</a></td>" & chr(10) Next 'I Response.Write "</tr>" Do While Not RSResult.EOF Response.Write "<tr>" For I = 0 to RSResult.Fields.Count - 1 Response.Write "<td>" If IsNull(RSResult.Fields(I).Value) Or RSResult.Fields(I).Value = "" Or VarType(RSResult.Fields(I).Value)= vbNull Then Response.write " " Else if instr(1,RSResult.Fields(I).Name,"mail") then Response.Write "<a href='mailto:" & RSResult.Fields(I).Value & "'>" Response.Write RSResult.Fields(I).Value & chr(10) if instr(1,RSResult.Fields(I).Name,"mail") then Response.Write "</a>" End If Response.Write "</td>" Next 'I Response.Write "</tr>" Response.Flush RSResult.MoveNext Loop Response.Write "</table>" RSResult.close set RSResult = nothing end if connSegnet.Close set connSegnet = nothing %>
Lo que necesito no es mostrar el contenido de la tabla sino acceder a sus propiedades como fecha de creacion de modificación etc..... los cuales no son campos de la tabla sino propiedades de la misma. Gracias.
Ahh, lo que queres mostrar son las propiedades del archivo .. seria como cualquier archivo ... Seria asi... Set fs = Server.CreateObject("Scripting.FileSystemObject") Set file = fs.GetFile(Server.MapPath("base.mdb")) Tamaño: file. Size Fecha Creacion: file. DateCreated Fecha Modificacion: file. DateLastModified si no sabes qeu clase de archivo es .. y queres mostrar el tipo de archivo, podeias hacer file.Type no me acuerdo mas propiedades, fijate en la ayuda que debes tener mas ...