Las Colaboraciones sobre el manejo de

Bases de datos dBase desde Visual Basic

 

Varias colaboraciones sobre dBase
Actualizado el 21/Dic/98 (19/Oct/2001)


Colaboración de: Jose Luis Soler <teodoro@arrakis.es>
Publicado el 21/Dic/1998


Amigo Guille:

He recibido varios mensajes de personas interesándose por la colaboración que te envié sobre Bases de Datos xBase.

He preparado un pequeño programa pra ilustrar la construcción de índices NDX para ese tipo de ficheros y que te acompaño para que, si te parece bien, lo coloques en la página de colaboraciones y se lo pueda llevar el personal.

Saludos,
Jose Luis Soler

teodoro@arrakis.es
http://www.arrakis.es/~teodoro


Fichero con el código de ejemplo:
NDX.zip
(3.64 KB)


Colaboración de: Patricio Castillo <patricio.castillo@gte.net>
Publicado el 21/Dic/1998


Buen titulo que me pones en la respuesta!. Ok, yo fui uno de esos miles
de programadores Clipper que quedaron desamparados de un dia al otro.
Trabaje con Clipper mas de 10 años. Ahora trabajo en Visual basic y
Delphi. Estoy a tu disposicion
para cualquier pregunta de como pasar de Clipper a Visual Basic (5.0).

Patricio Castillo


Colaboración de: Alberto Calvo <acalvogon@nexo.es>
Publicado el 21/Dic/1998


Buenos dias:

Te envio dos archivos: un ejemplo con vB30 y otro con vB50 para manejar
ficheros .mdb y .dbf. Por cierto he intentado investigar con .xls y lo he
visto muy complejo. ¿Sabes alguna forma de utilizar estos fichero sin usar
Fields? Ya que no he podido usarlo como dBase ("Numero") o ("Nombre") sino
Field(0) y Field(1)

Espero que te sirva y que les eches un ojo a estos ejemplos. Si ves la
posibilidad de mejorarlos me gustaria que me lo dijeras, y si no entiendes
algo tambien.

Un saludo y gracias por la informacion que he podido sacar, gracias a ti,
con tus paginas.

Nos vemos...


Fichero con el código para vb5:
Dbase.zip (175 KB)

Nota del Guille: sólo incluyo el código para VB5, si necesitas el código del VB3, se lo pides a Alberto. Gracias.


Colaboración de: Luis Navarro <lnavarro@microdelta.es>
Publicado el 21/Dic/1998


Para abir las tablas dbase si mal no me acuerdo es asi :

dim gDb as database
dim gClientes as recordset

set gdb=opendatabase("c:\dbase",false,false,"dbaseiii")
set gclientes=gdb.openrecordset("Clientes")

lo demas es exactamente igual que en access
por lo menos asi las abria yo antes con el vb3.0 y creo que se siguen abriendo asi

donde c:\dbase es el directorio donde se encuentra la base .dbf
y clientes es clientes.dbf que claro esta seria la base de datos


saludos, Luis Navarro


Fichero con código de ejemplo:
VbDbase.zip (1.75 KB)


Colaboración de: Pedro Naranjo <sruiza@airtal.com>
Publicado el 21/Dic/1998


Hola Guille!

Contesto a mensaje sobre los que sabemos sobre CLIPPER. Yo he realizado
programitas en Clipper para algunas empresas y lo que no se a ciencia
cierta es si quieres ayuda para trabajar en VB con ficheros DBF o trabajar
directamente con CLIPPER.

Si te refieres a usar DBF en VB, es muy parecido a usar otro tipo de base
de datos, aunque yo preferiria el uso de bases de datos MDB en lugar de
Access.
Por ponerte un ejemplo de como abrir una tabla DBF, desde DAO.

Dim Db as Database
Set Db=Opendatabase("C:\Mi_Directorio_con_DBFs", 0, 0,"DBASEIII;")

NOTA: Cuando se abre una base de datos DBF, se debe expecificar el
directorio donde estan situadas las tablas (es el equivalente al nombre del
archivo mdb de una base de datos Access). Para abrir una tabla en concreto
creamos un Recordset y la abrimos por el nombre del archivo DBF.

Ejemplo:
Dim RecDBF As RecordSet
Set RecDBF=Db.OpenRecordset("NOMBRE_ARCHIVO_DBF")

Una vez abierto puedes realizar cualquier tipo de operacion (AddNew,
Update, Delete, etc), de la misma forma que si tienes una tabla MDB.

Si quieres ampliar mas información solo tienes que enviarme un Email, OK?.

Por cierto, me gusta tu WEBSITE hay bastantes trucos y lo mejor de todo es
que nos ayudamos unos a otros (no es mi caso, ya que no suelo tener
problemas en VB, generalmente, pero he contestado a algunos de las News).
Espero que dure muuuuucho tiempo.



Un saludo.

Perico


Colaboración de: J.J. Sanchez <urquiza@espania.com>
Publicado el 21/Dic/1998


Te explico un poco por encima lo que pretendes conocer acerca de Dbase. Todo lo que te comente a continuación al igual que código etc, se refiere a la versión 5.2 de Clipper que fue en la que me quedé antes de pasarme a Visual Basic.
Tengo que comentarte que el paso de un lenguaje a otro me ha llegado a causar un cierto caos cerebral ya que el tema de eventos era totalmente nuevo para mi y el tratar de entender ciertas cosas del Visual me resultaban poco menos que metafísicas. La historia es que empecé en el año 1984 con programación estructurada y te puedes imaginar …

En fin me dejo de rollo y te cuento algo.

Las tablas como existen en Access no existen en Dbase como tales. Cada tabla es una base de datos .DBF
Los tipos de campos que admiten las DBFs son: Carácter, Numerico, Fecha, Lógicos y Memos.

Vamos a suponer una base de datos llamada CLIENTES.DBF
Con un indice asociado llamado CODIGO.NTX que se refiere al campo codigo de CLIENTES.DBF

Para colocar la base de datos se emplea el mandato USE CLIENTES INDEX CODIGO
Si no deseas activar el indice, pasas del INDEX CODIGO.

Igualmente puedes emplear la función DBUSEAREA ( , , 'CLIENTES')

Una vez puesta en uso la base de datos, para agregar registros se ha de crear un registro en blanco y luego añadirle la información. Esto se hace de la siguiente manera:

APPEND BLANK

O bien con la funcion DBAPPEND( )

Una vez puesto esto, se debe volcar la diferente información de las variables en los campos.
Supongamos que tenemos 4 campos que son Codigo, Nombre, CIF, Domicilio y mediante codigo en diferentes variables tenemos cargados los valores que queremos almacenar. Debemos hacer:

REPLACE Codigo WITH variable1
REPLACE Nombre WITH variable2
REPLACE CIF WITH variable3
REPLACE Domicilio WITH variable4

Para cerrar la base de datos se emplea CLOSE DATABASES O DBCLOSE( )

En cualquier caso tanto para modificar como para eliminar registros, lo mejor es que te coloque el codigo de rutinas ya hechas con toda su notación. Es como ves bastante sencillo.

El código que te pongo es parte de un programa que desarrolle en su dia para llevar el tema fiscal de personas físicas. Te paso la notación completa de Altas, Bajas y modificaciones. Evidentemente las llamadas a otras funciones no están aquí pero si te interesasen me das un toque.

Nota del Guille: el texto que debería seguir, creo que, es para Clipper, por tanto no está incluido... si lo quereis, enviadle un mail a J.J. Sanchez y seguro que os lo envía.


Colaboración de: Isaac Montes Sánchez <imontes@winet.ch>
Publicado el 21/Dic/1998


Con el Visual Basic Microsoft proporciona un ejemplo llamado VisData donde se
puede ver todo lo necesario para el manejo de datos enformato DBF.
El projecto VisData se encuentra normalmente en el directorio:
...\DevStudio\VB\samples\Visdata\VISDATA.VBP
y funciona perfectamente existe en VB4 y VB5.


Saludos de un asturiano desde Suiza

Isaac Montes Sánchez
E-Mail :
imontes@winet.ch


Colaboración de: Hugo Alberto FRANCO <chypsa@cadema.com.ar>
Publicado el 21/Dic/1998


Hola Guille, bueno respecto a tu pedido de ayuda te mando mi humilde colaboración, no sé si te sera de utilidad, pero por lo menos lo intenté.
Te digo esto porque hace como diez años que programo en CLIPPER y hace como dos que me compré el VB 4 y nunca lo toqué porque no sabía nada al respecto, pero hace un mes me puse a estudiarlo para no perder el trén y en eso estoy, y lo primero que estudié fué como manejar bases de datos, aunque del tipo ACCES, pero como vi tu pedido y yo tenía que aprenderlo igual lo hice y va la colaboración, cualquier duda me preguntas.


Hugo Alberto FRANCO
La Plata, Buenos Aires
República ARGENTINA

Fichero con código de ejemplo:
Visdbase.zip (4.68 KB)


Colaboración de: Mauricio Díaz Aravena <mdiaz@werken.ufro.cl>
Publicado el 21/Dic/1998


De: Mauricio Díaz Aravena <<mdiaz@werken.ufro.cl>>
Fecha: lunes 14 de septiembre de 1998 16:10
Asunto: Yo_se_manejar_dBase



Aunque hace bastante tiempo que no trabajo en este tipo de BD (Clipper,
Dbase, Fox, FoxPro, etc), mis neuronas aún retienen algunos conocimientos
(la melancolía, tú sabes).
Si alguien necesita de una ayudita, pues cuenta conmigo para tratar de
hacer lo que se pueda.


Colaboración de: Juan Antonio <jatubio@iname.com>
Publicado el 21/Dic/1998


Hola Guille:

Imagino que te refieres a manejarlas desde Visual Basic.

En ese caso yo lo que he hecho hasta ahora ha sido crear una tabla vinculada en un MDB que haga
referencia a la tabla DBF y usarla como cualquier otra tabla de Access:

' Vinculamos el fichero indicado.
Set miTd = miDb.CreateTableDef("TmpDBF")
miTd.Connect = "dBASE III;DATABASE=" & sRutaDBF
miTd.SourceTableName = cNombreDBF
miDb.TableDefs.Append miTd

Set oRs = miDb.OpenRecordSet("TmpDBF")

.....

' Cierro la base de datos.
miDb.TableDefs.Delete "TmpDBF"
miDb.TableDefs.Refresh

Colaboración de: Juan Manuel Piñeiro Rivas <jpineiro@controlp.es>
Publicado el 5/Dic/1998

Hola:
Pues mira:

1º en el DAO le indicas la conexion que tienes que hacer (o al abrirla) en
la propiedad CONNECT ("DBASE IV;") , en el RecordSource el nombre de la
Tabla y en databasename el camino.

2º Una vez logrado esto, ya puedes tratar el recordset como otro cualquiera
("con algunas excepciones") (consultas SQL, ETC...)

Atentamente.
Nacho Piñeiro
Control+P Informática & Comunicaciones


Volver al índice de las colaboraciones sobre el manejo de dBase desde Visual Basic

el_guille.jpg (3322 bytes)