Visual Basic - Problema de comillas flexgrid vb6 acces

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Problema de comillas flexgrid vb6 acces

Publicado por Brian (9 intervenciones) el 31/10/2014 17:58:38
Hola a todos, estoy con un problema. Realice un abm con msflexgrid y acces en vb6.
Funcionaba todo perfecto, hasta que me di cuenta que el campo clave del acces (nro_articulo) necesito que sea alfanumerico, por ejemplo el codigo de cada articulo seria asi: 29J y al estar en numero no puedo, entonces decidi pasar el campo a texto.
Pude hacer la modificacion para dar de ALTA agregandole las comillas funcion, quedo asi " ' " & text1.text & " ' " (sin los espacios entre las comillas)
El problema surge en la modificacion de la linea. Primero lo que hago es al seleccionar el articulo a modificar lo traigo asi:

1
2
3
4
5
6
7
8
9
10
11
Private Sub Buscar_articulo()
whe = "where nro_articulo = " & busca
sql = "select * from mercaderia " & "'" & whe & "'"
'MsgBox sql
rs.Open sql, conn
Text1.Text = busca: Text1.Enabled = False
Text2.Text = rs.Fields("descripcion")
Text3.Text = rs.Fields("cantidad")
Text4.Text = rs.Fields("precio")
rs.Close
End Sub

Este tampoco funcionaba al cambiar el acces a texto, pero al agregarle las comillas a whe funciono perfecto ( "'" & whe & "'")

El problema surge aqui en la modificacion, este es el codigo:

1
2
3
4
5
6
7
8
9
Private Sub mod_articulo()
sql = "UPDATE mercaderia set "
sql = sql & "  descripcion = '" & Text2.Text & "'"
sql = sql & ",cantidad = '" & Text3.Text & "'"
sql = sql & ", precio =" & Replace(Text4.Text, ",", ".")
sql = sql & " " & whe
 
conn.Execute sql
End Sub

De esta forma salta que no coinciden los tipos de datos en la expresion de criterios.
y si a whe lo pongo asi: "'" & whe & "'", salta error de sintaxis falta operador.

Estoy seguro que es un problema de comillas, pero la verdad que probe de mil maneras y no encuentro la solucion, espero que puedan ayudarme muchas 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
Imágen de perfil de andres guerrero a
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema de comillas flexgrid vb6 acces

Publicado por andres guerrero a (1798 intervenciones) el 04/11/2014 20:17:14
Efectivamente es de comillas
intenta con este WHE en la busqueda

whe = "where nro_articulo = '" & busca & "'"

Copialo para que veas como aparece

Otra solucion y esta ayuda muchisimo .... antes del conn.Execute sql
coloca

msgbox sql

Con eso podras ver el query en un mensaje y podrias revisar si te falta alguna coma, comilla, o si tienes error de sintaxis .. espero poderte ayudar
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

Problema de comillas flexgrid vb6 acces

Publicado por Brian (9 intervenciones) el 04/11/2014 21:52:09
Gracias amigo, en cuanto llegue a mi casa lo probare. Te comento como me fue, no tengo del todo claro el tema este todavia ya que es mi primer año de estudio en la carrera analista de sistemas. 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

Problema de comillas flexgrid vb6 acces

Publicado por brian (9 intervenciones) el 05/11/2014 00:24:28
Disculpa que te joda, pero el de la busqueda estaba solucionado solo lo puse como ejemplo.
El problema es el de la modificacion !
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
Imágen de perfil de andres guerrero
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema de comillas flexgrid vb6 acces

Publicado por andres guerrero (1798 intervenciones) el 06/11/2014 00:17:44
No amigo no es joda... mira lo que te decia es que en el de consulta ya dejas concatenado un valor.... por ende ... yo cambiaria el tema del WHE que es tu variabla solo para el codigo algo asi

Private Sub mod_articulo()
sql = "UPDATE mercaderia set "
sql = sql & " descripcion = '" & Text2.Text & "'"
sql = sql & ",cantidad = '" & Text3.Text & "'"
sql = sql & ", precio =" & Replace(Text4.Text, ",", ".")
sql = sql & " where nro_articulo = '" & busca & "'"

msgbox sql -- esto para ver que chulo queda la sentencia

y me cuentas qeu tal te fue!!!
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

Problema de comillas flexgrid vb6 acces

Publicado por Brian (9 intervenciones) el 06/11/2014 02:42:55
Quedo perfecto amigo, funciona todo ok.
Queria saber si podias ayudarme cuando le doy alta_articulo y el nro_articulo ya existe que aparezca un msgbox diciendo que el nro ya existe y no que tire error y se cierre el programa.
Para dar el alta utilizo :

1
2
3
4
5
6
7
8
9
10
Private Sub Alta_articulo()
 
sql = "INSERT INTO " & "mercaderia" & " VALUES ("
sql = sql & "'" & Text1.Text & "'"
sql = sql & ",'" & Text2.Text & "'"
sql = sql & ",'" & Text3.Text & "'"
sql = sql & ",'" & Text4.Text & "')"
 
conn.Execute sql
End Sub
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