Visual Basic - ayuda

Life is soft - evento anual de software empresarial
   
Vista:

ayuda

Publicado por angie (16 intervenciones) el 23/06/2009 17:54:11
hola necesito una ayuda estoy comenzando a ver esta asignatura y estoy haciendo un programa que nos mandaron en la escuela pero me arroja el siguiente error: la operación no esta permita si el objeto esta cerrado.

el error me lo muestra aqui

rs.AddNew '<----- Aquí me aparece el error

rs.Fields("idempleado") = Text1.Text
rs.Fields("fotoempleado") = mystream.Read
rs.Update

por lo que he leido intenté solucionarlo colocandole rs.open pero me dice que no se puede utilizar la conexión para realizar esta operación. Está cerrada o no es válida en este contexto.

Se que tengo que abrir rs, pero no se como hacerlo! , o tal vez puede ser otro error.
Espero me puedan ayudar!
Gracias de Antemano.
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

RE:ayuda

Publicado por Jaime Guerrero (361 intervenciones) el 23/06/2009 19:17:27
asumiendo que tu variable conexion es es cn pon lo siguiente

if cn.state=0 then cn.open

luego has

if rs.state=0 then rs.open sql, cn

ese mensaje de error te indica que tu conexion está cerrada. Es decir, por algun lado de tu codigo haces cn.close o rs.close. Cada vez que al final de tu codigo cierras un objeto debes abrirlo al inicio.
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

RE:ayuda

Publicado por angie (16 intervenciones) el 23/06/2009 20:26:53
ok, hice lo que planteaste, pero ahora me arroja el error: no se establecio ningun texto de comando para el objeto de comando.

rs.Open sql, conex '<------ Aquí me arroja el error.

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

RE:ayuda

Publicado por Jaime Guerrero (361 intervenciones) el 23/06/2009 21:16:39
pon el codigo que usas.
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

RE:ayuda

Publicado por el guapo (2 intervenciones) el 23/06/2009 22:09:21
otra ves?

ya puso el codigo aca:

rs.Open sql, conex '<------ Aquí me arroja el error.
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

RE:ayuda

Publicado por Jaime Guerrero (361 intervenciones) el 23/06/2009 22:36:31
Me refiero a todo el código del metodo donde le sale el error. ya que la línea que pone es parte de su código.
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

RE:ayuda

Publicado por Angie (16 intervenciones) el 25/06/2009 15:53:28
Private Sub Command2_Click()
Set conn = New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim mystream As ADODB.Stream
Dim sql As String
Set mystream = New ADODB.Stream
rs.CursorType = adOpenDynamic 'Tipo de cursor: Dinámico
rs.CursorLocation = adUseClient 'Ubicación del cursor: Del lado del cliente
rs.LockType = adLockOptimistic 'Tipo de bloqueo: Optimista

mystream.Type = adTypeBinary

mystream.Open
CommonDialog1.ShowOpen
mystream.LoadFromFile CommonDialog1.FileName

If conn.State = 0 Then
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=prueba; UID=root; PWD=1234; OPTION= & 1 + 2 + 8 + 32 + 2048 + 16384"
conn.Open

If rs.State = 0 Then rs.Open sql, conn

rs.AddNew

rs.Fields("idempleado") = Text1.Text
rs.Fields("fotoempleado") = mystream.Read
rs.Update

MsgBox "Los Datos han sido cambiados exitosamente.", vbOKOnly + vbInformation, "Información..."
End If
End Sub
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

RE:ayuda

Publicado por jaime guerrero (361 intervenciones) el 25/06/2009 17:58:27
para iniciar

If conn.State = 0 Then
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=prueba; UID=root; PWD=1234; OPTION= & 1 + 2 + 8 + 32 + 2048 + 16384"
conn.Open
end if ' --> falta esto

lo otro

no le asignas ningun valor a la variable sql. debes ponerle lo siguiente

sql="select * from tabla" '-->reemplaza tabla por la tabla que usas

If rs.State = 0 Then rs.Open sql, conn

rs.AddNew

rs.Fields("idempleado") = Text1.Text
rs.Fields("fotoempleado") = mystream.Read
rs.Update

MsgBox "Los Datos han sido cambiados exitosamente.", vbOKOnly + vbInformation, "Información..."
End If
End Sub
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