Visual Basic - ERROR CON insert into

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 27 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

ERROR CON insert into

Publicado por J@m (195 intervenciones) el 01/03/2007 18:57:48
Hola, tengo este codigo. Pero solo me elimina los datos de la tabla y no me inserta los datos consultados que pasa?

Dim tb As Recordset
Dim db As Database
Dim comando2
Set db = OpenDatabase(App.Path & ("\Produccion2006.mdb"))
' ("C:\Produccion_Grabados\Producción01.mdb")
comando = "select * from TRABAJOSa WHERE CODIGO = " & Label20.Caption & ""
Data1.RecordSource = comando
Data1.Refresh
Set tb = db.OpenRecordset(comando)
If (tb.EOF) Or (tb.BOF) Then
P = MsgBox("ID no existe no existe", vbInformation + vbOKOnly, "Imprimir", 1, w)
Exit Sub
End If
db.Execute ("delete * from TRABAJOSa_IMPRESION")
comando2 = "insert into TRABAJOSa_IMPRESION " & comando
' ejecuta e inserta los datos seleccionados de alumno en alumno1
db.Execute (comando2)


NO se que pasa, me elimina los datos de la tabla TRABAJOSa_IMPRESION pero no me inserta los datos de la consulta, tampoco me genera error. 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

RE:ERROR CON insert into

Publicado por Benjo (679 intervenciones) el 02/03/2007 03:41:42
J@m, si es una instrucción INSERT INTO, no puede haber un SELECT. Fijate bien en el código que enviaste.

Muchas veces en programación, por escribir menos código, terminamos embarullando más las cosas, hasta un punto tal que no vemos el error más simple.

Vos ejecutás en tu segundo instrucción Execute, el sufijo "INSERT INTO TRABAJOSa_IMPRESION " y le agregás el contenido del string comando
el cual escribís como

comando = "select * from TRABAJOSa WHERE CODIGO = " & Label20.Caption & ""

tu Execute quedaría algo así

INSERT INTO TRABAJOSa_IMPRESION SELECT * FROM TRABAJOSa WHERE CODIGO = 'ALGUN CODIGO'

Estás mezcalndo una consulta con una instrucción.

Consulta de datos añadidos para múltiples registros:

INSERT INTO destino [IN basededatosexterna] [(campo1[, campo2[, ...]])]
SELECT [origen.]campo1[, campo2[, ...]
FROM expresióntabla

Consulta de datos añadidos para un registro:

INSERT INTO destino [(campo1[, campo2[, ...]])]
VALUES (valor1[, valor2[, ...])

destino
El nombre de la tabla o consulta donde se van a añadir registros.

basededatosexterna
La ruta de una base de datos externa. Si desea una descripción de la ruta de acceso, vea la cláusula IN.

origen
El nombre de la tabla o consulta de donde se van a copiar registros.

campo1, campo2
Los nombres de los campos donde se van a añadir los datos, si está a continuación del argumento destino, o los nombres de los campos de donde se obtienen los datos, si está a continuación de un argumento origen.

expresióntabla
El nombre de la tabla o las tablas de donde se van a insertar los registros. Este argumento puede ser un nombre de tabla sencillo o uno compuesto resultante de una operación INNER JOIN, LEFT JOIN o RIGHT JOIN, o una consulta guardada.

valor1, valor2
Los valores que se van a insertar en los campos específicos del nuevo registro. Cada valor se inserta en el campo que corresponde a la posición del valor en la lista: valor1 se inserta en campo1 del nuevo registro, valor2 dentro de campo2, y así sucesivamente. Debe separar los valores con una coma y escribir los campos de texto entre comillas (' ').

Un ejemplo
"INSERT INTO SubsidioH (cDis,cRam) VALUES (" & "'" & cDis(cmbDis.ListIndex) & "','" & cEst(cmbEst.ListIndex) & "')"
Si ingreso dos valores, son dos campos y luego dos valores, deben coincidir siempre
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