Título: Crear un registro nuevo en una base de datos Publicado por: icisneros en 19 Diciembre 2006, 19:06 pm Código: AdoMensajes.Recordset.AddNew En esta parte de código me da un error en la segunda linea, ¿porqué? no puedo meter los datos así en la base de datos, me deja leer pero no escribir. Como puedo crear una nueva fila en la base de datos y guardar ciertas variables en sus campos? Un saludo! Título: Re: Crear un registro nuevo en una base de datos Publicado por: CeLaYa en 19 Diciembre 2006, 19:11 pm checa como la estas abriendo, si puedes leer entonces la estas abriendo como solo lectura
Título: Re: Crear un registro nuevo en una base de datos Publicado por: Hans el Topo en 19 Diciembre 2006, 22:14 pm de primeras...¿k error te da?
Viendo que utilizas un controlcito y dando por correcto el nombre del campo nose que puede fallar. los campos se pueden meter asi Código: adomensajes.recordset!nombrecampoapelo=valor una vez que metas te mueves a un registro para que refresque Código: adomensajes.recordset.update muchas veces va más rapido visual que la base de datos y suele dar problemas de refrescos xD en el caso que tengas el recourdsource en diseño agregalo también en tiempo de ejecución (a veces da fallos) como comento celaya comprueba los permisos de la base de datos y los de conexión Título: Re: Crear un registro nuevo en una base de datos Publicado por: icisneros en 20 Diciembre 2006, 08:29 am El error que me da lo adjunto como imagen al mensaje y al pulsar en depurar me lleva a esa línea de código.
¿Cómo puedo revisar los permisos de la base de datos? Permisos de escritura tiene porque yo puedo conectarme a ella a mano y escribir datos. Supongo que el control Ado tendra algun filtro de permisos tambien, como puedo darle permisos de escritura para ver si es eso? EDITADO He comprobado los permisos del objeto ADO y tenia mode unknow y lo he puesto en readwrite y me sigue dando el mismo error. Tambien he probado a escribir con ado.recordset!campo y da exactamente el mismo error. Tambien he probado a intentar ejecutar la sentencia SQL "a pelo" pero no me deja, he leido por internet que se hacia: Código: Adodc.recordset.execute("SQL") Pero a mi no me reconoce la opcion execute en el recordset, en los ejemplos que he leido en internet creaban el recordset desde codigo y yo he añadido el objeto en el formulario, supongo que no habra problema. Espero que podais ayudarme, gracias por leer. ¿Alguna otra sugerencia? Un saludo! Título: Re: Crear un registro nuevo en una base de datos Publicado por: CeLaYa en 20 Diciembre 2006, 14:07 pm pues según lo que pones en las imagenes el error se provoca porque no encuentra el campo "origen" en la tabla, checa si lo tienes bien escrito, o si usas una consulta SQL que hayas seleccionado el campo:
Código: Adodc.recordset.execute("SELECT campo1,campo2, Origen FROM...") Título: Re: Crear un registro nuevo en una base de datos Publicado por: Hans el Topo en 20 Diciembre 2006, 16:39 pm Este post se lo recomiendo a todos los que utilizan bases de datos xD a mi me vino muy bien
intenta hacerlo en tiempo de ejecución enviando la sentencia directamente sobre la conexión (cn.execute sql) No has leído mucho la verdad Declarar variables Código: Dim Cn as adodb.connection, Cmd as adodb.Command, Rec as adodb.Recordset Iniciar la conexión Código: set Cn=new adodb.connection Ejecutar un comando Código: sql="delete tabla where dato='" & valor & "'" Abrir un recordset Código: set rec=new adodb.recordset Acceder a un campo Código: p$=rec!dirección Acceder a las propiedades de un campo Código: p$=rec.fields("nombre_campo").propiedad Utilizar un objeto command Código: set Cmd=new adodb.command Ejemplo de un comand que genera un recordset Código: dim Cn as adodb.connection, Cmd as adodb.command, Rec as adodb.Recordset Y esto en el modelo de datos ADO. El DAO es mas rápido y para cosas pequeñas mejor (especialmente con access). ADO es mas completo y para bases de datos sql. RTFM |