Visual Basic - conexion a DBF

Life is soft - evento anual de software empresarial
   
Vista:

conexion a DBF

Publicado por energy (48 intervenciones) el 01/09/2008 23:13:34
hola, tengo este code para enlazarme a la base de datos y mandar y traer info

Set db = OpenDatabase("datadata.mdb")
SQL = "SELECT * FROM clientes WHERE cliente = '" & client & "'"
Set rec = db.OpenRecordset(SQL)
rec.MoveFirst
Text1 = rec("dir")
Text2 = rec("tel")

la base hecha en access y todo normal, lo ke necesito es hacer lo mismo pero para un DBF, traer o enviar informacion, alguien sabe como? gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:conexion a DBF

Publicado por jose carlos (3 intervenciones) el 02/09/2008 00:10:07
Public basedbf As DAO.Database 'Definimos el objeto Database
Public recordsetdbf As DAO.Recordset 'Definimos el objeto Recordset

Set basedbf = OpenDatabase("c:carpeta", False, False, "dBASE III;")

Set recordsetdbf = basedbf.OpenRecordset("select * from archivodbf order by nombre")

dato=recordsetdbf.Fields("campo")
recordsetdbf.MoveNext

prueba con esto

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:conexion a DBF

Publicado por energy (48 intervenciones) el 02/09/2008 01:06:21
hola
gracias por tu respuesta
tengo un file llamado cel_data.dbf trae camposde folio y nombre
el codigo ke tengo ahora es este

Set basedbf = OpenDatabase("C:UsersenergyDesktop ew credeDATA", False, False, "dBASE III;")
Set recordsetdbf = cel_data.OpenRecordset("select * from cel_data order by folio")
Text1 = recordsetdbf.Fields("nombre")
recordsetdbf.MoveNext

me marca error en variable not defined en esta linea, (segun el cel_data)

Set recordsetdbf = cel_data.OpenRecordset("select * from cel_data order by folio")

gracias por su apoyo de verdad, otra dudita, como seria la linea de instruccion ke me diga

select * from cel_data where folio like text1.text
mas o menos es la idea, para asi traer los datos de la base de ese folio, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:conexion a DBF

Publicado por energy (48 intervenciones) el 02/09/2008 01:11:03
ya no, ya vi ke tenia mal, pero en este mismo codigo ya corregido me sale este error

la tabla externa no tiene el formato esperado

Set basedbf = OpenDatabase("C:UsersenergyDesktop ew credeDATA", False, False, "dBASE III;")
Set recordsetdbf = basedbf.OpenRecordset("select * from cel_data order by folio")
Text1 = recordsetdbf.Fields("nombre")
recordsetdbf.MoveNext

aun tengo la duda de como seria la linea de instruccion ke me diga

select * from cel_data where folio like text1.text para que me traiga el nombre de ese folio, grax
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:conexion a DBF

Publicado por marchand (59 intervenciones) el 02/09/2008 09:12:27
En la conexión sustituye dBASE III por dBASE IV

La consulta:
"SELECT * FROM cel_data WHERE folio LIKE '" & Text1.Text & "*'"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:conexion a DBF

Publicado por jose carlos (3 intervenciones) el 02/09/2008 17:37:52
Se me olvidó decirte que donde pone DBASE III debes de poner el tipo de DBASE que usa como te ha dicho MARCHAND. Por otro lado, en la versión de VB que usé estas sentencias (la 4.0) hay una cosa que tienes que tener cargada en concreto son REFERENCIAS y debes de picar en MICROSOFT DAO 2.5/3.51 COMPATIBILITY LIBRARY.

Con respecto a tu pregunta hablas de un archivo que es

cel_data.dbf

y tiene los campos nombre y folio

para cargar el contenido del campo nombre debes poner

text1=recordsetdbf.Fields("nombre")

con esto debe de cargarse el contenido del primer dato en TEXT1 y nada mas, la orden

recordsetdbf.movenext lo que hace es pasar el puntero al siguiente registro, si pones

text2=recordsetdbf.Fields("nombre")

pondría en text2 el siguiente registro. Piensso que mejor sería ponerlo en una malla o grilla, yo lo hice con un control MSFLEXGRID defines el número de filas y columnas y colocas las sentencias

recordsetdbf.MoveFirst
For x = 1 To 10
LISTA.Col = 1
LISTA.Row = x
LISTA = recordsetdbf.Fields("nombre")
LISTA.COL=2
LISTA.ROW=x
LISTA=recordsetdbf.fields("folio")
recordsetdbf.MoveNext
next

LISTA es el nombre que le di a la malla MSFLEXGRID

Tendrás que poner cabeceras a la primera línea y primera columna, para ver los nombres de lo que va a contener como:

XXXXX NOMBRE FOLIO
1
2
3

Esto se pondría asi

lista.col=0
lista.row=0
lista="XXXXX"
lista.col=0
lista.row=0
lista="NOMBRE"
lista.col=0
lista.row=0
lista="FOLIO"

FOR X=0 TO NUMERO DE DATOS
LISTA.ROW=0
LISTA.COL=X
LISTA=X
NEXT

Y ahora a rellear la grilla con las sentencias expuestas anteriormente.

Espero que te aclares un poco con este rollo que me he marcado.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:conexion a DBF

Publicado por manuel angel (2 intervenciones) el 20/03/2011 00:26:23
ola amigos disculpen yo tengo el mismo problema sobre las tablas libres dbf
en referencia a la respuesta anterior
"Se me olvidó decirte que donde pone DBASE III debes de poner el tipo de DBASE que usa como te ha dicho MARCHAND. Por otro lado, en la versión de VB que usé estas sentencias (la 4.0) hay una cosa que tienes que tener cargada en concreto son REFERENCIAS y debes de picar en MICROSOFT DAO 2.5/3.51 COMPATIBILITY LIBRARY.

hice todo eso pero me arroja que la tabla externa no esta en formato esperado mi tabla esta hecha en clipper si podran darme una ayuda grcias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar