Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con UPDATE en VB para access

Estas en el tema de Ayuda con UPDATE en VB para access en el foro de Visual Basic clásico en Foros del Web. Hola, soy nuevo en este foro, me llamo Sergio, y hace poco empece a trabajar con Bases de Datos, aqui en la empresa utilizamos access ...
  #1 (permalink)  
Antiguo 10/06/2008, 10:23
 
Fecha de Ingreso: junio-2008
Mensajes: 11
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con UPDATE en VB para access

Hola, soy nuevo en este foro, me llamo Sergio, y hace poco empece a trabajar con Bases de Datos, aqui en la empresa utilizamos access y programamos los formularios con Visual Basic. Os cuento mi problema:
Estoy creando una Base de Datos nueva, va a ser bastante extensa, el caso es que necesito actualizar datos de una tabla cuando se inserta un registro en un subformulario, pero me da un error que dice "La operacion no esta permitida si el objeto esta abierto"
Mi codigo lo tengo asi:
Private Sub Form_AfterInsert()
On Error GoTo PETA
Id_Cli = Me.Id_Cliente
Id_Camp = Me.Id_Campaña
Dim connstr As String
Dim con As New ADODB.Connection
Set con = New ADODB.Connection
con.Mode = adModeReadWrite
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=2008-06-05-BDD-Televenta.mdb;Persist Security Info=False"
con.Open (connstr)

Dim rs As New ADODB.Recordset
con = CurrentProject.Connection
con.Open

connstr = "UPDATE T_Cliente_X_Campaña SET T_Cliente_X_Campaña.Nº_Llamadas = T_Cliente_X_Campaña.Nº_Llamadas + 1"
connstr = connstr & " WHERE (((T_Cliente_X_Campaña.Id_Campaña)=" & Id_Camp & ") AND ((T_Cliente_X_Campaña.Id_Cliente)=" & Id_Cli & "))"
connstr = sql
rs.Open connstr, con, adOpenDynamic, adLockOptimistic

rs.Close
con.Close
Set rs = Nothing
Set con = Nothing

Exit_PETA_Click:
Exit Sub

PETA:
MsgBox Err.Description
Resume Exit_PETA_Click
End Sub


Todo esto esta en un subformulario y lo he puesto en el procedimiento de evento After insert
Si alguien puede ayudarme a hacerlo bien, o decirme donde estoy fallando lo agradeceria.
Un saludo y enorabuena a todos por este foro.
  #2 (permalink)  
Antiguo 11/06/2008, 12:33
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Ayuda con UPDATE en VB para access

creo que tu Error se genera Aqui

Código:
con.Open (connstr) 'Aqui Abre la conexxion
con.Open 'esta ya no es necesaria
espero te sirva... de lo contratio deverias poner asi

Código:
con.Open (connstr) 'Aqui Abre la conexxion
if con.state = 1 then con.close 'Cierras para posteriormente abrir asi
con.Open
Espero no haberte confundido
  #3 (permalink)  
Antiguo 12/06/2008, 02:16
 
Fecha de Ingreso: junio-2008
Mensajes: 11
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con UPDATE en VB para access

Hola, gracias por tu ayuda, el caso es que me sigue dando un error me dice:
"La operacion no esta permitida si el objeto esta abierto"
No se si es por algo de la conexion, o por el recordset, estoy haciendo pruebas...
  #4 (permalink)  
Antiguo 12/06/2008, 07:54
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Ayuda con UPDATE en VB para access

Posicionate en la fila donde inicia tu procedimiento oprime F9 y despues F5 y con F8 te va rrecorriendo hasta donde te produce el Error y te daras cuenta donde esta es lo que llamamos un DEBUG,

espero te Sirva.
  #5 (permalink)  
Antiguo 12/06/2008, 08:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda con UPDATE en VB para access

Cita:
Iniciado por SalomonSab Ver Mensaje
Posicionate en la fila donde inicia tu procedimiento oprime F9 y despues F5 y con F8 te va rrecorriendo hasta donde te produce el Error y te daras cuenta donde esta es lo que llamamos un DEBUG,

espero te Sirva.
Solo a modo de sugerencia, no necesitas poner un punto de interrupción en la pimera línea del programa. Simplemente oprime F8 y ya comenzará la depuración desde la primera línea.

Saludos, estimado SalomonSab.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:24.