Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

11
Buscar el Guille, la Web del Visual Basic, C#, .NET y más... Lo+ - WinFX - .NET - A DO.NET - ASP.NET - Cómo... - Colabora - VB6 - HTML - Vista - Links - Foros Buscar en Google y en elGuille.info: Búsqueda personalizada ADO.NET Acceso a ficheros dBase (.dbf) desde Visual Basic .NET y C# Publicado el 07/Feb/2009 Actualizado el 07/Feb/2009 Autor: Guillermo 'guille' Som Los ficheros de dBase (extensión .dbf) son ficheros de bases de datos usados por lenguajes de programación xBase como dBase, Clipper y [Visual] FoxPro, aquí te explico cómo usarlas desde Visual Basic .NET y C# usando ADO.NET. Office Viewer OCX www.ocxt.com Host office documents in a web page or form. Support automation, upload Multilizer www.multilizer.com Use Multilizer tools to make software localization productive. Vacaciones en Crucero www.royalcaribbean-espanol.com Vive tus Vacaciones viajando con Royal Caribbean y disfruta! تحدي لن تصدق ما ترى أمامكwww.mokhtlf.com تحدي أم ستتجاھله الن واحد ھل ستقبل ق في مكا ط غرب على ا اعادتك؟ كEscritorio Remoto www.TeamViewer.com Seguro, sencillo y gratis. Pruébenlo gratis ahora! Database for .NET www.versant.com/ Store .NET objects directly without OR mapping and boost performance. 13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis… elguille.info/…/acceso_ficheros_dbase_v… 1/11

Transcript of Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Page 1: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Buscar

el Guille, la Web del Visual Basic, C#, .NET y más...

Lo+ - WinFX - .NET - ADO.NET - ASP.NET - Cómo... - Colabora - VB6 - HTML - Vista - Links - Foros

Buscar en Google y en elGuille.info:

Búsqueda personalizada

ADO.NET

Acceso a ficheros dBase (.dbf) desdeVisual Basic .NET y C#

Publicado el 07/Feb/2009Actualizado el 07/Feb/2009Autor: Guillermo 'guille' Som

Los ficheros de dBase (extensión .dbf) son ficheros de bases de datos usados por lenguajes de programación xBase como dBase,Clipper y [Visual] FoxPro, aquí te explico cómo usarlas desde Visual Basic .NET y C# usando ADO.NET.

Office Viewer OCX www.ocxt.com

Host office documents in a web page or form.Support automation, upload

Multilizer www.multi lizer.com

Use Multilizer tools to make software localizationproductive.

Vacaciones en Crucero www.royalcaribbean-espanol.com

Vive tus Vacaciones viajando con RoyalCaribbean y disfruta!

تحدي لن تصدق ما ترى أمامك www.mokhtlf.com

اIغرب على اCطAق في مكان واحد ھل ستقبل التحدي أم ستتجاھلهكعادتك؟

Escritorio Remoto www.TeamViewer.com

Seguro, sencillo y gratis. Pruébenlo gratis ahora!

Database for .NET www.versant.com/

Store .NET objects directly without OR mappingand boost performance.

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 1/11

Page 2: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

La batallita del agüelo:

Nota:Si no quieres tragarte todo este rollo, puedes ir directamente a la explicación y al código de ejemplo.

Por si te preguntas que hace el Guille a estas alturas de la vida explicando cómo acceder a ficheros del tipo dBase, los quetienen la extensión .dbf, (que sin que nadie se moleste, son de una tecnología más vieja que yo), decirte que la verdad es queNUNCA he necesitado acceder a ese tipo de ficheros de bases de datos... hasta hace un par de días...

Fíjate si nunca los he usado que lo que tengo en mi sitio sobre cómo acceder a los ficheros dBase desde Visual Basic 6.0 (oanterior) está escrito por colaboradores, y fue algo que publiqué por primera vez en Noviembre de 1998 (¡hace más de 10años!).

Como te digo nunca he necesitado saber cómo acceder a este tipo de bases de datos (las de extensión .dbf), pero el otro día,un colega de aquí de Nerja, que está usando un programa que hice en MS-DOS hace ya más de 20 años (aunque lo sigomanteniendo) y me dijo que necesitaba que le pasara datos con formato de la exportación de ContaPlus a mi programa. Cuando he tratado con este tipo de exportaciones, siempre he preferido el formato ASCII, o sea, en texto de longitud fija,pero resulta que esos datos que quería importar en mi programa los había exportado a su vez de un programa de hotel yresulta que la gente esa del programa de hotel (que por cierto le han cobrado una pasta gansa por el programa y ademástienen un contrato mensual de mantenimiento de 60 euros mensuales), pasan olímpicamente de este colega y solo hacen darlelargas... y como resulta que el formato de exportación del programa de hotel (para compatibilizar con ContaPlus) es del tipoXBASE, es decir, en ficheros con la extensión .dbf, que para más señas son del tipo usado por Visual FoxPro (ahora te cuentoporqué hago esta aclaración), pues... tuve la necesidad de "aprender" a usarlos para así poder leer la información y guardarlaen el formato que usa mi programa.

¿Y qué hace uno cuando necesita saber algo de programación? (aparte de entrar en el sitio del Guille)Pues eso, buscar en los buscadores de Internet (en mi caso, sólo usé Google, pa que te voy a decir otra cosa).¿Y qué fue lo que me encontré?Pues... aparte de algún que otro link a lo que tengo en mi sitio para VB6 o anterior, algunas cosas más... pero casi todos losejemplos usaban cadenas de conexión para dBase IV o dBase III y los que había para usar con FoxPro, pues... no mefuncionaban, además probando de dos formas, es decir, con los proveedores para usar con objetos del tipo OleDb u Odbc.

Cuando usaba los drivers para dBase, tanto desde OleDb como desde Odbc, el error que me daba era: External table is not in the expected format, que traducido (casi libremente) viene a decir: La tabla externa no está en el formato esperado(en el mensaje de Odbc añadía ERROR [HY000] y cuatro cosas más, pero en el fondo el error era el mismo).

Decirte que las bases de datos .DBF en realidad son tablas, es decir, cada fichero es una tabla. Te digo esto, porque alprincipio tampoco tenía ni idea de cómo acceder a la tabla (con la cadena SELECT), pero después me di cuenta de que habíaque poner en mismo nombre del fichero (con o sin la extensión, eso no influye), ya que en la cadena de conexión, lo que hayque indicar es el directorio en el que están las "tablas" a las que queremos acceder.

Aclarado esto, te voy a mostrar el código (para Visual Basic .NET) que usé para acceder a las bases de datos usando OleDb yOdbc (recuerda que esto solo es válido para bases de datos del tipo dBase).

Comentar que sBase es una variable de tipo String en la que está el nombre completo de uno de los ficheros .dbf a los quequiero acceder, por eso se extrae el directorio a la hora de crear la cadena de conexión. Por otro lado, la variable sConn esuna variable de tipo String.

Usando objetos de System.Data.OleDb:

and boost performance.

C++ to C# Converter www.tangiblesoftwaresolutions.com

Most accurate C++ to C# converter. Free demo,support, & updates.

SFTP components for .NET www.eldos.com/SecureBlackbox

Build SFTP server or client applications in C#and VB.NET

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 2/11

Page 3: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _

System.IO.Path.GetDirectoryName(sBase) & _

";Extended Properties=dBASE IV;"

Using dbConn As New System.Data.OleDb.OleDbConnection(sConn)

Usando objetos de System.Data.Odbc:

sConn = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & _

System.IO.Path.GetDirectoryName(sBase) & ";"

Using dbConn As New System.Data.Odbc.OdbcConnection(sConn)

Recuerda que estas dos formas solamente funcionan con bases de datos más antiguas, es decir, las creadas con dBase (ypuede que con Clipper, pero no te lo puedo asegurar). Es decir, NO serviría para abrir bases de datos creadas con FoxPro (ocompatibles con el formato usado por ese lenguaje).

Sigo con mi batallita.

La cuestión es que los ficheros de prueba que yo tenía no los abría con esas cadenas de conexión y probando con otrasespecíficas de FoxPro, tampoco, ya que me decía que no tenía nada que hacer...

Si probaba OleDb con la cadena: Provider=vfpoledb.1;Data Source=<el directorio>El error era: The 'vfpoledb.1' provider is not registered on the local machine, que traducido sería algo así como que elproveedor ese no está registrado en la máquina local (también probé con vfpoledb).

Si probaba con Odbc usando la cadena (que finalmente es la correcta): Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=<el directorio> El error era: Driver does not support this function, que traducido sería algo así como: El driver no soporta esta función.

El código de OleDb lo probé mucho después que el del Odbc, ya que si me llega a dar un error como ese de OleDb, en el que seindica "claramente" que el proveedor usado no está registrado, me hubiera dado cuenta de que me faltaba algo en mi equipopara que esto funcionara, ya que el error ese de que el driver no soporta la función, lo que me viene a decir, es que el driverSÍ está presente, pero que alguno de los parámetros está mal. En las pruebas que hice la cadena de conexión tenía más opciones que después me he dado cuenta que no son necesarias, almenos si se quieren usar los valores predeterminados, ya que la cadena de conexión era algo así:"Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & System.IO.Path.GetDirectoryName(sBase) &";Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"

Y como en mi búsqueda me topé con programas que abrían esos tipos de ficheros e incluso me permitían exportarlos a otrosformatos, y algunos de ellos los abrían todos, lo que pensé es que el Guille es más torpe de la cuenta y no es capaz de abrirun fichero de tipo .DBF.

Pero no soy tan torpe, ya que finalmente conseguí lo que me proponía (bueno, en realidad, algo torpe si que soy, pero nodemasiado, al menos eso es lo que puedo aparentar, particularmente después de haber dado con la clave de mis quebraderosde cabeza con los dichosos ficheros .dbf).

La cuestión es que uno de estos programas te permitían exportar los datos a formato dBase IV, dBase III, FoxPro, etc. Asíque, los exporté. Y pude abrir (usando el código de OleDb) los que tenían formato dBase, pero no los de FosPro ni los quetenía originales.

Y como soy muy morruo (además de torpe), pensé que si ese programa (y otros dos más que probé) son capaces de abrir esetipo de ficheros... pues... eso, que ¿por qué yo no iba a ser capaz?

La cosa es que me busqué la estructura de este tipo de ficheros, lo abrí con un editor de texto (en modo binario y normal aver si...) y lo único que saqué en claro es lo que después vi en la página de explicación del formato .dbf y en la que explica losformatos según el primer byte del fichero, que para el fichero con formato dBase III era 03, para dBase IV era 43 y paraFoxPro era 30 (todo en hexadecimal). Y como resulta que los ficheros que yo tenía también tenían un 30, fue fácil deducir que estaban en formato de Visual FoxPro,por tanto... tenía que usar las cadenas de conexión de FoxPro, pero... si no me funcionaban... (recuerda que me daba error deque el driver no soportaba la función) ¿qué hacer?

Pues... lo que tendría que haber hecho unas cuantas horas antes: ir al sitio de Microsoft y bajarme los drivers para VisualFoxPro (si es que es de cajón, pero... en fin...).

Y eso hice, busqué dónde estaban esos drivers, los bajé, los instalé y todo funcionando, además, con esa cadena de conexiónme permitía abrir los tres tipos de ficheros .dbf... en fin...

Usa este link si necesitas descargar los drivers ODBC de Microsoft Visual FoxPro para abrir cualquier tipo de ficheros .dbf (almenos los compatibles) y con toda seguridad, algunos más (los usados por ese lenguaje).

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 3/11

Page 4: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Y este otro link es para descargar los drivers OLEDB de Microsoft Visual FoxPro 9.0 (aunque este ni lo he bajado, ni porsupuesto, lo he instalado ni probado).

Y ahora te explicaré algo del formato .dbf y te mostraré el código para abrir y acceder a bases de datos que están en estostipos de ficheros (usando ODBC), y como dice el título de este artículo, usando Visual Basic .NET y Visual C#.

Explicación del formato usado por el tipo .dbf y ejemplos

Si no quieres saber "un poco" de cómo es el formato de los ficheros .dbf puedes pasar directamente al código de cómoacceder a los ficheros .dbf usando ODBC (por supuesto con código para Visual Basic .NET y para el de Visual C#).

Explicación (rápida) de qué es un fichero de tipo .dbf

Sin enrollarme demasiado, comentarte que un fichero .dbf (al menos los compatibles con el original de dBase o los usados porlos lenguajes conocidos como xBase: dBase, Clipper, FoxPro / Visual Fox Pro, etc.) en realidad es el equivalente a una tabla deuna base de datos. Ese fichero incluye la información de los campos que tiene esa tabla, de qué tipos son, cuántos registroshay y cuáles son esos registros (si es que hay alguno).

Nota de los cuelgues del Expression Web 2:Al ir a añadir el link del texto de abajo, se me colgó y como ese texto lo escribí y no guardé antes de ir a poner el link,pues... lo perdí... en fin... por suerte, se cuelga menos que antes...

Y otra vez se ha colgado, esta vez, al poner los links del párrafo de arriba... en fin... tendré que reiniciar el equipo a versi... ¡zeñó, zeñó, que crú con el e-precion güé!

Si quieres saber más sobre la estructura de los ficheros xBase (extensión .dbf), puedes verlo desde este link:Estructura de los ficheros .dbf.

El código de ejemplo usando el controlador ODBC

Como el título dice, vamos a usar las clases del espacio de nombres System.Data.Odbc para acceder a los ficheros conextensión .dbf, que tal como te he comentado antes, lo que contienen es una tabla.

Para crear el ejemplo, tendrás que crear una aplicación de Windows, añadir dos cajas de texto, dos botones y unDataGridView (todo esto si tienes el Visual Studio 2005 o superior).

Una de las cajas de texto (txtFic) tendrá el path a un fichero con la extensión .dbf (admite drag & drop), de lo que haya enesa caja de textos se usará solo el nombre del directorio.La otra caja de texto (txtSelect) tendrá el nombre del fichero al que queremos acceder, y tal como ya te he comentado, esenombre de fichero en realidad lo usaremos como nombre de la tabla. Y tal como he comentado antes, se puede indicar tantocon la extensión .dbf como sin ella. En las operaciones de abrir o arrastrar y soltar se toma el nombre del fichero soltado (oabierto) sin la extensión y es lo que se asigna en esa caja de textos.Los botones sirven para seleccionar un fichero (btnExaminar) y el otro para abrir la tabla (btnAbrir) y mostrarla en el grid(dgvDiarios).

Este es el código de Visual Basic para abrir la "base de datos" (más abajo tienes el código completo de VB del formulario):

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 4/11

Page 5: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Dim sBase As String = txtFic.Text

Dim sSelect As String = "SELECT * FROM " & txtSelect.Text

Dim sConn As String

sConn = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & _

System.IO.Path.GetDirectoryName(sBase) & ";"

Using dbConn As New System.Data.Odbc.OdbcConnection(sConn)

Try

dbConn.Open()

Dim da As New System.Data.Odbc.OdbcDataAdapter(sSelect, dbConn)

Dim dt As New DataTable

da.Fill(dt)

dgvDiarios.DataSource = dt

dbConn.Close()

Catch ex As Exception

MessageBox.Show("Error al abrir la base de datos" & vbCrLf & ex.Message)

Exit Sub

End Try

End Using

Este es el código de Visual C# para abrir la "base de datos" (más abajo tienes el código completo de C# del formulario):

string sBase = txtFic.Text;

string sSelect = "SELECT * FROM " + txtSelect.Text;

string sConn;

sConn = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" +

System.IO.Path.GetDirectoryName(sBase) + ";";

using (System.Data.Odbc.OdbcConnection dbConn = new System.Data.Odbc.OdbcConnection(sConn))

{

try

{

dbConn.Open();

System.Data.Odbc.OdbcDataAdapter da = new System.Data.Odbc.OdbcDataAdapter(sSelect, dbConn);

DataTable dt = new DataTable();

da.Fill(dt);

dgvDiarios.DataSource = dt;

dbConn.Close();

}

catch (Exception ex)

{

MessageBox.Show("Error al abrir la base de datos\n" + ex.Message);

return;

}

}

Y esto es todo... solo comentarte que te fijes en la cadena SELECT, en la que se indica el nombre del fichero al que queremosacceder (y en la cadena de conexión hay que indicar el directorio en el que está ese fichero), y que puede estar con o sin laextensión .dbf.

Espero que te sea de utilidad.

Nos vemos.Guillermo

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 5/11

Page 6: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Resto del código del formulario de prueba

El código del formulario para Visual Basic .NET:

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 6/11

Page 7: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Imports System

Imports System.Windows.Forms

Imports System.Data

Public Class Form1

Private Sub btnExaminar_Click(ByVal sender As Object, _

ByVal e As EventArgs) _

Handles btnExaminar.Click

Dim oFD As New OpenFileDialog

With oFD

.Filter = "Ficheros DBF (*.dbf)|*.dbf|Todos (*.*)|*.*"

.FileName = txtFic.Text

If .ShowDialog = DialogResult.OK Then

txtFic.Text = .FileName

' El nombre del fichero

txtSelect.Text = System.IO.Path.GetFileNameWithoutExtension(txtFic.Text)

btnAbrir_Click(Nothing, Nothing)

End If

End With

End Sub

Private Sub btnAbrir_Click(ByVal sender As Object, _

ByVal e As EventArgs) _

Handles btnAbrir.Click

Dim sBase As String = txtFic.Text

Dim sSelect As String = "SELECT * FROM " & txtSelect.Text

Dim sConn As String

sConn = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" & _

System.IO.Path.GetDirectoryName(sBase) & ";"

Using dbConn As New System.Data.Odbc.OdbcConnection(sConn)

Try

dbConn.Open()

Dim da As New System.Data.Odbc.OdbcDataAdapter(sSelect, dbConn)

Dim dt As New DataTable

da.Fill(dt)

dgvDiarios.DataSource = dt

dbConn.Close()

Catch ex As Exception

MessageBox.Show("Error al abrir la base de datos" & vbCrLf & ex.Message)

Exit Sub

End Try

End Using

End Sub

Private Sub Form1_DragDrop(ByVal sender As Object, _

ByVal e As DragEventArgs) _

Handles Me.DragDrop, txtFic.DragDrop

' Drag & Drop, aceptar el primer fichero

If e.Data.GetDataPresent("FileDrop") Then

txtFic.Text = CType(e.Data.GetData("FileDrop", True), String())(0)

txtSelect.Text = System.IO.Path.GetFileNameWithoutExtension(txtFic.Text)

End If

End Sub

Private Sub Form1_DragEnter(ByVal sender As Object, _

ByVal e As DragEventArgs) _

Handles Me.DragEnter, txtFic.DragEnter

' Drag & Drop, comprobar con DataFormats

If e.Data.GetDataPresent(DataFormats.FileDrop) Then

e.Effect = DragDropEffects.Copy

End If

End Sub

End Class

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 7/11

Page 8: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

El código del formulario para C#:

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 8/11

Page 9: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_DragEnter(object sender, DragEventArgs e)

{

// Drag & Drop, comprobar con DataFormats

if (e.Data.GetDataPresent(DataFormats.FileDrop))

{

e.Effect = DragDropEffects.Copy;

}

}

private void Form1_DragDrop(object sender, DragEventArgs e)

{

// Drag & Drop, aceptar el primer fichero

if (e.Data.GetDataPresent("FileDrop"))

{

txtFic.Text = ((String[])e.Data.GetData("FileDrop", true))[0];

txtSelect.Text = System.IO.Path.GetFileNameWithoutExtension(txtFic.Text);

}

}

private void btnExaminar_Click(object sender, EventArgs e)

{

OpenFileDialog oFD = new OpenFileDialog();

oFD.Filter = "Ficheros DBF (*.dbf)|*.dbf|Todos (*.*)|*.*";

oFD.FileName = txtFic.Text;

if (oFD.ShowDialog() == DialogResult.OK)

{

txtFic.Text = oFD.FileName;

// El nombre del fichero

txtSelect.Text = System.IO.Path.GetFileNameWithoutExtension(txtFic.Text);

btnAbrir_Click(null, null);

}

}

private void btnAbrir_Click(object sender, EventArgs e)

{

string sBase = txtFic.Text;

string sSelect = "SELECT * FROM " + txtSelect.Text;

string sConn;

sConn = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=" +

System.IO.Path.GetDirectoryName(sBase) + ";";

using (System.Data.Odbc.OdbcConnection dbConn = new System.Data.Odbc.OdbcConnection(sConn))

{

try

{

dbConn.Open();

System.Data.Odbc.OdbcDataAdapter da = new System.Data.Odbc.OdbcDataAdapter(sSelect, dbConn);

DataTable dt = new DataTable();

da.Fill(dt);

dgvDiarios.DataSource = dt;

dbConn.Close();

}

catch (Exception ex)

{

MessageBox.Show("Error al abrir la base de datos\n" + ex.Message);

return;

}

}

}

}

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 9/11

Page 10: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

Mentor de

Glosario:

Morruo: Tozudo, obstinado, cabezón, en el sentido de cabezota que cuando se le mete algo en la cabeza no hay quién loconvenza de otra cosa.

Espacios de nombres usados en el código de este artículo:

System.DataSystem.Data.OdbcSystem.IO

Contribuye con el Guille

Aporta tu granito de arena y ayuda a mantener el sitio del Guille...

Cosas que te pueden interesar

¿Te gusta programar? Si te gusta programar por programar, este es tu sitio

El blog del Guille: elGuille mola

Firmas invitadas (artículos que no puedes perderte)

Novedades de Visual Basic 9.0

Aprenda C# 3.0 desde 0.0 - Parte 3, lo nuevo

Todas las novedades de C# 3.0, contadas al estilo del Guille

Los viajes del Guille Por si quieres saber por dónde ha estado el Guille dando charlas y demás...

Los foros de el Guille (para que hagas consultas y veas lo que otros han preguntado)

elGuille.Hosting (las ofertas de alojamiento de el Guille, posiblemente los mejores precios del mercado)

Artículos del Guille publicados en dotNetManía (en formato PDF)

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 10/11

Page 11: Acceso a Ficheros dBase (.Dbf) Desde Visual Basic

MVP de Visual Basic desde 1997

Orador de Ineta Latam

Escribir un mensaje al Guille (mensaje EN elGuille.info)

Has entrado usando el host: www.elguille.info

Puedes verlo también en: http://www.mundoprogramacion.com/net/adonet/acceso_ficheros_dbase_vbnet_csharp.aspx

13/12/2010 Acceso a ficheros dBase (.dbf) desde Vis…

elguille.info/…/acceso_ficheros_dbase_v… 11/11