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.
ahora como leo los campos
ResponderEliminarEsto 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...
EliminarSi no sabes como hacerlo, házmelo saber y te lo indico en un nuevo post.
por favor necesito abrir un dbf en un datagridview como lo podria hacer en visual 2008
Eliminarhola, 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
Eliminarhacer lo siguiente:
EliminarImports 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