Access - Insertar registro mediante VBA

 
Vista:

Insertar registro mediante VBA

Publicado por EquisDe (24 intervenciones) el 09/02/2012 11:02:27
Buenas, estoy intentando añadir un registro a una tabla mediante codigo VBA. Tengo lo siguiente pero me salta un error:

Dim rs As Recordset
Dim con As Connection
Set rs = CreateObject("ADODB.RecordSet")
Set con = Application.CurrentProject.Connection

Dim valor As String
valor = Form!CODIGO.Value
DoCmd.RunSQL ("insert into TABLA1 values ('" & valor & "')")

Concretamente me salta el error en la linea "Set rs = Create......" el error es "13" y me dice que no coinciden los tipos.

Sabeis porque puede ser?

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

Insertar registro mediante VBA

Publicado por EquisDe (24 intervenciones) el 09/02/2012 11:58:32
Lo voy a poner más fácil. Lo que necesito es agregar un registro a una tabla mediante código visual, pero no se como se hace exactamente, el codigo de antes lo he extraido de un foro pero no me funciona. Como deberia hacerlo?

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

Insertar registro mediante VBA

Publicado por EquisDe (24 intervenciones) el 09/02/2012 12:07:55
Vale, ya lo he conseguido mediante la siguiente sentencia:

DoCmd.RunSQL "INSERT INTO TABLA1(cod) values (" & vCodigo & ")"

La pregunta es la siguiente; Al hacer eso me sale un msgbox avisandome que se van a anexar 1 fila y tengo que darle a aceptar. Hay alguna posibilidad de que este mensaje no salga sino que lo haga automáticamente? muchas 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

Insertar registro mediante VBA

Publicado por angelessebas (208 intervenciones) el 09/02/2012 12:28:15
Hola,

Para activar/desactivar mensajes se utiliza el método SetWarnings

DoCmd.SetWarnings False (los desactiva)

En tú código:

DoCmd.Setwarnings False
DoCmd.RunSQL "INSERT INTO TABLA1(cod) values (" & vCodigo & ")"

Docmd.SetWarnings True (para volver a activarlos

Saludos, Angeles

Página supuestos y soluciones en access: http://angelessebas.es/
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

Insertar registro mediante VBA

Publicado por Julio Manuel (2 intervenciones) el 04/01/2017 20:49:08
en la sentencia no es necesario colocar el value?

es decir DoCmd.RunSQL "INSERT INTO TABLA(cod) values ("& vCodigo.Value &")"

asi ? o solo con el nombre de la variable basta ?

aprecieria la respuesta de forma urgente
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

Insertar registro mediante VBA

Publicado por Marcos (13 intervenciones) el 09/02/2012 12:34:33
Yo utilizo
currentdb.Execute "INSERT INTO TABLA1(cod) values (" & vCodigo & ")"

y nunca me pide confirmación.
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

Insertar registro mediante VBA

Publicado por angelessebas (208 intervenciones) el 09/02/2012 14:18:13
Hola,

Hay 2 formas de quitar los mensajes, una con SetWarnings que los activas o desactivas cuando quieres y otra en el menú Herramientas ---> Opciones ---> Pestaña buscar modificar ---> aquí lo que se hace es deschequear lo que no quieras que te confirme, pero OJO lo que deschequees aquí servirá para TODAS las BD que se creen bajo este access, por lo que creo más conveniente utilizar, si se usa código, el SetWarnings.

Saludos, Angeles

Página supuestos y soluciones en access: http://angelessebas.es/
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

Insertar registro mediante VBA

Publicado por Emilio (232 intervenciones) el 09/02/2012 15:49:13
Hola EquisDe
Como lo querías hacer con Recordset te marca que el dato, tu lo declaras como Texto y en la tabla no es texto, Lo que me llama la atención es que lo quieres hacer con Ado y no con DAO que es el nativo de access, te paso unos ejemplos de ambos:

http://www.classanytime.com/mis333k/sjdaoadorecordsets.html

Y si efectivamente con RunSQL debes de hacerlo como dice Angeles, pero con Execute te olvidas de los mensajes. 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

Insertar registro mediante VBA

Publicado por EquisDe (24 intervenciones) el 09/02/2012 17:28:34
Muchissimas gracias a todos!!!

Sois unos fieras! :p
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

Insertar registro mediante VBA

Publicado por BEATRIZ (1 intervención) el 19/03/2014 10:02:34
esto me funciona:
instruccion = "insert into TRAPECIO(BMAYOR,BMENOR,rdo) values(BASE.Value,BASEME.Value,AREA.Value) "
DoCmd.RunSQL instruccion
pero en el momento que a la instrucción le pongo una clausula where no. ¿Alguien sabe el motivo?
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
Imágen de perfil de bryger
Val: 1
Ha disminuido su posición en 408 puestos en Access (en relación al último mes)
Gráfica de Access

Insertar registro mediante VBA

Publicado por bryger (15 intervenciones) el 27/06/2016 23:14:22
amigo angeles me podrias ayudar
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

Insertar registro mediante VBA

Publicado por wilfredo atencia (5 intervenciones) el 24/09/2013 19:10:11
perfecto. este código esta mejor comparando el que utilizaba anteriormente
mucha 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