Visual Basic - Grabar los datos del rocordset

Life is soft - evento anual de software empresarial
 
Vista:

Grabar los datos del rocordset

Publicado por leonel (35 intervenciones) el 15/01/2006 11:06:39
Hola:
LLeno un datagrid con un recordset definido en un modulo de clase de la sgte.manera:

(General) (Declaraciones)
Private objDataSource As Trabajadores 'trabajadores es el modulo de clase donde esta el recordset

Private Sub cmdcargar_Click()
'Creo un nuevo objeto NamesData
Set objDataSource = New Trabajadores

' Enlazo DataGrid al nuevo datNames de DataSource
Set DataGrid1.DataSource = objDataSource
End If
End Sub

Mi duda es: q datos debo grabar en una tabla de access, los q estan en el datagrid o los q contiene el recordset? como ahorro recursos?
Y como lo hago dependiendo de la respuesta.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Grabar los datos del rocordset

Publicado por Nicolas (97 intervenciones) el 15/01/2006 12:02:56
Los datos que están en el DataGrid son los mismos que los del Recordset.
Para exportarlos a Excel es mas sencillo (al menos para mí) a través del Recordset.
Do While Not rs.EOF
For j = 1 To NumCampos + 1
objXL.cells(i + 1, j).Value = rs.Fields(j - 1)
Next
i = i + 1
rs.MoveNext
Loop
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El rocordset a una tabla access

Publicado por leonel (35 intervenciones) el 15/01/2006 16:09:29
Como sería para enviarlos a una tabla de access y solo se puede utilizar el do while
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:El rocordset a una tabla access

Publicado por Nicolas (97 intervenciones) el 15/01/2006 19:48:28
No entiendo la pregunta. ¿Puedes ser más explícito?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Idea explicita del recordset

Publicado por leonel (35 intervenciones) el 16/01/2006 00:19:50
Hola:
Necesito grabar los datos q contiene el recordset a una tabla de access, como prueba yo he digitado el sgte, código:

msgef = "insert into recepmayores(componer)"
msgef = msgef + "values('" + Trim(objDataSource.rscomponers.Fields(j)) + "')"
cn.Execute msgef

Y normal lo graba ese dato, pero el recordset tiene 6 .fields; ahora como quiero probar con el sgte, .fields es decir:

msgef = "insert into recepmayores(componer,local)"
msgef = msgef + "values('" + Trim(objDataSource.rscomponers.Fields(j)) + "','" + Trim(objDataSource.rscomponers.Fields(j + 1)) + "')"
cn.Execute msgef

Sale mensaje "error de sinaxis en el insert into"

Es por eso q queiro saber como grabar los datos del recordset a la tabla access.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Idea explicita del recordset

Publicado por El Viejo Charles (262 intervenciones) el 16/01/2006 06:31:14
Bueno colega, yo alguna vez me pregunte si es posible pasar toda la informacion contenida en un recorset a una base de datos sin necesidad de un ciclo o bucle, es decir un Do While o un For y la verdad que no me he puesto a buscar o investigar y tu pregunta me ha incitado a curiosiar de nuevo, en fin...
la respuesta a tu pregunta es esta:

''esto es lo que tu tienes''''''''''''''''
msgef = "insert into recepmayores(componer)"
msgef = msgef + "values('" + Trim(objDataSource.rscomponers.Fields(j)) + "')"
cn.Execute msgef

Y normal lo graba ese dato, pero el recordset tiene 6 .fields; ahora como quiero probar con el sgte, .fields es decir:

msgef = "insert into recepmayores(componer,local)"
msgef = msgef + "values('" + Trim(objDataSource.rscomponers.Fields(j)) + "','" + Trim(objDataSource.rscomponers.Fields(j + 1)) + "')"
cn.Execute msgef
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''Esto es lo que te propongo''''''''''''''''''''''''''''''''''''
msgef = "insert into recepmayores(componer,local)"
for x=0 to objDataSource.rscomponers.RecordCount
msgef = msgef + "values('" + Trim(objDataSource.rscomponers.Fields(j)) + "','" + Trim(objDataSource.rscomponers.Fields(j + 1)) + "')"
cn.Execute msgef
next x

Pdta: aunque la verdad no es muy recomendable utilizar este metodo ya que se recargaria la memoria del computador.
Si tienes datos en una grilla pues tomalos de ahi por medio de una Do While o un For como mas prefieras, pero igual te recomiendo que utilices otro metodo de guardado, yo antes lo agregaba datos a una base de datos de esa forma como lo haces y cuando terminaba de guardar el computador por alguna razon se colocaba un poco lento. Cuidate colega y espero que esto te sirva
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar