border
VB 6
 
 

Retroceder   VB-MUNDO - Programacion Visual > Programacion > Visual Basic 6.00
Olvidó Password? Registrarse!
Registrarse FAQDonate Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Tema Cerrado
 
LinkBack Herramientas
  #1 (permalink)  
Antiguo 13-07-2008, 01:40:46
Nuevo Amigo
 
Registrado: jun 2007
Ubicación: Osorno
Posts: 29
Créditos: 1.020
carlanga_xp Valoración +2
Talking grabar datos desde un datagrid a una tabla

Nuevamente por aca amigos, disculpen la idiotez mia, quisiera saber como grabar los datos ingresados a un datagrid por medios de unos textbox, a una tabla, he creado un recordset temporal para anexar los datos al datagrid, por medio de este codigo:

Sub Graba_Temporal()
RsTemporal.AddNew
RsTemporal.Fields(0) = Trim(Combo1.Text)
RsTemporal.Fields(1) = Trim(txtfecha.Text)
RsTemporal.Fields(2) = Trim(txtcodigo.Text)
RsTemporal.Fields(3) = Trim(txtdv.Text)
RsTemporal.Fields(4) = Trim(txtfact.Text)
RsTemporal.Fields(5) = Trim(cbotipo.Text)
RsTemporal.Fields(6) = Trim(txtproveedor.Text)
RsTemporal.Fields(7) = Trim(txtex.Text)
RsTemporal.Fields(8) = Trim(txtneto.Text)
RsTemporal.Fields(9) = Trim(txtiva.Text)
RsTemporal.Fields(10) = Trim(txttotal.Text)

RsTemporal.Update
End Sub

y por ende ingreso bastantes filas en el datagrid y quiero una vez ingresadas grabarlas a la tabla, eso es lo que necesito saber como hacer, agradeceria mucho la ayuda.


De antemano muchas Gracias y Saludos desde Osorno, Chile



Carlos Alarcón González
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #2 (permalink)  
Antiguo 13-07-2008, 08:57:21
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.293
J.M.Movilla ha deshabilitado la reputación
Predeterminado Re: grabar datos desde un datagrid a una tabla

No, no... Esa subrutina Sub Graba_Temporal() no está añadiendo filas en el DataGrid, sino que ya está añadiendo directamente registros en la tabla a que se refiera el recordset rsTemporal. Otra cosa es que también aparezcan incrementadas las filas del DataGrid...

Si no fuera así, deberás explicar cómo confeccionas rsTemporal... Porque ¿no será el mismo recordset que rsCompras? ¿Por qué utilizas dos recordsets para un mismo objeto DataGrid?

Y de paso, te aconsejo que no utilices números de campos, sino nombres... En lugar de RsTemporal.Fields(1) es mejor que pongas RsTemporal.Fields("Fecha"); además de tener las cosas más claras, evitarás muchos problemas en el futuro, por ejemplo si añades un campo en la tabla... Te lo dice uno que ha sufrido ese error de su pasado...
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com

Última edición por J.M.Movilla fecha: 13-07-2008 a las 09:04:06.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #3 (permalink)  
Antiguo 13-07-2008, 15:38:09
Nuevo Amigo
 
Registrado: jun 2007
Ubicación: Osorno
Posts: 29
Créditos: 1.020
carlanga_xp Valoración +2
Predeterminado Re: grabar datos desde un datagrid a una tabla

Bueno maestro Movilla, he visto mi equivocacion, rstemporal = rscompras, lo que pasa que este se trata de otro form en el cual tu haces el ingreso de las facturas entonces uno va llenando los textbox correspondientes, esto es

mes|dia|codigo|dv|Nºfactura|proveedor|tipofactura| exento|neto|iva|total|

una vez llenados estos textbox al persionar enter en el ultimo textbox quiero que agregue estos datos al datagrid hasta completar las facturas (es relativo 1.2.3 o 100).una vez agregadas las filas, con un boton grabar, obviamente grabar en la base de datos compras
los datos ya expuestos en el datagrid,

Última edición por carlanga_xp fecha: 13-07-2008 a las 16:09:57.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #4 (permalink)  
Antiguo 13-07-2008, 20:03:20
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.293
J.M.Movilla ha deshabilitado la reputación
Predeterminado Re: grabar datos desde un datagrid a una tabla

Si defines rsCompras en un Módulo, como tipo Public, no tienes necesidad de reabrir nuevo recordset. Lo abres en un Form y sigue abierto en el Form en que introduces sus valores mediante cajas de texto. Sólo tendrás que cerrarlo cuando salgas del Form principal.

No entiendo eso de "con un boton grabar, obviamente grabar en la base de datos compras los datos ya expuestos en el datagrid", porque si ya has hecho el Update en rsTemporal, ya están los datos grabados en la base de datos Compras. Comprueba esto; sales sin grabar el recordset rsCompras y verás que ya están grabados.
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #5 (permalink)  
Antiguo 13-07-2008, 20:30:58
Nuevo Amigo
 
Registrado: jun 2007
Ubicación: Osorno
Posts: 29
Créditos: 1.020
carlanga_xp Valoración +2
Predeterminado Re: grabar datos desde un datagrid a una tabla

Estimado Maestro Movilla, me explico un poco mejor en un form donde quiero ingresar las facturas recibidas del mes segun parametros expuestos en el mensaje anterior.
lleno los distintos textbox con los datos requeridos una vez presionado enter en el ultimo textbox, me llena el datagrid con los datos ingresados en los textbox, el problema es que no logro que los datos se graben en la tabla compras, el codigo que utilizo para darle formato al datagrid es el siguiente:

RsCompras.CursorType = adOpenStatic
RsCompras.Fields.Append "mes", adChar, 18, adFldIsNullable
RsCompras.Fields.Append "fecha", adChar, 10, adFldIsNullable
RsCompras.Fields.Append "codigo", adDouble, 8, adFldIsNullable
RsCompras.Fields.Append "dv", adChar, 1, adFldIsNullable
RsCompras.Fields.Append "Nº_Factura", adDouble, 10, adFldIsNullable
RsCompras.Fields.Append "tipo", adChar, 10.2, adFldIsNullable
RsCompras.Fields.Append "proveedor", adChar, 100, adFldIsNullable
RsCompras.Fields.Append "exento", adDouble, 10, adFldIsNullable
RsCompras.Fields.Append "neto", adDouble, 15, adFldIsNullable
RsCompras.Fields.Append "iva", adDouble, 10, adFldIsNullable
RsCompras.Fields.Append "total", adDouble, 15, adFldIsNullable
RsCompras.Open
'************************************************* ****
Set DataGrid1.DataSource = RsCompras
formatogrilla

y el codigo que tengo para grabar los datos en la tabla compras es este otro:

With RsCompras
RsCompras.AddNew
RsCompras.Update

RsCompras.Fields("mes").Value = Combo1.Text
RsCompras.Fields("fecha").Value = txtfecha.Text
RsCompras.Fields("codigo").Value = txtcodigo.Text
RsCompras.Fields("dv").Value = txtdv.Text
RsCompras.Fields("Nº_Factura").Value = txtfact.Text
RsCompras.Fields("tipo").Value = cbotipo.Text
RsCompras.Fields("proveedor").Value = txtproveedor.Text
RsCompras.Fields("exento").Value = txtex.Text
RsCompras.Fields("neto").Value = txtneto.Text
RsCompras.Fields("iva").Value = txtiva.Text
RsCompras.Fields("total").Value = txttotal.Text

RsCompras.Update
.UpdateBatch

End With

el gran problema es que me es imposible grabar en la tabla, le adjunto imagenes, esperando que mi consulta tenga una buena acogida.


Le Saluda desde Osorno,Chile
Carlos Alarcón González
Imágenes Adjuntas
Tipo de Archivo: jpg pantalla2.jpg (15,0 KB, 11 visitas)
Tipo de Archivo: png error2.png (3,1 KB, 6 visitas)
Tipo de Archivo: jpg marcaerror.jpg (25,2 KB, 7 visitas)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #6 (permalink)  
Antiguo 13-07-2008, 21:58:49
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.293
J.M.Movilla ha deshabilitado la reputación
Predeterminado Re: grabar datos desde un datagrid a una tabla

Creo que para abrir el recordset debieras poner
Código:
    RsCompras.Open "Select mes, fecha, codigo, dv, Nº_Factura, tipo, proveedor, exento, neto, iva, total From Compras", BD, adOpenStatic, adLockOptimistic
    Set DataGrid1.DataSource = RsCompras
suponiendo que la tabla se llame "Compras" y que tu conexión se llame "BD"; cambiarías los nombres a como las llames tú.


Y para incrementar el registro con los datos de las cajas de texto, sería suficiente:

Código:
    RsCompras.AddNew
    RsCompras.Fields("mes") = Combo1.Text
    RsCompras.Fields("fecha") = txtfecha.Text
    RsCompras.Fields("codigo") = txtcodigo.Text
    RsCompras.Fields("dv") = txtdv.Text
    RsCompras.Fields("Nº_Factura") = txtfact.Text
    RsCompras.Fields("tipo") = cbotipo.Text
    RsCompras.Fields("proveedor") = txtproveedor.Text
    RsCompras.Fields("exento") = txtex.Text
    RsCompras.Fields("neto") = txtneto.Text
    RsCompras.Fields("iva") = txtiva.Text
    RsCompras.Fields("total") = txttotal.Text
    RsCompras.Update
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com

Última edición por J.M.Movilla fecha: 13-07-2008 a las 22:03:06.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #7 (permalink)  
Antiguo 13-07-2008, 22:28:48
Nuevo Amigo
 
Registrado: jun 2007
Ubicación: Osorno
Posts: 29
Créditos: 1.020
carlanga_xp Valoración +2
Predeterminado Re: grabar datos desde un datagrid a una tabla

Maestro, probe su codigo posteado, y le informo que el codigo para incrementar el registro esta ok!, respecto al codigo de la conexion me da error, adjunto imagenes, por lo que indico que lo que necesito es que el datagrid no me muestre los datos de la tabla, me debe mostrar los datos que ingreso en los textbox, ya que me interesa mostrar lo que digito y no lo que esta en la tabla con anerioridad, esto es fechas anteriores, no se si me explico bien. ej. digamos que el datgrid es un cuaderno de notas y lo que quiero es que en este form, me muestre solo lo que estoy escribiendo en tiempo real y no lo guardado en hojas anteriores, ya que asi puedo llevar un registro visual de los datos ingresados, bueno y despues de terminar de anotar datos ahi en ese momento grabarlos en la tabla.

como dije antes solo faltaria el como hacer que muestre los datos en tiempo real.

Por lo pronto envio un cordial saludo a usted, una Eminencia a mi parecer en estos temas.
Imágenes Adjuntas
Tipo de Archivo: jpg error3.jpg (15,3 KB, 7 visitas)
Tipo de Archivo: jpg error3.1.jpg (25,2 KB, 4 visitas)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #8 (permalink)  
Antiguo 14-07-2008, 10:06:05
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.293
J.M.Movilla ha deshabilitado la reputación
Predeterminado Re: grabar datos desde un datagrid a una tabla

Ahí es nada lo del ojo... y lo llevaba en la mano... Lo que planteas ahora no tiene nada que ver con lo que yo interpretaba, claro está.

Tú quieres tener sólo la hoja de los registros que vayas agregando en cada sesión... sin que aparezca ninguna línea que hayas ingresado anteriormente, ni siquiera las que hayas ingresado hoy mismo...

A mí me parece que esa limitación no es nada conveniente, porque siempre vas a quedarte con la duda de si determinada información ya la introdujiste antes o todavía la tienes pendiente... ¿No te parece que eso te obligaría a tener al lado una libreta en la que vayas anotando tu trabajo diario?

Creo que debes replantearte eso, y hacer que en la grilla te aparezcan los registros que hayas introducido en la fecha que has seleccionado previamente (por defecto, hoy mismo). Porque de otro modo tu trabajo iba a ser, como te digo, bastante engorroso, de forma que te obligaría a introducir todo tu trabajo en una sola sesión.

Si te parece correcto lo que yo te planteo, sólo tienes que modificar la "Select" del anterior mensaje por ésta:
Código:
RsCompras.Open "Select mes, fecha, codigo, dv, Nº_Factura, tipo, proveedor, exento, neto, iva, total From Compras WHERE Fecha = #" & dFec & "#", BD, adOpenStatic, adLockOptimistic
habiendo puesto antes esta línea
Código:
Dim dFec as Date
dFec = DTPicker1.Value
y en el Form haber añadido un control DTPicker para que acepte la "FECHA DE TRABAJO:"

Bueno, si siempre vas a trabajar con la fecha del día de hoy, podías reducir todo lo anterior a modificar la "Select" así:
Código:
RsCompras.Open "Select mes, fecha, codigo, dv, Nº_Factura, tipo, proveedor, exento, neto, iva, total From Compras WHERE Fecha = #" & Date & "#", BD, adOpenStatic, adLockOptimistic
Prueba esta propuesta a ver si te sirve, y más adelante podrías mejorarla para permitir trabajar con datos de días precedentes...

Ya nos contarás.
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com

Última edición por J.M.Movilla fecha: 14-07-2008 a las 10:18:47.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #9 (permalink)  
Antiguo 14-07-2008, 15:34:31
Nuevo Amigo
 
Registrado: jun 2007
Ubicación: Osorno
Posts: 29
Créditos: 1.020
carlanga_xp Valoración +2
Predeterminado Re: grabar datos desde un datagrid a una tabla

Maestro J.M.MOvilla, en primer lugar le doy las gracias por su ayuda desinteresada. bueno le cuento que probare como me va con estos codigos que me ha proporcionado, no sin antes consultar lo siguiente, seria posible crear un recordset temporal para ir añadiendo registros y una vez terminado pasar los registros del recordset temporal al recordset definitivo.
(RsTemporal ------>RsCompras). respecto a mi proyecto adjunto imagenes sobre el libro de compras y ventas Oficial (Real) que quiero automatizar.es por ello que quiero muestre datos ingresados en tiempo real y no los guardados antes, ya que hay un form donde puedes consultar esos datos y manejarlos. esperandop no enredar mas este post.


Se despide con un cordial saludo para Usted, Maestro de Los Maestros
Imágenes Adjuntas
Tipo de Archivo: jpg hoja ventas.jpg (12,6 KB, 9 visitas)
Tipo de Archivo: jpg hoja compras.jpg (13,5 KB, 5 visitas)

Última edición por carlanga_xp fecha: 14-07-2008 a las 17:58:39.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #10 (permalink)  
Antiguo 14-07-2008, 19:47:38
Avatar de J.M.Movilla
Administrador
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 9.293
Créditos: 75.293
J.M.Movilla ha deshabilitado la reputación
Predeterminado Re: grabar datos desde un datagrid a una tabla

Efectivamente, sí se puede hacer como tú indicas; pero insisto en repetir que ese método tiene el inconveniente de que tienes que consultar previamente si ya has introducido determinados datos o si tienes que introducirlos ahora... Mientras que si usas el método que yo te aconsejo, se te van a presentar los datos que ya hayas introducido hoy, y tendrás bien claro si debes o no introducir los datos que te planteen dudas. Además, con mi método evitas el crear nueva tabla y el insertar los datos de la tabla temporal a la definitiva. Todo lo haces directamente sobre tu tabla original.
__________________
José María Movilla Cuadrado
______________________
Normas del foro
www.foro.vb-mundo.com
www.vb-mundo.com
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Tema Cerrado


Herramientas

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT. Ahora son las 15:58:17.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
© VB-MUNDO CO. Todos los derechos reservados
Tutoriales Premium | Juegos Online 


right

Programacion, vb 6, visual basic, foro programacion

Inactive Reminders By Icora Web Design