Insertar en una tabla SQL server un registro

Tengo creada una base de datos SQL server y me comunico con ella mediante ADO. Mi problema es que no consigo introducir un registro nuevo en esa tabla. Primero hago la consulta del recordset (esto lo hace bien), pero cuando le digo que cree otra fila me da error
(ADODB.recordset.AddNew)
No se por donde me he perdido, espero me ayudéis a resolver este problema. Gracias por adelantado

1 Respuesta

Respuesta
1
Si puedes mostrar el pedazo de código podría ayudarte.
Este es el código que me da problema:
Private Sub Command2_Click()
Dim conn As New ADODB.Connection
Dim rest As ADODB.Recordset
conn.Open "File Name=" & App.Path & "\prueba.UDL"
Set rest = conn.Execute("select * from tablaExp")
'Hasta aquí sin problema
rest.AddNew 'añado fila al recordset
'y es donde me da el error (sintáctico)
rest("idExp") = 77 'meto valor al campo1
rest("Direccion") = "Percebe" 'al campo2
rest("Localidad") = "Sildavia" 'al 3
rest("Profesion") = 5 'al 4
rest.Update 'guardo los cambios
rest.close 'y cierro el recordset
Yo prefiero utilizar solo el método execute() con consultas SQL, porque así puedo realizar las operaciones precisas que yo quiero. Entonces, lo que te puedo sugerir, es que en vez de hacer las 6 lineas de código, la reemplaces por dos lineas (defines una variable tipo String):
Str = "INSERT INTO tablaExp (idExp, Direccion, Localidad, Profesion) VALUES (77, 'Percebe', 'Sildavia', 5);"
Set rest = conn.execute(Str)
Y listo... en este caso rest estará vacío, cuando haces una consulta de selección (SELECT) rest contiene los registros, por lo que cuando dejes de usar rest, debes eliminar (limpiar) esta variable (Set rest = NULL, o algo por el estilo). Si quieres ingresar datos que el usuario ingresa, puedes concatenar el String, con los datos tomados de los controles que tengas en tu ventana, por ejemplo, si tienes un TextBox (llamado Text1) para la dirección, seria algo así:
Str = "INSERT INTO tablaExp (idExp, Direccion, Localidad, Profesion) VALUES (77, '" & Text1.Text & "', 'Sildavia', 5);"
Espero haberte ayudado, y si quieres más información acerca de sentencias SQL, puedes encontrarla en:
http://www.monografias.com/trabajos11/manu/manu.shtml
Este es un muy buen manual de SQL.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas