** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - saber si un fichero excel tiene registros
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradosaber si un fichero excel tiene registros

 Responder Responder
Autor
Mensaje Invertir el orden de clasificación
Adrianet Ver desplegable
Habitual
Habitual
Avatar

Unido: 26/Marzo/2015
Localización: Valencia
Estado: Sin conexión
Puntos: 135
Enlace directo a este mensaje Tema: saber si un fichero excel tiene registros
    Enviado: 12/Mayo/2022 a las 14:00
Hola

si no hay ninguna sugerencia más que aportar a este asunto, pueden cerrar este hilo

saludos

Adrianet
Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 12/Mayo/2022 a las 08:45
Eso es. Por ahí iría la cosa.

Respecto a acceder a Excel por Vba, anímate que no es tan complicado y una vez empiezas es una herramienta más que viene bien.

Un saludo.
Albert Hostein
Aprendiendo cayendo
Arriba
Adrianet Ver desplegable
Habitual
Habitual
Avatar

Unido: 26/Marzo/2015
Localización: Valencia
Estado: Sin conexión
Puntos: 135
Enlace directo a este mensaje Enviado: 12/Mayo/2022 a las 08:31
Hola Dokk, gracias por responder.
He leído ese enlace, y es vba para excel, y la verdad, nunca he usado VBA con Excel, y desconozco todo sobre instrucciones en vba-excel, de celdas, de rangos, ...etc

Sí, está claro, ese método que comentas, sería una forma de hacerlo, ... pero no evita que se haga el proceso de "importar el fichero excel" si éste esta vacío (que es lo que yo pretendía).
En fin, según tu sugerencia, el código sería tal como éste:

'siendo el fichero origen Datosxls1 y la tabla destino DatosTabla1
Dim vNumRegAntes as Long, vNumRegDespues as Long
vNumRegAntes = Dcount("nombreCampo", "DatosTabla1")

' ahora, ejecutamos la importación, ..transfer....
vNumRegDespues = DCount("nombreCampo", "DatosTabla1")

'comparamos
If vNumRegDespues > vNumRegAntes Then
msgbox "se han importado registros"
else 
msbbox "el fichero excel de origen estaba vacío de registros"
End If

Bueno, hasta que consiga la forma de contar directamente los registros del fichero excel, ... este código puede valer.

saludos.
Adrianet.


Arriba
dokk Ver desplegable
Habitual
Habitual


Unido: 15/Mayo/2020
Localización: Hendaye
Estado: Sin conexión
Puntos: 166
Enlace directo a este mensaje Enviado: 11/Mayo/2022 a las 16:53
Hola, Adrianet:

Podrías abrir el archivo Excel por vba. Aquí tienes algo que te puede dar pistas sobre cómo abrir y manejar Excel por vba.

Por otra parte, podrías hacer un DCount de la tabla en la que pegas los registros, antes y después de pegarlos y comparar el dato para saber si has insertado algo. Si tenías 1000 registros y siguen siendo 1000 ya sabes que no hay registros nuevos y sacas el mensaje que quieras.


Albert Hostein
Aprendiendo cayendo
Arriba
Adrianet Ver desplegable
Habitual
Habitual
Avatar

Unido: 26/Marzo/2015
Localización: Valencia
Estado: Sin conexión
Puntos: 135
Enlace directo a este mensaje Enviado: 11/Mayo/2022 a las 11:51
Hola amigos del foro,

En estos días ando dándole vueltas a un asunto de recuento de registros, de un fichero externo desde Access, pero no consigo dar con la instrucción VBA adecuada.

Os comento:

Realizo semanalmente unas importaciones de datos, con origen en unos ficheros Excel (xls), y los incorporo a unas tablas en Access. Uso la instrucción DoCmd.TransferSpreadheet acImport …. Y me funciona perfectamente

El asunto está, en que hay veces en que alguno de los ficheros de origen no tiene registros. En estas ocasiones el botón “importar” no importa registros porque no hay, y no me da ningún error.

****  La cuestión que planteo es la siguiente:

Habría alguna forma para que desde Access puediese acceder al fichero Excel y contar sus filas (registros) para que mediante un msgbox informase algo así como esto:

 Msgbox “el fichero Excel no contiene registros, …”

Notas: 

Esta es la instrucción de importación que uso:

 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExel7, vtabla, vruta, True, vhoja, vrango

  

Siendo vtabla, vruta, vhoja, vrango  variables que recogen los datos necesarios para estos parámetros de la instrucción.

 Saludos a todos.

Adrianet.

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable