sábado, 21 de enero de 2012

¿Cómo acceder a dbf desde vb.net?





Uno de los problemas que podemos tener al hacer un programa con vb.net es con el acceso a datos dbf, como contaplus, facturaplus, etc.
Bueno voy a poner un pequeño ejemplo de como se puede acceder a datos dbf con de una forma muy sencilla.


Espero que os sea de ayuda.


Hasta la próxima.

5 comentarios:

  1. ahora como leo los campos

    ResponderEliminar
    Respuestas
    1. Esto solo es un ejemplo de como funciona la cadena de conexión a dbase, para acceder a los campos tienes que montar un "DataAdapter", "DataTable", "BindingSource", etc...

      Si no sabes como hacerlo, házmelo saber y te lo indico en un nuevo post.

      Eliminar
    2. por favor necesito abrir un dbf en un datagridview como lo podria hacer en visual 2008

      Eliminar
    3. hola, amigo, bueno para cargar un dbase en un datagridview, puedes utilizar la parte del código que tienes en este post o bien crear una conexión odbc sobre la carpeta donde se encuentran los archivos dbase, esta es la forma más sencilla, y en visual studio conectar con la fuente de datos odbc, ya en el programa puedes utilizar los controles que te ofrece VS, espero que te ayude, saludos

      Eliminar
    4. hacer lo siguiente:
      Imports System.Data.OleDb
      Imports System.IO
      Public Class FrmDbfXls
      Private Sub FrmDbfXls_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      DgvDatos.Enabled = False
      DgvDatos.Visible = False
      DgvDatos.ForeColor = Color.Black

      End Sub

      Private Sub BtnBuscar_Click(sender As Object, e As EventArgs) Handles BtnBuscar.Click
      ' Obtiene el nombre del archivo a buscar con filedialog
      Dim OfdbuscaArchivo As New OpenFileDialog
      Dim Archivo As Stream
      Dim Ruta As String
      Dim SoloNombre As String
      OfdbuscaArchivo.InitialDirectory = "C:\"
      OfdbuscaArchivo.Filter = "Archivos DBF (*.dbf)|*.dbf"
      OfdbuscaArchivo.RestoreDirectory = True
      OfdbuscaArchivo.Title = "Seleccione un archivo DBF"
      If OfdbuscaArchivo.ShowDialog = Windows.Forms.DialogResult.OK Then
      Try
      Archivo = OfdbuscaArchivo.OpenFile
      TxtFile.Text = OfdbuscaArchivo.FileName
      SoloNombre = OfdbuscaArchivo.SafeFileName
      DgvDatos.Enabled = True
      DgvDatos.Visible = True
      Ruta = System.IO.Path.GetDirectoryName(TxtFile.Text)
      ' Obtiene datos del archivo seleccionado
      DgvDatos.DataSource = ObtenerDatos(SoloNombre, Ruta)
      Catch ex As Exception
      MsgBox("Error obteniendo archivo DBF !!" + ex.Message, MsgBoxStyle.Critical, "Error Archivo")
      End Try
      End If
      End Sub

      Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      Me.Close()
      End Sub

      Private Function ObtenerDatos(ByVal archivo As String, ByVal xPath As String) As DataTable
      Dim con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & xPath & _
      "; Extended Properties='dBASE IV'; User ID=; Password=")
      Dim cmd As New OleDbCommand
      cmd.CommandText = "SELECT * FROM " & archivo
      cmd.Connection = con
      Try
      con.Open()
      Using dtArchivo As New DataTable
      Using da As New OleDbDataAdapter(cmd)
      da.Fill(dtArchivo)
      Return dtArchivo
      End Using
      End Using

      Catch ex As Exception
      MsgBox("Error generando datos del archivo: " + " " + ex.Message, MsgBoxStyle.Critical, "Mensaje Datos")
      Return Nothing
      Finally
      con.Close()
      End Try
      End Function

      End Class

      Eliminar

Datos personales

avjsite

elxopet.blogspot.com.es

elxopet.blogspot.com.es
banner elxopet.blogspot.com.es

Muchas gracias a tod@s