Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Vincular DBF mas de 8 caracteres

61 views
Skip to first unread message

Francisco Gomez

unread,
Jul 26, 2004, 9:09:00 AM7/26/04
to
Pues eso...

¿Hay alguna manera de vincular una tabla Dbase cuyo nombre
sea mayor de 8 caracteres?

¿Me voy a encontrar este problema con algún otro tipo de
fichero?

Gracias

Búho

unread,
Jul 27, 2004, 4:08:09 AM7/27/04
to
Pues efectivamente ni con el sistente, ni con codigo, me deja.
Se asume, digo yo, que dado que los ficheros DBF provienen del sistema
antiguo DOS, se limita a 8 caracteres+nombre de extension. No debería ser
así, pero los muchachos que desarrollaron Access debieron pensar lo
contrario.
A la postre, el asistente, empleará un codigo parecido a este (Digo yo):
Sub buhooprueba()
'Con Dao
Dim tdf As TableDef
Set tdf = CurrentDb.CreateTableDef("NombreTablaAccess")
' Adjuntar la tabla
tdf.Connect = "Dbase III;Database=C:\rutadbf\"
tdf.SourceTableName = "nombrelargo.dbf"
CurrentDb.TableDefs.Append tdf

End Sub

codigo que kaska cuando SourceTableName > 8 caracteres.
Se podría intentar con ADO...luego pruebo....

--

Saludos desde Valladolid
Francisco Javier García Aguado
buho...@mvp-access.com
---
http://www.mvp-access.com/buho
http://www.mvp-access.com/foro
http://groups.msn.com/Access2000VisualBasic/
Mi Perfil de MVP en Microsoft:
http://tinyurl.com/6ysvu
---


---
Este correo ha sido testeado y no tiene virus (Al menos conocidos). Saludos
de Francisco Javier García Aguado (Buho)
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.727 / Virus Database: 482 - Release Date: 26/07/2004


Búho

unread,
Jul 27, 2004, 7:15:47 AM7/27/04
to
Nada....he escrito un codigo ADOX para vincular una DBF y tiene la misma
limitacion que DAO y los asistentes de access (Manda guevos)....a 8
caracteres la DBF....
Lo tienes crudo si deseas vincular tablas de mas de 8 caracteres, salvo que
alguien nos pase por el morro un codigo milagroso.

¿Y por que de esta limitacion, digo yo?????? no lo entiendo...!!!

Búho

unread,
Jul 27, 2004, 7:33:33 AM7/27/04
to
Dimito del intento (Y no es por que no lo haya intentado por todos los
metodos que conozco...)...este es el codigo ADOX que he empleado...a ver si
a alguien se le enciende la luz:

Function LinkaTablasDBFADOX(PathDBF As String, ProveedorDBF As String, _
NombreTablaDBF As String)
Dim Catalogo As New ADOX.Catalog
Dim Tabla As New ADOX.Table

Catalogo.ActiveConnection = CurrentProject.Connection

Tabla.Name = "TablaBuhoLinkada"
Set Tabla.ParentCatalog = Catalogo
With Tabla
.Properties("Jet OLEDB:Create Link") = True
.Properties("Jet OLEDB:Link Datasource") = PathDBF
.Properties("Jet OLEDB:Link Provider String") = ProveedorDBF
.Properties("Jet OLEDB:Remote Table Name") = NombreTablaDBF
End With
Catalogo.Tables.Append Tabla

Set Catalogo = Nothing

End Function
'vamos a probar

Sub NomesaleCaguenTOOOOO()
Dim Retval
Retval = LinkaTablasDBFADOX("c:\taller\", "Dbase 5.0",
"facturanombrelargo")
End Sub
Ni con el proveedor Dbase III ni con el Dbase IV ni con el 5. No sale...
Si pongo una DBF de 8 caracteres, perfecto, sin problemas

Búho

unread,
Jul 27, 2004, 7:54:40 AM7/27/04
to
Lo conseguí, me caguen la leche !!! esto ademas de un monologo, ya era un
reto..... Es una chapuza, pero funciona.
EL tema pasa por convertir a nombre corto (Tipo MSDOS) el fichero con mas de
8 caracteres.
En este hilo se habla de ello, bien con API bien con FSO
http://www.google.com/groups?hl=es&lr=&ie=UTF-8&c2coff=1&threadm=e%24yQLAydDHA.3280%40tk2msftngp13.phx.gbl&rnum=4&prev=/groups%3Fq%3Dapi%2520nombre%2520dos%2Bgroup%253Amicrosoft.public.es.access

Me ha funcionado perfectamente con DAO y aDOX...supongo que con los
asistentes funcionará tambien, al igual con el DoCmd.TransferDatabase
...puedes hacer la prueba si quieres...!!!
Me piro a comer

E. Feijoo

unread,
Jul 27, 2004, 3:17:42 PM7/27/04
to
No se el motivo para querer utilizar un nombre de mas de ocho caracteres, pues si lo creases así, tendrías un problema 'muy gordo' si lo intentases abrir con DBase u similares... y puestos a abrirlos 'solo' con Access y los de generaciones posteriores.... ¿porque utilizar un abuelito de los formatos de bases de datos?.

Creía que el proceso era avanzar, tomando referencias de los éxitos del pasado e intentando con nuevas ideas mejorarlos o superarlos, pero eso de intentar hacer una rueda cuadrada....

Saludos E. Feijoo
P.D.
De todas formas, felicidades por haber llegado al único método lógico (y no le borres 'el osito' al ordenador, que te quedas sin el conversor automático)...

"Búho" <pacoQU...@nemo.es> escribió en el mensaje news:u%23BniB9c...@TK2MSFTNGP12.phx.gbl...

Búho

unread,
Jul 27, 2004, 3:46:21 PM7/27/04
to
Mira Enrique, yo respeto tu opnión, no sé si es querer inventar una rueda
cuadrada o triangular, eso me da lo mismo que me da igual.
Esta mañana Access si estaba cochondeando un poco de mí con este tema y opte
por reirme yo un poco de él. Aunque no sé si el resultado será que se ría él
de mí, por que el codigo falle.(Quien ríe el ultimo rie mas o mejor...ya no
sé como es el «dicho ese»)
Una vez que encontré una posible solución, ya no entré en más
divagaciones...el caso es que me lo he pasado muy bien con el tema, que es
de lo que se trata...y de paso, pues investigamos un poco más...que también
es de lo que se trata...

Por cierto...la rueda cuadrada está aquí, en forma de ejemplo, por si la
quieres ver:
www.mvp-access.com/buho/ficheros/asistentedbf.zip

Búho

unread,
Jul 27, 2004, 4:03:42 PM7/27/04
to
...por cierto...me consta que tiene un BUG para algunos ficheros dbf y sus
indices...estoy en ello.

--

Saludos desde Valladolid
Francisco Javier García Aguado

---

E. Feijoo

unread,
Jul 27, 2004, 5:13:09 PM7/27/04
to
He bajado (aun no lo he visto) tu ejemplo, solo con la intención de admirar tu esfuerzo y creatividad, pero quiero aclararte lo de la 'rueda cuadrada'.

Supongo que lo que se desea es interactuar con ficheros DBF. ya que alguna aplicación los utiliza y no se desea modificar... lo cual es respetable y punto.

Pero si creas ficheros DBF (y estos han de ser utilizados por esta aplicación), nos encontraremos con el problema de que no los podrá abrir... por ser un nombre demasiado largo, lo cual es un contrasentido...

Y si el fin es utilizarlos bajo Access ¿porque utilizar un formato de ficheros que precisa conversión y probablemente conversión de caracteres por no coincidir los códigos extendidos de los mismos?...

Teniendo en cuenta el primer comentario, y bajo mi punto de vista, es normal que los desarrolladores del Access, respetasen esta limitación dado que cuando fue creada y según Bill Gates 'a los ordenadores les sobraba con 640K. de memoria....

De cualquier forma, si mi comentario te ha molestado, mis mas humildes disculpas (aunque en mi fuero interno, el fin buscado, no el tiempo utilizado en aprender mas, se me asemeje a la cuadratura del circulo.) ;-)

Un saludo Enrique (E. Feijoo)


"Búho" <pacoQU...@nemo.es> escribió en el mensaje news:OWk49SBd...@tk2msftngp13.phx.gbl...

Búho

unread,
Jul 27, 2004, 6:46:52 PM7/27/04
to
Enrique. Lo primero es lo primero: En absoluto me ha molestado el comentario
de la rueda cuadrada. Te llevo leyendo ya cierto tiempo aquí y en otros
foros que tu muy bien sabes y ya conozco (Y respeto) tu forma de expresarte.

Segundo, respecto a las dbf's te comento algo, ya que creo que, sin ser un
error por tu parte lo que comentas, quizá sí sea desconocimiento de ciertas
situaciones.

Ejemplo real. Programa en Clipper que ataca determinadas Dbf's.
Si una dbf tiene más de 8 caracteres, por ejemplo misfacturas.dbf, el
compilador, al poner la instruccion:
USE misfacturas no produce error, simplemente abre en un area de trabajo,
dicha dbf. A efectos practicos, él mismo trunca todos los caracteres
superiores a 8 y sería lo mismo poner
USE misfacturas
USE misfactu

Luego, aquí tienes ya un escenenario (Que no sea el programa Dbase) en que
sí se permite la apertura de ficheros dbf con > 8 caracteres.

Cabría pensar que Francisco Gomez, que fue quien inició este hilo, se haya
encontrado con una situacion como ésta. Es decir, que algún programador
despistado, en su día, hizo un programa en Clipper que sí soporta ese tipo
de licencias (mas de 8 caracteres, aunque les trunque) y al utilizar el
asistente de access, éste, como ya sabemos, se negó a vincular la tabla.
(¿Es mas listo-practico el compilador de Clipper que los asistentes de
Access?)

La solución es muy simple desde el punto de vista practico. Es sencillamente
truncar con un simple «Rename» dicha Dbf a 8 caracteres. Clipper *no*
protestará, por lo que ya te he comentado y Access tampoco...con lo cual,
problema solucionado. (Esto, si lo lees, Francisco, y es tu caso, es la
solución mas razonable)

No obstante y volviendo a lo que te comentaba al principio me pareció
interesante fabricar un asistente parecido a los de Access, donde además se
contemplara esta situación.

Pues nada más por mi parte...saludos cordiales...:-)

--

Saludos desde Valladolid
Francisco Javier García Aguado

CarCar

unread,
Jul 28, 2004, 9:08:07 AM7/28/04
to
Hola Paco:

El otro día recordarás, aunque no sé yo, porque con la
cabeza que tienes (jeje), que me ayudaste con el comando
TransferDataBase vía MSN. Recordarás también que
precisamente se trataba de importar unas tablas DBF a una
base de datos Access...

Esos ficheros DBF nos lo envía cierta empresa en formato
DBF y con los nombres largos para que sean más
descriptivos, tal que: "Obras Del Mes 04 2004.dbf"

Había creado una herramienta para ayudar a la importación
de esos datos, pero los usuarios tenían que renombrar
previamente el nombre de los archivos por la limitación de
los 8 caracteres.

Gracias a haber leído este hilo me he hecho con tu
herramienta y los usuarios pueden buscar en el disco duro
con esos nombres originales y más descriptivos para
realizar la importación. ¡Más fácil para todos!.

Te envio a tu cuenta tu archivo de prueba con la opción de
adicional de "Importar" incluída.

Un abrazo,
CarCar
MVP-Access

PD: Enrique ya ves que las ruedas cuadradas a veces vienen
muy bien, gracias a los inventores de las mismas y que
teníamos las calzadas llenas de baches y con esas ruedad
vamos mejor.

>-----Mensaje original-----

>.
>

Búho

unread,
Jul 28, 2004, 9:55:12 AM7/28/04
to
Hola Carlos...sí, si me acuerdo..total fue antes de ayer... :-))
(Eso sí, una semana más y ya no pondría yo la mano en el fuego con mi
«pelota»)

Gracias por las modificaciones que hayas hecho para lo de Importar.
No he recibido todavía el correo (Ojo Carlos que la cuenta que utilizo aqui,
para escribir, tiene AntiSpam)
En cuanto lo reciba te aviso...

E. Feijoo

unread,
Jul 28, 2004, 10:45:24 AM7/28/04
to
Tendré que admitir barco como animal marino :-))

Primero, reconozco que los dbf y El DBase, los abandone en el 92/93, cuando nació el Access, aunque lo recuerdo con cariño.
Segundo, las aplicaciones (por ejemplo el Conta Plus, como clásica), continúan utilizando el formato de 8+3, el original.
Tercero, los ficheros 'son renombrados' para ser mas descriptivos, no creo que con ese nombre los cree el programa, por simple y pura compatibilidad
Cuarto, si no me equivoco, la utilidad consiste en crear el nombre corto del fichero, lo cual para casos como este es una opción elegante y útil (cosa que no he negado ni desmerecido en ningún momento), pero necesaria por la 'interferencia' en el normal funcionamiento y saltarse los cánones establecidos.

Me queda una curiosidad, dado que el set de caracteres (generalmente) no es el mismo que utiliza el Access para su conversión, que método utilizáis cuando aparecen los acentos y las eñes etc.. ¿los respetáis para evitar su reconversión al devolverlo? o los tratáis para convertirlos (si no fuera preciso el reenvío), otra posibilidad seria indicarle que set utilizar, pero no se en que punto podría afectar a otras partes involucradas.

Saludos Enrique, (E. Feijoo)

"CarCar" <ccar...@hotmail.com> escribió en el mensaje news:5ac801c474a3$eceb9590$a301...@phx.gbl...

CarCar

unread,
Jul 28, 2004, 4:43:24 PM7/28/04
to
Hola Enrique:

Pues no ha habido ningún problema con acentos, eñes, no
caracteres especiales, las tabla son dBase 5.0 y el Access
es XP y todo se importa adecuadamente.

Saludos,
CarCar
MVP-Access

PD: He quedado la mar de bien, cuando he dicho que ya no
tendrían que andar renombrando los archivos.

PD2: Paco, el correo me ha llegado devuelto y sin el
adjunto, mañana te lo haré llegar desde el trabajo.

>-----Mensaje original-----

>.
>

Búho

unread,
Jul 28, 2004, 6:09:07 PM7/28/04
to
>Tendré que admitir barco como animal marino :-))
:-DDDD

Y yo rueda cuadrada como material auxiliar de un vehiculo ;-)

--


---
Este correo ha sido testeado y no tiene virus (Al menos conocidos). Saludos
de Francisco Javier García Aguado (Buho)
Checked by AVG anti-virus system (http://www.grisoft.com).

Version: 6.0.727 / Virus Database: 482 - Release Date: 27/07/2004


Búho

unread,
Jul 28, 2004, 6:09:49 PM7/28/04
to
Estupendo Carlos...mandamele a la cuenta de nemo:
pacoARROBAnemo.es
Y gracias de nuevo.

--


---
Este correo ha sido testeado y no tiene virus (Al menos conocidos). Saludos
de Francisco Javier García Aguado (Buho)
Checked by AVG anti-virus system (http://www.grisoft.com).

Version: 6.0.727 / Virus Database: 482 - Release Date: 27/07/2004


0 new messages