Access - Problema con sintaxis en INSERT INTO

 
Vista:

Problema con sintaxis en INSERT INTO

Publicado por Nancy (13 intervenciones) el 27/08/2009 16:46:04
Hola nuevamente me podrian ayudar a darle una checadita a este codigo que estoy utilizando para poder guardar los datos de un reporte en una tabla, me muestra los datos en un cuadro los cuales se van a guardar en dicha tabla pero me manda un error en el
INSERT INTO al final.

Por favor alquien quien me pueda orientar con este codidgo, se los agradecere mucho,

Gracias

x = MsgBox("Se imprimio correctamente el cheque?", vbYesNo)

' MsgBox x para ver que valor nos muestra

If x = 6 Then
SQL = "INSERT INTO Table3 (FECHA, RFC, RAZON SOCIAL,IMPORTE) VALUES('" & Now() & "',' " & Forms![Datos_cheque1]![RFC] & "',' " & Forms![Datos_cheque1]![Razon Social] & "'," & CDbl(Forms![Cantidad]![Importe]) & ")"
MsgBox SQL
DoCmd.RunSQL SQL

End If

DoCmd.SetWarnings True
DoCmd.Beep
z = 0
Do While z > 1000000
z = z + 1
DoCmd.Beep
Loop
DoCmd.Quit acQuitSaveAll

End Sub
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:Problema con sintaxis en INSERT INTO

Publicado por elio (169 intervenciones) el 28/08/2009 18:50:11
Hola Nancy

Disculpa la demora , me encontraba de viaje, mira no soy experto en programacion pero te recomiendo por si te funciona, que le saques de la instruccion SQL la conversion a doble del valor que tienes en el formulario, por ejemplo pudieras asignarselo a una variable, y hacer la conversion antes de la sentencia SQL, y luego en la sentencia SQL poner el valor de la variable para que se lo asignes al campo que tu quieres, eso es lo que a mi entender muy poco de lenguaje de programacion yo veo que pueda darte ese error, puede ser tambien que te falten algunas biblioteca de access cuando instalaste el Office, otra cosa pudiera ser como tienes definido ese campo en la tabla, en fin siento no poder darte la respuesta correcta, intenta como te dije a ver como te va, y sino ten un poco de paciencia que algun experto te ayudara, un saludo

Nota: Si lo solucionas por fuera de este foro, postealo, para ver cual es el error, nunca he tenido que usarlo, pero quizas alguna dia si,
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

RE:Problema con sintaxis en INSERT INTO

Publicado por Nancy-- para Elio (13 intervenciones) el 31/08/2009 23:12:29
Gracias Elio por leer mi pregunta, realice lo que me indicaste y aun me manda error, Toño me dio otro tipo ya lo aplique pero me sigue mandando error en el Insert Into, en cuanto tenga exito con este problema te aviso,

Saludos.... MIL 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

RE:Problema con sintaxis en INSERT INTO

Publicado por Antonio (83 intervenciones) el 29/08/2009 01:17:09
Hola,

El problema está en la inserción de la fecha y hora.
En lugar de usar ... " ' " & now & " ' "
Usa esto ... "#" & format(now, "mm/dd/yyyy hh:nn:ss") & "#, " & ....
para que te grabe la fecha y la hora.

Si solo quieres la fecha ...."#" & format(now, "mm/dd/yyyy") & "#, " & ...

Saludos
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

RE:Problema con sintaxis en INSERT INTO

Publicado por Nancy---- Para Toño (13 intervenciones) el 31/08/2009 23:17:43
Hola Toño...

Realice lo que me indicaste pero tuve que eliminar los "#" porque me mandaba error de sintaxis, corri el reporte y si me muestra los datos pero aun asi me sigue mandando error en el INSERT INTO, por favor ayudame a ver que problemita tengo en mi codigo, de verdad te estare muy agradacecida.

Saludos...

Dim x
Dim conn
Dim Rs
Dim sql
Dim y
Set conn = CreateObject("ADODB.Connection")
Set Rs = CreateObject("ADODB.Recordset")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "M:Cheques.mdb"

x = MsgBox("Se imprimio correctamente el cheque?", vbYesNo)

' MsgBox x para ver que valor nos muestra

If x = 6 Then
y = CDbl(Forms![Cantidad]![Importe])
sql = "INSERT INTO Table3 (FECHA,RFC,RAZON SOCIAL,IMPORTE) VALUES(" & Format(Now, "mm/dd/yyyy") & " ','" & Forms![Table1]![RFC] & "',' " & Forms![Datos_cheque1]![Razon Social] & "',' " & y & " )"
' sql = "INSERT INTO Table4 (FECHA,RFC,RAZON SOCIAL,IMPORTE) VALUES(" & Forms![Vista_Previa]![FECHA] & " ','" & Forms![Table1]![RFC] & "',' " & Forms![Datos_cheque1]![Razon Social] & "'," & CDbl(Forms![table2]![IMPORTE]) & " )"
MsgBox sql
' DoCmd.RunSQL sql




Rs.Open sql, conn
If Rs.EOF Then
Msgbody = Msgbody & " listo"
Else

End If

DoCmd.SetWarnings True
DoCmd.Beep
z = 0
Do While z > 1000000
z = z + 1
DoCmd.Beep
Loop
DoCmd.Quit acQuitSaveAll
End If
Rs.Close

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

RE:Problema con sintaxis en INSERT INTO

Publicado por Antonio (83 intervenciones) el 03/09/2009 23:03:55
Hola,

Perdona no he podido contestar antes (supongo que cuando indicas Toño te refieres a mi, aunque si te digo la verdad prefiero Antonio ;-)

Bueno a lo nuestro:

Si quieres utilizar ADO, para agregar registros a un recordset tienes que usar el método ADD del recordset, alternativamente puedes utilizar una sentencia INSERT sobre la conexión que hayas abierto.

Si no tienes aun demasiada experiencia, creo es mejor que uses DAO (el standard de ACCESS). Para agregar registros a una tabla de una b.d. distinta de la que tienes con los forms puedes hacerlo del modo siguiente (siempre que no haya otras consideraciones respecto de seguridad, administrador, usuarios, privilegios, etc.)

Dim OtraBd as database 'El objeto para la otra b.d.
Dim Excl as boolean 'True para uso exclusivo de la BD
Dim Escr as boolean 'True para poder escribir en ella

Set DbNueva = OpenDatabase("M:Cheques.mdb", Excl, Escr)

DbNueva.Execute Sql, dbFailOnError 'La instruccion insert

DbNueva.Close 'Para cerrar la b.d.
set DbNueva = nothing 'Para eliminar el objeto de la memoria

Por otra parte el error en la instrucción insert creo que puede estar en que el campo RAZON SOCIAL de la TABLE3 deberias escribirlo como [RAZON SOCIAL] porque tiene un espacio en blanco en el nombre que provoca el error de sintaxis.

Y otra cosa, no creo que el símbolo # rodeando a las fechas y horas te de un error. Finalmente, para las cifras basta con que se escriban con el punto decimal si lo tiene (por ejemplo si el importe del cheque es doce mil cuatrocientos cincuenta dolares con 60 centavos basta con poner en la sql 12450.60. Eso lo puedes hacer con STR$(IMPORTE).

Saludos
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

RE:Problema con sintaxis en INSERT INTO

Publicado por Nancy---- Para ANTONIO (13 intervenciones) el 04/09/2009 18:26:46
Hola Antonio,

Agradezco tu ayuda, ralice los cambios que me indicaste y ya no me marco error en el INSERT INTO, tenias razon el problema era por la razon social, ralice los cambios que me indicas y ya al menos me guarda la informacion en la tabla, solo tengo una duda en el caso de que siga utilizando la misma B.D. puedo utilizar estas mismas instrucciones, claro eliminando las variables para la creacion de otra nueva B.D.?

Gracias por tu ayuda y ahora estare trabajando con la parte de la impresion de los cheques.

Cuidate y estare al tanto de tu pronta respuesta,

Saludos...
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

RE:Problema con sintaxis en INSERT INTO

Publicado por Antonio (83 intervenciones) el 05/09/2009 03:17:47
Hola,

No entiendo lo que quieres decir, ¿te refieres a si continuas usando M:Cheques.mdb o a la que tienes con la "insert"?

Saludos
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