Discussion:
Añadir registros desde un boton
(demasiado antiguo para responder)
Alma
2006-05-12 09:17:34 UTC
Permalink
Hola:
Desde un formulario abierto necesito añadir un registro a una tabla (que no
está abierta) con cuatro campos y que estos campos contengan datos.

¿Sabeis como se puede hacer?
Muchas gracias
José Mª Fueyo (desde el curro)
2006-05-12 09:21:03 UTC
Permalink
Hola Alma
Varias fomas:
Mediante un recordset, y añadiendo un registro.
Usar un objeto querydef temporal que te defina una consulta de inserción
etc...

Quizás la segunda sea lo más limipio.

Salu2
--
José Mª Fueyo
[MS MVP Access]
Alma
2006-05-12 09:44:45 UTC
Permalink
Me puedes deicr como abro un recordset o querydef por VBA y añado el
registro, por favor.

Gracias.
Post by José Mª Fueyo (desde el curro)
Hola Alma
Mediante un recordset, y añadiendo un registro.
Usar un objeto querydef temporal que te defina una consulta de inserción
etc...
Quizás la segunda sea lo más limipio.
Salu2
--
José Mª Fueyo
[MS MVP Access]
Emilio
2006-05-12 09:54:49 UTC
Permalink
--------------------------------------------------------------------------
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
--------------------------------------------------------------------------
Hola!

¿y no será mas facile una consulta de datos anexados?, otra de las opciones
posibles...

INSERT INTO ...

Saludos a ***@s
Emilio
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.com/emilio
Post by Alma
Me puedes deicr como abro un recordset o querydef por VBA y añado el
registro, por favor.
Gracias.
Post by José Mª Fueyo (desde el curro)
Hola Alma
Mediante un recordset, y añadiendo un registro.
Usar un objeto querydef temporal que te defina una consulta de inserción
etc...
Quizás la segunda sea lo más limipio.
Salu2
--
José Mª Fueyo
[MS MVP Access]
José Mª Fueyo (desde el curro)
2006-05-12 10:01:52 UTC
Permalink
Es otra opoción, si. Pero quizás tubieras que definir una consulta de
parámetros (con sus correspondientes parámetros, claro).
¡Por falta de opciones que no sea! ;-)

Salu2
--
José Mª Fueyo
[MS MVP Access]
José Mª Fueyo (desde el curro)
2006-05-12 09:59:28 UTC
Permalink
Hola Alma
Con la referencia a DAO activada

dim sSQL as string,db as DAO.Database, qry as DAO.QueryDef
sSQL="insert into MiTabla(Campo1,Campo2) Values(" & [Valor para el campo1] &
"," & [Valor para el campo2] & ");"

Set db=Currentdb
'Dejamos el nombre en blanco para crear un objeto querydef temporal, que no
se quede almacenado
Set qry=db.CreateQuerydef("",sSQL)
qry.execute

Obviamente, teniendo en cuenta en la SQL sí los datos son de tipo texto o
no.
Salu2
--
José Mª Fueyo
[MS MVP Access]
Alma
2006-05-12 13:12:47 UTC
Permalink
Gracias:
Me da el siguiente error la consulta:
sSQL = "insert into T_Minutas(exp,IDMinuta,PresupuestoID,ImporteTotal)
Values(" & Me.ExpedienteID & "," & "CH1" & "," & Me.IDPresupuesto & "," &
Me.totalppto & ");"


ERROR: Uso de '.', '¡', o '()0 no válido. en la expresion de consulta
'b.17' (Este es mi numero de expediente)

Si lo quito me sale otro error:
sSQL = "insert into T_Minutas(IDMinuta,PresupuestoID,ImporteTotal) Values("
& "," & "CH1" & "," & Me.IDPresupuesto & "," & Me.totalppto & ");"

ERROR: Error de sintaxis en la intruccion INSERT INTO

No se puede hacer por recordset. Creo que es mas sencillo?
Gracias
Alma
2006-05-12 13:20:11 UTC
Permalink
He dejado solo un parametro para probar.

Si pongo : sSQL = "insert into T_Minutas(IDMinuta) Values(" & "CH1" & ");"

me da otro error: Pocos parametros se esperaba 1.
José Mª Fueyo (desde el curro)
2006-05-12 14:45:00 UTC
Permalink
Hola de nuevo Alma
Acuerdate de encerrar entre comillas simples, los datos que sean de tipo
string. En tu caso, tu número de expediente.

sSQL = "insert into T_Minutas(exp,IDMinuta,PresupuestoID,ImporteTotal)
Values('" & Me.ExpedienteID & "','" & "CH1" & "'," & Me.IDPresupuesto & ","
&
Me.totalppto & ");"



Salu2
--
José Mª Fueyo
[MS MPV Access]
Mastercafe - Juan
2006-05-12 17:22:28 UTC
Permalink
Incluido el numero de expediente... que es el que provoca el primer error
;-)
--
Saludos desde Oviedo (Asturias)

Juan Menéndez
Mastercafe S.L.
www.mastercafe.com
***@mastercafe.com

Si la información recibido te ha servido indicalo con otro post.
En caso de resolverlo por otros medios, indica la solución usada
ayudaras a otros y aprenderemos todos.
Post by José Mª Fueyo (desde el curro)
Hola de nuevo Alma
Acuerdate de encerrar entre comillas simples, los datos que sean de tipo
string. En tu caso, tu número de expediente.
sSQL = "insert into T_Minutas(exp,IDMinuta,PresupuestoID,ImporteTotal)
Values('" & Me.ExpedienteID & "','" & "CH1" & "'," & Me.IDPresupuesto &
"," &
Me.totalppto & ");"
Salu2
--
José Mª Fueyo
[MS MPV Access]
Charly Boyer
2006-05-13 08:36:23 UTC
Permalink
Con recordset:

Dim LaTabla As DAO.Recordset
Set LaTabla = CurrentDb.OpenRecordset("NombreTabla", dbOpenDynaset)

LaTabla.AddNew
LaTabla!NombreCampo = Me.txt
LaTabla.Update 'guardar registro
LaTabla.Close 'cerrar la tabla
Set LaTabla = Nothing

Loading...