Necesito ayuda con vb 6.0

Necesito guardar los datos que tengo en las cajas de texto los cuales me los arroja una consulta y necesito guardarlos en otra tabla y así almacenar más registro es esa tabla
he utilizado insert into de todas las maneras posibles y no manda ningún tipo de error pero tampoco me hace nada no me guarda los datos que yo quiero
también he utilizado addnew de la siguiente manera y me sale error de sintaxis
Adodc2.ConnectionString = "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" & "DATA SOURCE=" & App.Path & "\EXISTENCIAS.MDB"
Adodc2.CursorType = adOpenDynamic
Adodc2.RecordSource = "SELECT  * FROM VENTA"
Adodc2.Recordset.AddNew , "([CODIGO,PRODUCTO,CANTIDAD,VALORVENTA,VALORTOT,FECHAVENTA] [Values CODIGO.Text,PRODUCTO.Text,CANTIDAD.Text,VALORVENTA.Text,PRVENTA.Text,FECHAVENTA.Text])"
Utilizo visual basic 6 y access 2007

1 respuesta

Respuesta
1
Prueba con esto:
    Dim cn As New ADODB.Connection
    Dim sqlInsert As String
    sqlInsert = "insert into venta (CODIGO,PRODUCTO,CANTIDAD,VALORVENTA,VALORTOT,FECHAVENTA) " & _
                "Values (" & CODIGO.Text & "," & PRODUCTO.Text & "," & CANTIDAD.Text & "," & _
                             VALORVENTA.Text & "," & PRVENTA.Text & "," & FECHAVENTA.Text & ")"
    cn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" & "DATA SOURCE=" & App.Path & "\EXISTENCIAS.MDB"
    Cn. Execute sqlInsert
    Cn. Close
    Set cn = Nothing
Si no me he equivocado al escribirlo, con ese código te insertará bien el registro.
Un detalle importante. Si quieres que ese registro se visualice nada más instertarlo, deberías poner la "insert" como una transacción, ya que si no lo haces así es muy posible que se demore la grabación y tu programa no pueda verlo hasta dentro de un rato.
Para ello donde está la instrucción "con.execute..." tendrías que poner:
    Con. BeginTrans
    Cn. Execute sqlInsert
    Cn. CommitTrans
Otro detalle: si alguno de los campos es de texto, tendrás que ponerlo entre comillas. Esto es: supongamos que los campos código y producto son textos. La instrucción que construye el SQL sería:
    sqlInsert = "insert into venta (CODIGO,PRODUCTO,CANTIDAD,VALORVENTA,VALORTOT,FECHAVENTA) " & _
                "Values ('" & CODIGO.Text & "','" & PRODUCTO.Text & "'," & CANTIDAD.Text & "," & _
                             VALORVENTA.Text & "," & PRVENTA.Text & "," & FECHAVENTA.Text & ")"
Espero que te funcione. Si no... miramos otras formas de hacerlo.
Me da error de sintaxis
Con.BeginTrans
cn.Execute sqlInsert
cn.CommitTrans
en la instruccion cn.execute sqlInsert
Me sale el siguiente error
Error de sintaxis (falta operador ) en la expresión de consulta
Agradezco de antemano estoy con dos semanas de retraso en este proyecto
Cópiame la instrucción de asignación que has puesto y también el contenido de la variable 'sqlInsert'.
Para ver el contenido, cuando te de el error entra en 'depurar' y le das a 'ver - ventana inmediato' (o <Ctrl><G>).
En la ventana de inmediato pon: ? sqlInsert <INTRO>
Con eso verás el contenido de la variable y el SQL que está intentando ejecutar. Copiamelo aquí para ver donde está el problema.
Por último necesitaría saber el tipo de datos de cada campo, ya que cada uno tiene que ponerse de una forma distinta.
Esta es la forma de conectarme es todo igual a tdo lo que tu me enviaste
Espero me asesores
Dim cn As New ADODB.Connection
Dim sqlInsert As String
sqlInsert = "insert into venta (CODIGO,PRODUCTO,CANTIDAD,VALORVENTA,VALORTOT,FECHAVENTA) " & _
                "Values (" & CODIGO.Text & "," & PRODUCTO.Text & "," & CANTIDAD.Text & "," & _ VALORVENTA.Text & "," & PRVENTA.Text & "," & FECHAVENTA.Text & ")"
cn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" & "DATA SOURCE=" & App.Path & "\EXISTENCIAS.MDB"
con.BeginTrans
cn.Execute sqlInsert
cn.CommitTrans
A ver, te pedía también el tipo de datos de los campos y el contenido de los objetos que tienen los valores a insertar.
Te pongo otra posible forma de hacer lo que quieres. A ver si con esta te funciona.
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    cn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" & "DATA SOURCE=" & App.Path & "\EXISTENCIAS.MDB"
    cn.BeginTrans
    rs.Open "venta", cn, adOpenKeyset, adLockOptimistic, adCmdTable
    rs.AddNew
    rs!CODIGO = CODIGO.Text
    rs!PRODUCTO = PRODUCTO.Text
    rs!CANTIDAD = CANTIDAD.Text
    rs!VALORVENTA = VALORVENTA.Text
    rs!VALORTOT = PRVENTA.Text
    rs!FECHAVENTA = FECHAVENTA.Text
    rs.Update
    Rs. Close
    Con. CommitTrans
Se me olvidaba, ponle al final las siguientes instrucciones:
Con. Close
set cn = nothing
set rs = nothing

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas