AYUDENMEEE.....SUGERENCIAS.. POR FAVOR PROBLEMA CON EL RECORDSET
Hola tengo un problema ya abri el recordset, pero ahora que voy insertar un registro me manda el error de objeto cerrado,,, y no puedo hacer nada...
set rs = new adodb.recordset
add.new
rs("campo_tabla") = text1.text
rs.update
rs.open
en la linea addnew me manda el error....
porfavor ayudenme o mandenme una sugerencia porfavor... si tienen alguna consulta envienmela para ayudarlos tambien
set rs = new adodb.recordset
add.new
rs("campo_tabla") = text1.text
rs.update
rs.open
en la linea addnew me manda el error....
porfavor ayudenme o mandenme una sugerencia porfavor... si tienen alguna consulta envienmela para ayudarlos tambien
Hola Chikis.
tienes que abrir el recorset con una select en donde quieras realizar esos cambios ANTES DE PONER ADDNEW.
Asi lo harÃa yo si atacarÃa a una base de datos que no fuera Access, por ejemplo SQL Server.
Dim cn as New ADODB.Connection
Dim cmd as New ADODB.Command
cn.Open ("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BaseDeDatos;Data Source=Server"
Set Cmd.ActiveConnection = cn
Cmd.CommandText = "INSERT INTO Tabla (campo1) VALUES (?)"
Cmd.CommandType = adCmdText
Set prm = cmd.CreateParameter("Campo1", adVarChar, adParamInput, 20, text1)
Cmd.Parameters.Append prm
cmd.Execute
Si lo que utilizaria es Access lo harÃa asi:
Dim qd As QueryDef
Dim db As Database
Set db = DBEngine.Workspaces(0).OpenDatabase("C:BaseDeDatos.mdb")
Set qd = db.CreateQueryDef("")
qd.SQL = "PARAMETERS Texto STRING; INSERT INTO Tabla(CampoTabla) VALUES (Texto)"
qd![Texto] = text1.text
qd.Execute
Bueno, espero haberte dao alguna idea... yo es que los recordset prefiero utlizarlos para recorrer las tablas... Bueno, si hay alguna duda [email protected]
tienes que abrir el recorset con una select en donde quieras realizar esos cambios ANTES DE PONER ADDNEW.
Asi lo harÃa yo si atacarÃa a una base de datos que no fuera Access, por ejemplo SQL Server.
Dim cn as New ADODB.Connection
Dim cmd as New ADODB.Command
cn.Open ("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BaseDeDatos;Data Source=Server"
Set Cmd.ActiveConnection = cn
Cmd.CommandText = "INSERT INTO Tabla (campo1) VALUES (?)"
Cmd.CommandType = adCmdText
Set prm = cmd.CreateParameter("Campo1", adVarChar, adParamInput, 20, text1)
Cmd.Parameters.Append prm
cmd.Execute
Si lo que utilizaria es Access lo harÃa asi:
Dim qd As QueryDef
Dim db As Database
Set db = DBEngine.Workspaces(0).OpenDatabase("C:BaseDeDatos.mdb")
Set qd = db.CreateQueryDef("")
qd.SQL = "PARAMETERS Texto STRING; INSERT INTO Tabla(CampoTabla) VALUES (Texto)"
qd![Texto] = text1.text
qd.Execute
Bueno, espero haberte dao alguna idea... yo es que los recordset prefiero utlizarlos para recorrer las tablas... Bueno, si hay alguna duda [email protected]
Una cosa más... yo he supuesto que sólo tiene un campo la tabla, si tiene más de tuno sólo tienes que ir añadiendo los campos que sean... es decir... (suponiendo que los campos son todos STRINGS y no otro tipo de dato...)
En SQL Server:
Cmd.CommandText = "INSERT INTO Tabla (campo1,campo2,campo3...campoX) VALUES (?,?,?...?)"
Cmd.CommandType = adCmdText
Set prm = cmd.CreateParameter("Campo1", adVarChar, adParamInput, 20, text1)
Set prm2 = cmd.CreateParameter("Campo2", adVarChar, adParamInput, 20, text2)
Cmd.Parameters.Append prm2
Set prmX = cmd.CreateParameter("CampoX", adVarChar, adParamInput, 20, textX)
Cmd.Parameters.Append prmX
En Access:
qd.SQL = "PARAMETERS Texto STRING,Texto2 STRING,TextoX STRING; INSERT INTO Tabla(CampoTabla1,CampoTabla2,CampoTablaX) VALUES (Texto,Texto2,TextoX)"
qd![Texto] = text1.text
qd![Texto2] = text2.text
qd![TextoX] = textX.text
En SQL Server:
Cmd.CommandText = "INSERT INTO Tabla (campo1,campo2,campo3...campoX) VALUES (?,?,?...?)"
Cmd.CommandType = adCmdText
Set prm = cmd.CreateParameter("Campo1", adVarChar, adParamInput, 20, text1)
Set prm2 = cmd.CreateParameter("Campo2", adVarChar, adParamInput, 20, text2)
Cmd.Parameters.Append prm2
Set prmX = cmd.CreateParameter("CampoX", adVarChar, adParamInput, 20, textX)
Cmd.Parameters.Append prmX
En Access:
qd.SQL = "PARAMETERS Texto STRING,Texto2 STRING,TextoX STRING; INSERT INTO Tabla(CampoTabla1,CampoTabla2,CampoTablaX) VALUES (Texto,Texto2,TextoX)"
qd![Texto] = text1.text
qd![Texto2] = text2.text
qd![TextoX] = textX.text
