Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema al cargar datos de msflexgrid a la base de datos

Estas en el tema de Problema al cargar datos de msflexgrid a la base de datos en el foro de Visual Basic clásico en Foros del Web. Hola, mi problema parece ser de sintaxis Esta es mi grilla: Código: fgDatos.Clear fgDatos.Cols = 4 fgDatos.Rows = 2 fgDatos.TextMatrix(0, 0) = "ID" fgDatos.ColWidth(0) = ...
  #1 (permalink)  
Antiguo 19/09/2008, 06:52
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Problema al cargar datos de msflexgrid a la base de datos

Hola, mi problema parece ser de sintaxis

Esta es mi grilla:
Código:
fgDatos.Clear
fgDatos.Cols = 4
fgDatos.Rows = 2
fgDatos.TextMatrix(0, 0) = "ID"
fgDatos.ColWidth(0) = 0
fgDatos.TextMatrix(0, 1) = "Articulo"
fgDatos.ColWidth(1) = 1000
fgDatos.TextMatrix(0, 2) = "Marca"
fgDatos.ColWidth(2) = 1000
fgDatos.TextMatrix(0, 3) = "Pais"
fgDatos.ColWidth(3) = 1000

Esta es mi código para cargar los datos de la grilla a mi base de datos en acces:
Código:
Dim i As Integer, sql As String
Dim cons As String
Dim rss As New ADODB.Recordset
cons = "select Articulos.* from articulos"

rss.Open cons, Conexion, adOpenDynamic, adLockPessimistic, adCmdText
    
    For i = 1 To fgDatos.Rows - 1
sql = "INSERT INTO ARTICULOS VALUES(" & fgDatos.TextMatrix(i, 0) & "," & fgDatos.TextMatrix(i, 1) & "," & fgDatos.TextMatrix(i, 2) & "," & fgDatos.TextMatrix(i, 3) & ")"
        Conexion.Execute sql
    Next i
El error que me salta es "Error de sintaxis en la instrucción INSERT INTO"



Muchisimas gracias de antemano al que me ayude
  #2 (permalink)  
Antiguo 19/09/2008, 07:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 40
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

fijate que vos especificas la tabla pero no sus campos hace asi:
sqlin = "insert into nrofactura (idfactu,fecha,hora,notas,nropresu,tipo,usern)" & _
"Values('" & txtnumpre.Text & "', '" & txtfecha & "',' " & txthora & " ',' " & txtnotas & " ',' " & codpresu & " ',' " & comp & " ',' " & usuario & " ')"
cn.Execute sqlin
  #3 (permalink)  
Antiguo 19/09/2008, 07:55
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

Un millón de gracias!!!!!!
  #4 (permalink)  
Antiguo 19/09/2008, 08:00
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

Cita:
Iniciado por fede_rosario Ver Mensaje
fijate que vos especificas la tabla pero no sus campos hace asi:
sqlin = "insert into nrofactura (idfactu,fecha,hora,notas,nropresu,tipo,usern)" & _
"Values('" & txtnumpre.Text & "', '" & txtfecha & "',' " & txthora & " ',' " & txtnotas & " ',' " & codpresu & " ',' " & comp & " ',' " & usuario & " ')"
cn.Execute sqlin
Si el número de valores de la consulta coincide con el número de campos de la tabla, no es necesario detallar los campos.

Yo creo que el error está en que no pone las comillas simples (como tú bien indicas) al separar los valores.

  #5 (permalink)  
Antiguo 19/09/2008, 08:07
Avatar de manumaf  
Fecha de Ingreso: mayo-2007
Ubicación: Argentina
Mensajes: 854
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

Tienes razón avellaneda sin especificar las columnas de la tabla también funciona...


Muchísimas gracias a los dos
  #6 (permalink)  
Antiguo 16/10/2008, 19:02
Avatar de coco_wey  
Fecha de Ingreso: noviembre-2005
Mensajes: 21
Antigüedad: 18 años, 5 meses
Puntos: 0
guardar datos de msflexgrid a la base para hacer reporte sin dataenviroment

Hola, tengo un pekeñito problema.

es para imprimir facturas con DataReport sin el dataenviroment,

Primero guardo los datos en otra tabla para despues imprimirla con datareport, pero me grava todos los datos menos el de "Descripcion" me sale un 0.

y los otros campos si me los grava como codigo, cantidad, precio, nombre, apellido etc.... no c por k me sale un 0 en vez de el nombre del producto guardado,

y ademas cuando agrego varios productos ocea,, varias lineas en el msflexgrid me grava los datos en la tabla en varias filas y kiero q lo guarde en una sola fila de la tabla. paraq imprimir la factura...

aki dejo el code

para guardar los datos del flexgrid en la BD.
===============================
On Local Error Resume Next
Dim I As Integer
For I = 1 To Me.MSFlexGrid2.Rows - 1
If Me.MSFlexGrid2.TextMatrix(I, 1) = "" Then
Else
Dim db As Connection
Dim adoPrimaryRS As Recordset
Set db = New Connection
Set adoPrimaryRS = New Recordset
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & "db1.mdb "
adoPrimaryRS.Open "Select * From TablaGuardarFactura", db, adOpenStatic, adLockOptimistic
adoPrimaryRS.AddNew

adoPrimaryRS!Nombre = txtNombre
adoPrimaryRS!Apellido = txtApellido

adoPrimaryRS!ID = lblID
adoPrimaryRS!C_Fecha = Fecha
adoPrimaryRS!C_Hora = Hora

adoPrimaryRS!Codigo = Val(Me.MSFlexGrid2.TextMatrix(I, 1))
adoPrimaryRS!Cantidad = Val(Me.MSFlexGrid2.TextMatrix(I, 2))
adoPrimaryRS!Descripcion = Val(Me.MSFlexGrid2.TextMatrix(I, 3))
adoPrimaryRS!Precio = Val(Me.MSFlexGrid2.TextMatrix(I, 4))

adoPrimaryRS!C_Doctor = cboDoctor
adoPrimaryRS!C_Auxiliar = cboAuxiliar

adoPrimaryRS!C_Total_Gral = TxtTotal

'adoPrimaryRS!Fecha = Date
'adoPrimaryRS!Hora = Time
adoPrimaryRS.Update
End If
Next I
If Err <> 0 Then
MsgBox "No se han podido guardar todos los datos por el siguiente error " & Err, vbInformation, "Error"
Exit Sub
End If



para hacer el reporte (Imprimir factura)
===========================
On Error Resume Next

Dim db As Connection
Dim adoPrimaryRS As Recordset
Set db = New Connection
Set adoPrimaryRS = New Recordset

db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & "db1.mdb "
adoPrimaryRS.Open "Select * From TablaGuardarFactura", cnn, adOpenStatic, adLockOptimistic

If adoPrimaryRS.RecordCount > 0 Then
Set DataFactura.DataSource = adoPrimaryRS
With DataFactura
Set MSFlexGrid2.DataSource = adoPrimaryRS
DataFactura.Show
End With
Else
MsgBox "No hay Registro para imprimir ", vbInformation
End If

Gracias....
Salu2...

Última edición por coco_wey; 16/10/2008 a las 19:20
  #7 (permalink)  
Antiguo 17/10/2008, 00:39
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

Hola coco_wey,

es un problema de fácil solución: elimina Val al cargar el registro 'Descripcion'

adoPrimaryRS!Descripcion = Me.MSFlexGrid2.TextMatrix(I, 3)

La función Val devuelve los números contenidos en una cadena, y si en la cadena no hay números devuelve 0.

  #8 (permalink)  
Antiguo 28/10/2008, 20:41
Avatar de coco_wey  
Fecha de Ingreso: noviembre-2005
Mensajes: 21
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

Gracias.. Avellaneda

pense q no havias respondido por q no me llego el mensaje el correo pero buehh.. muchas gracias....
  #9 (permalink)  
Antiguo 28/10/2008, 21:42
Avatar de coco_wey  
Fecha de Ingreso: noviembre-2005
Mensajes: 21
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Problema al cargar datos de msflexgrid a la base de datos

Gracias Avellaneda...

Última edición por coco_wey; 16/11/2008 a las 13:40
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

SíEste tema le ha gustado a 1 personas




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