Jump to content
Felipe Torres

ANSWERED Guardar Datos de Excel a Base Datos

Recommended Posts

  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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy