Saltar al contenido

Guardar Datos de Excel a Base Datos


Recommended Posts

publicado

  Estimados quien sabe como puedo acelerar el procedimiento para guardar registros, ya que el archivo adjunto realiza lo que quiero con pocos registros, pero si coloco mas registros en la hoja, se me queda pegado el excel y se demora en guardar, como a las 3 o 4 minutos para terminar el procedimiento. ¿Hay algún proc mas efectivo?

  La idea es llevar los registros visualizados en la hoja excel a una tabla de una base de datos SQLite.

Libro1.xlsm

publicado

Hola

En realidad tu dilema principal es tu UDF "GetNuevoR" que usa un Do While que recorre !todas las filas! craso error. 

Déjala así y comentas:

Public Function GetNuevoR(Hoja As Worksheet) As Integer
    
Dim Fila As Long
Fila = Hoja.Cells(Rows.Count, 1).End(xlUp).Row + 1
GetNuevoR = Fila

End Function

Abraham Valencia

PD: Ojo, la velocidad también dependerá de la que tenga tu servidor.

publicado
Hace 1 hora, avalencia dijo:

Hola

En realidad tu dilema principal es tu UDF "GetNuevoR" que usa un Do While que recorre !todas las filas! craso error. 

Déjala así y comentas:


Public Function GetNuevoR(Hoja As Worksheet) As Integer
    
Dim Fila As Long
Fila = Hoja.Cells(Rows.Count, 1).End(xlUp).Row + 1
GetNuevoR = Fila

End Function

Abraham Valencia

PD: Ojo, la velocidad también dependerá de la que tenga tu servidor.

Hola Abraham, probé con el ejemplo que me dejas y con 10 registros se demora 30 segundos, es mucho si lo comparamos con unos 100 registros a enviar

publicado

Hola nuevamente. Veo que es un "problema" de sqlite, entonces por más que tu código se mejore, seguirá lento. Mira:

https://www.sqlite.org/faq.html#q19

Intenta con Begin:

https://www.tutlane.com/tutorial/sqlite/sqlite-transactions-begin-commit-rollback

https://stackoverflow.com/questions/1609637/is-it-possible-to-insert-multiple-rows-at-a-time-in-an-sqlite-database

Yo no tengo sqlite para probarlo

Abraham Valencia

publicado

Hola Abraham gracias por tu tiempo, hice la prueba instalando MySQL y con el mismo código guarda todo super rápido, creo que era la base de datos.

Ahora tengo la duda para poder acceder a la base de datos desde otro equipo en mi red, pero iniciare otro tema distinto, doy este por cerrado.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.