Foros del Web » Programación para mayores de 30 ;) » .NET »

problema al insertar datos en tabla access

Estas en el tema de problema al insertar datos en tabla access en el foro de .NET en Foros del Web. Buenas tardes, este es mi primer tema, así que os ruego que si me qeuivoco en algo me disculpeis. Estoy haciendo un proyecto de una ...
  #1 (permalink)  
Antiguo 18/05/2011, 10:28
cRz87
Invitado
 
Mensajes: n/a
Puntos:
problema al insertar datos en tabla access

Buenas tardes, este es mi primer tema, así que os ruego que si me qeuivoco en algo me disculpeis.
Estoy haciendo un proyecto de una empresa de comida rápida como proyecto final de curso y estoy deseperado.
Prácticamente lo tengo todo hecho pero me falta pulir detalles que no consigo hacer.

Mi problema es el siguiente:

Tengo un textbox llamado tbpantalla en el cual voy añadiendo la cantidad, la descripcion y el precio de los productos que el cliente pide.
Me gustaría que al pulsar al boton TOTAL, se me añadieran todas las lineas del textbox por separado en una tabla de Access llamada "Comandas" que contiene los campos codigo_comanda, linia_comanda,cantidad,codigo_producto y precio.

Espero que me solucionen el problema porque me queda muy poco ya para entregarlo!!
Gracias de antemano
  #2 (permalink)  
Antiguo 18/05/2011, 11:06
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Hola cRz87

Puedes utilizar un Split especificando como delimitador una coma (",") por ejemplo o bien el caracter que utilices para separar la información en el textbox tbpantalla.

Checa los siguientes enlaces:

VB.NET

http://msdn.microsoft.com/es-es/libr...(v=vs.80).aspx
http://www.dotnetperls.com/split-vbnet

C#.NET

http://www.dotnetperls.com/string-split

Lo comentado anteriormente se centra en solucionar la parte de separar lo que quieres insertar en tu base de datos.

Ahora que si tienes problemas para insertar checa los siguientes enlaces:

http://www.foro.vb-mundo.com/f25/ins...-access-19837/
http://www.dreamincode.net/forums/to...cess-database/

Saludos!
__________________
http://ka0stj.wordpress.com/
  #3 (permalink)  
Antiguo 18/05/2011, 11:17
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Muchas gracias por la rapidez y por todos los enlaces pero... no me aclaro

Podrías ponerme un ejemplo de como insertar las lineas? mira yo lo tengo asi:
Llamo a un procedimiento que se llama inserta_comanda en el boton TOTAL:

Sub inserta_comanda()
Dim cmd As New OleDb.OleDbCommand("INSERT INTO Comandas VALUES('" & Tbcomanda.Text & " ','" & linea_comanda & "','" & cantidad & "','" & codi_producto & " ','" & Tbtotal.Text & "','Facturado','" & Ldata.Text & "')", conex)
conex.Open()
cmd.ExecuteNonQuery()
conex.Close()
MsgBox("Comanda Registrada Correctament")

Para hacer la prueba iba llamando al procedimiento cada vez que insertaba una linia e iba perfecto pero claro, lo normal seria que se insertaran todas de golpe.
Aver si me puedes echar una mano compañero, gracias!
  #4 (permalink)  
Antiguo 18/05/2011, 12:37
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

por cada linea del textbox es un registro que vas a insertar en tu tabla?
__________________
http://ka0stj.wordpress.com/
  #5 (permalink)  
Antiguo 18/05/2011, 12:39
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Si, por cada linia tengo que agregar un registro nuevo en la tabla
  #6 (permalink)  
Antiguo 18/05/2011, 12:46
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Ok, como es que obtienes cada valor individualmente? es decir supongo que tienes algo similar a lo siguiente:

Dentro de tu textbox:

1, jose, perez, leon
2, Maria, Gonzalez, lopez
3, Guadalupe, Salas, Marin
. ..............
__________________
http://ka0stj.wordpress.com/
  #7 (permalink)  
Antiguo 18/05/2011, 12:51
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Mira te explico,

Es una pantalla tipo Mc Donald's, el cliente llega pide un bigmac por ejemplo, le doy al producto y se añade en la primera linea.
Conforme va pidiendo se tiene que ir añadiendo a la linia seguiente y queda de esta manera:

2 x Bigmac = 5,30
1x Pizza Barbacoa = 8,60

Luego al darle a Total, me tiene que añadir cada una de estas linias en un registro, porque el trabajo que estoy haciendo me pide que se registren los pedidos diariamente para saber que es lo que se consume más y tener una idea aproximada de lo que hay que pedir a los proveedores.

No se si me he explicado muy bien.. jeje
  #8 (permalink)  
Antiguo 18/05/2011, 13:39
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Claro, puedes hacer algo similar a lo siguiente en el evento click de tu botón:

Dim Descripcion As String
Dim Cantidad As Integer
Dim Precio As Double
Dim Delimitador() As Char = New Char() {"x", "="}

Dim Datos As String()

For Each lineas In TextBox1.Lines

Datos = lineas.Split(Delimitador)

Cantidad = Integer.Parse(Datos(0))
Descripcion = Datos(1)
Precio = Double.Parse(Datos(2))

'Aqui haces tu INSERT
Next

Saludos!
__________________
http://ka0stj.wordpress.com/
  #9 (permalink)  
Antiguo 18/05/2011, 13:57
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Gracias por el codigo, me da un error en esta linea:

precio = Double.Parse(datos(2))

La cadena de entrada no tiene el formato correcto.

Ademas de eso, me añade las lineas al la tabla, pero la primera duplicada.

Porque puede ser?
  #10 (permalink)  
Antiguo 18/05/2011, 14:11
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Verifica que es lo que trae el arreglo Datos, es decir, Datos(0), Datos(1), Datos(2) ya que ese error que te marca es porque trata de convertir a double un valor que no puede.

Prueba con el siguiente código:

Dim Descripcion As String
Dim Cantidad As Integer
Dim Contador As Integer = 0
Dim Precio As Double
Dim Delimitador() As Char = New Char() {"x", "="}

Dim Datos As String()

For Each lineas In TextBox1.Lines

Datos = lineas.Split(Delimitador)

If Contador < TextBox1.Lines.Length - 1 Then
Cantidad = Integer.Parse(Datos(0))
Descripcion = Datos(1)
Precio = Double.Parse(Datos(2))
'-- Aqui haces el INSERT
End If

Contador = Contador + 1

Next

Ahora bien con respecto a que te inserta 2 veces utiliza breakpoints para ver porque lo hace ya que de la forma en que te pongo el código procesa exactamente la información que tiene el textbox con la siguiente estructura:

2 x Big Mac = 100
1 x Hot Dog = 20
3 x Tortas = 50
5 x Tacos = 40
2 x Refresco = 30
__________________
http://ka0stj.wordpress.com/
  #11 (permalink)  
Antiguo 18/05/2011, 14:20
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Pff siento ser pesado en serio pero sigue dando error...
Ya no me dice lo de la cadena de entrada, lo he arreglado, era porque la tabla access tenia otro tipo de datos.

Pero sigue sin añadir, he probado con 3 lineas y solo me ha insertado la primera.
  #12 (permalink)  
Antiguo 18/05/2011, 14:27
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Ok mira esta información:

2 x Big Mac = 100
1 x Hot Dog = 20
3 x Tortas = 50
5 x Tacos = 40
2 x Refresco = 30

Yo la agregué en la propiedad Text del TextBox, por cada linea daba un enter ya que de esta manera se especifica que es una linea. Ahora bien suponiendo que lo haces igual verifica que el ciclo FOR recorra todas las lineas. Se inserta solo la primera línea o la última?
__________________
http://ka0stj.wordpress.com/
  #13 (permalink)  
Antiguo 18/05/2011, 14:35
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Tenias razón, el que se inserta es la ultima linea
  #14 (permalink)  
Antiguo 18/05/2011, 14:36
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Ok, verifica que el recorrido de tu TextBox se haga correctamente.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #15 (permalink)  
Antiguo 18/05/2011, 14:43
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Yo lo que hacia para que saltara de linea era ponerle un vbCrLf, he comprobado el for y no veo ningun error, quiza es porque tampoco tengo mucha idea la verdad.
Ademas de esto, el contador para que sirve? es lo mismo que la variable linia_comanda que tenia yo para que se insertase la linia en la tabla?

Y otra cosa, el precio no me salen los decimales, solo el numero entero.

Disculpas de nuevo, porque si yo estoy agobiado y es mio, no qiero pensar lo que estaras tu..
  #16 (permalink)  
Antiguo 18/05/2011, 14:44
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Y aparte de eso, acabo de comprobar que una vez insertado en la tabla ese unico registro que se inserta, limpio la textbox para otro cliente y luego ya n m añade nada a la tabla...

Última edición por cRz87; 18/05/2011 a las 14:56
  #17 (permalink)  
Antiguo 18/05/2011, 15:21
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Ok mira el contador era porque habia una linea al final de mi textbox, lo puedes quitar solo asegurate que después de la última linea que agregar no vaya un enter.

Para mostrar 2 decimales utiliza lo siguiente: FormatNumber(Datos(2), 2)

Con respecto al último comentario que no entedí muy bien nose que estes haciendo, si tu agregas 3 productos te debe insertar 3 registros.

Debuguea tu código.
__________________
http://ka0stj.wordpress.com/
  #18 (permalink)  
Antiguo 19/05/2011, 02:41
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Mira yo lo tengo así:

Dim Descripcio As String
Dim quantitat As Integer
Dim preu As Double
Dim Delimitador() As Char = New Char() {"x", "="}

Dim dades As String()

For Each lineas In TBpantalla.Lines

dades = lineas.Split(Delimitador)
linia_comanda = linia_comanda + 1
quantitat = Integer.Parse(dades(0))
Descripcio = dades(1)
preu = Double.Parse(dades(2))
inserta_comanda()
Next

Me sigue dando error en lo que inserta, si escribo 3 linias añade 3 veces la ultima linea.
Además me inserta los datos bien y cuando deberia seguir con el siguiente cliente es cuando me da el error del formato de entrada, mientras los inserta no da ninguno.


Y otra cosa ya puestos, como podría hacer usando este código para que la cantidad de cada producto la multiplicara por el precio en cada linia y luego sumara el total de cada una? no se si me explico:

Que hiciera esto:

2 x HOT DOG = 2,10 -------- que multiplique 2*2,10
3x BIGMAC = 3,40 --------- que multiplique 3*3,40
----------
TOTAL en txttotal.text
  #19 (permalink)  
Antiguo 19/05/2011, 09:21
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Eres un fenómeno tio!! la primera parte (la de insertar registros) ya funciona! el problema era que tenía declaradas esas misma variables fuera del for y estaban duplicadas, al quitarlas ha ido perfecto.

Lo que si que me sigue dando errores es que cuando registro el primer pedido y me da todo OK, me sale un error de formato de entrada en la variable "Cantidad", de manera que no me deja seguir con el segundo pedido.

Si pudieras ayudarme con lo de multiplicar cantidad * precio y sumarlo a todas las linias te compro un piso, jeje

De todas formas muxisimas gracias por todo lo demas!
  #20 (permalink)  
Antiguo 19/05/2011, 16:13
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Ok, lo que necesitas hacer es lo siguiente:

- Declara una variable tipo double

Dim Total As Double

- Dentro del ciclo For pones lo siguiente

Total += Cantidad * Precio

Con lo anterior te irá acumulando en la variable Total cada multiplicación de cada línea.

Saludos!
__________________
http://ka0stj.wordpress.com/
  #21 (permalink)  
Antiguo 20/05/2011, 03:07
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

El Total me lo hace bien, solo que me va saliendo en total.text cada resultado hasta que llega al ultimo y me gustaria que solo saliese el resultado final en el textbox, no por cada linia.

Lo que si que veo un problema y no logro solucionarlo es que cuando hago el for la primera vez y añado las lineas me las inserta bien pero al hacer el next y volver al FOR me salta este error:

La cadena de entrada no tiene el formato correcto.

Será porque al volver al FOR se encuentra con el textbox vacio? como lo soluciono?
  #22 (permalink)  
Antiguo 20/05/2011, 13:36
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Eso te puede estar pasando porque lo tienes dentro deo FOR, ahora bien no borres el textbox hasta que termine de recorrer, eso es lo correcto obivamente te marcará error si esta vacío o null.
__________________
http://ka0stj.wordpress.com/
  #23 (permalink)  
Antiguo 20/05/2011, 13:43
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Lo he sacado del For pero me sigue dando error... Y siempre me sale el error en la linia cantidad:

cantidad=Integer.Parse(datos(0))

La cadena de entrada no tiene el formato correcto
  #24 (permalink)  
Antiguo 20/05/2011, 13:47
cRz87
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema al insertar datos en tabla access

Solucionado "en principio" con TRY-CATCH, aver si no falla más....

Gracias por tu paciencia y por estos días de ayuda tio, te lo agradezco

Y que Viva Méjico!!!!

Saludos!
  #25 (permalink)  
Antiguo 20/05/2011, 13:51
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: problema al insertar datos en tabla access

Jajajaja no problem,
Saludos desde la sultana del norte!
__________________
http://ka0stj.wordpress.com/

Etiquetas: access, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:01.