Jump to content

Duada con GetOpenFileName


Recommended Posts

Buenas tardes colegas. Espero se encuentren bien de salud.

Colegas, en este pequeño Proyecto pretendo trabajar el Comprobante de Operaciones de las Nóminas de los trabajadores de mi empresa y he creado un grupo de "herramientas" para facilitar mi trabajo y un grupo de informaciones que debo brindar, pero para completar o "redondearlo" necesito convertir un archivo .xlsx en .dbf.

He estado preguntando si existe alguna manera de hacerlo, si alguno de ustedes conoce un medio o método que me pueda ayudar, por lo pronto yo lo que pretendo hacer es lo siguiente:

1.- Crear un archivo (puede ser .xlsx o .xls) con nombre Comprobante Nomina, que debe ser el que se encuentra en la Hoja3, rango A3:C45 y ubicarlo en un lugar determinado, que puede ser dentro de la misma carpeta donde se encuentra el archivo Comprobante de Nominas v3.0.5.xlsm. Esto quiero hacerlo a través de una Macro.

2.- En el FrmComprobante1 a través del Botón "Generar .dbf" accedo al FrmComprobanteDBF y dentro de este pretendo buscar con GetOpenFleName un conversor o convertidor de .xls a .dbf, hacer la conversión y el resultado de esta guardarlo en la misma carpeta inicial, para después con el Programa de Contabilidad, importar ese archivo .dbf

En la Hoja DBF está el formato (que debe generarlo de manera automática).

Todo esto es lo que me gustaría que hiciera porque así se complementaria el Proyecto y reduciría mi trabajo en un 75% y me ahorraría además tiempo, solo que YO NO SE HACER ESTO QUE LES ESTOY DICIENDO, de hecho no se si se pueda hacer, pero me gustaría que me dieran su opinión y de ser posible me ayuden a buscar la solución.

De antemano Gracias mil a todos.

Adjunto archivo

Un abrazo

Pino

Comprobante de Nóminas v3.0.5.xlsm

Link to comment
Share on other sites

Hola

Hace varias versiones de Excel que Microsoft decidió quitar la opción de guardar como *.dbf y si bien en su momento hubo mucho reclamo desde la comunidad, la respuesta de Microsoft siempre fue: Háganlo desde Access.

Segundo,  y yendo a tus comentarios, el control de Excel y VBA sobre otros programas es bastante limitado y algo como lo que mencionas es muy difícil ya que, si bien con SHELL o similares se puede abrir otros programas, los procedimientos y/o pasos para hacer todo lo que mencionas, básicamente tendrías que hacerlos con SendKeys y es un método muy inestable y para nada 100% certero. Además, para ayudarte tendríamos que tener el mismo programa que tú instalado y nada garantiza que funcione.

Tercero, una alternativa es que uses Access y no Excel, pero claro, ojo que los archivos *.dbf tienen muchos tipos, no vaya a ser que lo que se exporta desde Access no sea compatible con lo que necesitas.

Hablando de Access, y si logras probar que sí es el formato dbf que necesitas, la alternativa para seguir usando Excel es que a través de VBA envíes los datos a Access y una vez enviados, también con ADO pasas los datos de Access a dbf, pero ojo, tienes que estar 100% seguro que es el formato que necesitas.

Ah, ojo, en realidad el ideal es que uses para esas cosas programas compatibles con dbf como Visual Fox 9 por ejemplo.

Saludos.

Link to comment
Share on other sites

Buenos días colegas. espero su salud sea excelente el día de hoy.

Buenos días amigo Abraham, son mis deseos que se encuentre usted bien al igual que su familia.

Sé que las versiones nuevas de Excel excluyen esa posibilidad, pero son decisiones en las que nosotros podemos hacer bien poco.

Por otro lado, y de acuerdo a lo que me comentas, imagino que lo que deseo no es posible, de cualquier manera gracias por sus consejos que son siempre muy bien recibidos.

Tenga usted y los demás miembros del Foro un excelente fin de semana.

Un abrazo y mis respetos.

Pino

Link to comment
Share on other sites

En 5/8/2022 at 15:50 , pinoji dijo:

Por otro lado, y de acuerdo a lo que me comentas, imagino que lo que deseo no es posible,

Bueno, siempre hay algo posible o algo que probar... 😉. Aparte de todo o que te ha dicho @Abraham Valencia ten en cuenta que yo no tengo DBase para probar lo que te paso, ni sé qué formato de DBase usas.

Por defecto te he puesto "DBase IV", pero quizás sea "DBase III", con lo que habría que hacer unos pequeños ajustes en el código y las bases de datos.

Te paso un ZIP con:

  • La base de datos en Access
  • La base de datos en DBF (DbaseIV)
  • EL fichero Excel

Ahora al pulsar sobre "crear DBF" directamente hace todo el proceso. Ten en cuenta que el camino es "Excel" -->"Access"-->DBF, por lo qué no sé cómo será el resultado final, pues no tengo DBase para probar.

Prueba tú y comenta, aparte de decirnos el formato o versión de DBase que usas. Todo esto es suponiendo que tenga Access insrtalado, si no no hay nada que hacer :(

Pon todos los ficheros del ZIP en el mismo directorio.

Saludos

 

comprobante de nominas.zip

Link to comment
Share on other sites

Aparte hay un método mucho más directo y fácil que no sé cómo funcionara. Es el metodo SaveAs del Workbook.
 

Sheets("Comprobante1").Copy
Range("1:2").Delete

ActiveWorkBook.SaveAs Filename:=Nominas.dbf, Fileformat:=7 '<-- DBase2
ActiveWorkBook.SaveAs Filename:=Nominas.dbf, Fileformat:=8'<-- DBase3
ActiveWorkBook.SaveAs Filename:=Nominas.dbf, Fileformat:=11 '<-- DBase4

 

Link to comment
Share on other sites

Buenos días Colegas. Espero se encuentre con excelente salud.

Buenos días Haplox, son mis deseos que usted y su familia se encuentren bien de salud.

Profesor, la primera variante me da un error.  (Adjunto imagen.)

El segundo caso que me sugiere ¿dónde lo coloco? ¿dentro del Botón, sin más lineas de códigos que esas?

Ahora acá, en mi trabajo, no tengo una muestra de una base de datos, pero en la casa si tengo en una USB, tendría que esperar a mañana para enviársela y usted revise.

El Office que está instalado en las PC del trabajo es 2013, creo que quizás eso también tenga que ver.

Gracias por contestar.

Mañana seguiremos.

Un abrazo y mis respetos.

Pino

Imagen.docx

Link to comment
Share on other sites

Hola amigos

Access 2013 no tiene la posibilidad de exportar a dbf, hay una forma de poder lograrlo pero tienes que hacer unos cambios al registro de Windows, además de instalar un driver y, ojo, quizás ligeros cambios a lo que envía el buen Haplox

http://jonwilliams.org/wordpress/2014/03/21/enabling-xbase-dbf-support-in-microsoft-office-access-2013/

Sobre la segunda forma que propone Haplox, lamentablemente no son válidas ya debido a que, como ya había comentado, se quitaron de Excel los drivers necesarios para guardar en dbf. La codificación aún se puede usar en VBA por compatibilidad. Ah bueno, a menos que tengan un Office antiguo, ahí sí que funcioanrá.

Link to comment
Share on other sites

Hace 12 horas, pinoji dijo:

El Office que está instalado en las PC del trabajo es 2013, creo que quizás eso también tenga que ver

Bueno, pues como comenta Abraham, todo se nos pone en contra. En fin... al menos lo hamos intentado

Link to comment
Share on other sites

Buenos días colegas.

Así mismo es mis amigos. Por el momento nada que hacer, pero sí, al menos lo hemos intentado y nos queda esa satisfacción.

Gracias a ambos por su tiempo y consejo.

Un abrazo desde acá y mis respetos.

Pino

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Privacy Policy