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

Error 3705 Urgente

Estas en el tema de Error 3705 Urgente en el foro de Visual Basic clásico en Foros del Web. hola.... Porfa necesito que me ayuden con el siguiente error: Error 3705 operation is not allowed when the object is open. Porfavor es Urgente el ...
  #1 (permalink)  
Antiguo 12/11/2008, 10:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 131
Antigüedad: 15 años, 5 meses
Puntos: 0
Error 3705 Urgente

hola.... Porfa necesito que me ayuden con el siguiente error:

Error 3705 operation is not allowed when the object is open.

Porfavor es Urgente el que me pueda ayudar se lo agradeceria.
Aqui envio una parte del codigo:

Private Sub Cargar() ' Aqui esta la conexion y el llenado de combox

Dim CantReg As Variant

Connect.Provider = "SQLOLEDB"
Connect.Open "Driver={SQL Server};" & _
"Server=" & macForm.ConnInfo.Server & _
";Uid=" & macForm.ConnInfo.User & _
";Pwd=" & macForm.ConnInfo.pwd & _
";Database=" & macForm.ConnInfo.DB

Set Rsl = New ADODB.Recordset
Set Rs2 = New ADODB.Recordset

Cadena_SQL = "SELECT COUNT(*) as cus_name FROM OECOTIZACION_SQL"
Cadena_SQL_2 = "SELECT * FROM OECOTIZACION_SQL"

Rsl.Open Cadena_SQL, Connect, adOpenDynamic, adLockPessimistic
Rs2.Open Cadena_SQL_2, Connect, adOpenDynamic, adLockPessimistic

CantReg = Rsl.Fields("cus_name")

Rs2.MoveFirst

For i = 0 To CantReg - 1
Combo_Cliente.AddItem Rs2.Fields("cus_name")
Rs2.MoveNext

Next i

End Sub

y este es el que me adiciona:


Private Sub Cmd_Aceptar_Click()

'Fra_Funciones.Visible = True
'Fra_Adicionar.Visible = False

Rs2.AddNew
Rs2.Fields("cot_date") = Text_Fecha.Text
Rs2.Fields("cot_number") = Text_Id.Text
Rs2.Fields("cus_name") = Combo_Cliente.Text
Rs2.Fields("item_no") = Text_Producto.Text
Rs2.Fields("search_desc") = Text_Product.Text
Rs2.Fields("Especific_prod") = Text_Especific.Text
Rs2.Fields("item_desc_2") = Text_Presentacion.Text
Rs2.Fields("qty_prod") = Text_Cantidad.Text
Rs2.Fields("prc_or_disc_1") = Text_Precio.Text
Rs2.Fields("end_prc") = Text_Validez.Text
Rs2.Fields("pay_term") = Combo_terminos.Text
Rs2.Fields("addr_1") = Text_Direccion.Text
Rs2.Fields("lead_time") = Text_Reque.Text
Rs2.Fields("cot_sales") = Combo_Vendedor.Text
Rs2.Fields("cot_Observ") = Text_Observ.Text

Cargar

End Sub
  #2 (permalink)  
Antiguo 12/11/2008, 11:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Error 3705 Urgente

debes colocar lo siguiente:


Cadena_SQL = "SELECT COUNT(*) as cus_name FROM OECOTIZACION_SQL"
Cadena_SQL_2 = "SELECT * FROM OECOTIZACION_SQL"


If RS1.State = adStateOpen Then
RS1.Close
End If

If RS2.State = adStateOpen Then
RS2.Close
End If


Espero te sirva

Rsl.Open Cadena_SQL, Connect, adOpenDynamic, adLockPessimistic
Rs2.Open Cadena_SQL_2, Connect, adOpenDynamic, adLockPessimistic
  #3 (permalink)  
Antiguo 12/11/2008, 12:33
 
Fecha de Ingreso: noviembre-2008
Mensajes: 131
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

Hola Alexis lo voy a intentar y ya te cuento.

Gracias por tu interes

Pero tengo una duda adiciono lo que me escribiste o lo reemplazo por esto:

Rsl.Open Cadena_SQL, Connect, adOpenDynamic, adLockPessimistic
Rs2.Open Cadena_SQL_2, Connect, adOpenDynamic, adLockPessimistic

Gracias por tu interes.
  #4 (permalink)  
Antiguo 12/11/2008, 12:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

Cita:
Iniciado por natalyro Ver Mensaje
Hola Alexis lo voy a intentar y ya te cuento.

Gracias por tu interes

Pero tengo una duda adiciono lo que me escribiste o lo reemplazo por esto:

Rsl.Open Cadena_SQL, Connect, adOpenDynamic, adLockPessimistic
Rs2.Open Cadena_SQL_2, Connect, adOpenDynamic, adLockPessimistic

Gracias por tu interes.

El codigo if debes agregarlo antes de las sentencias :

Rsl.Open Cadena_SQL, Connect, adOpenDynamic, adLockPessimistic
Rs2.Open Cadena_SQL_2, Connect, adOpenDynamic, adLockPessimistic

porque el error 3705 se produce cuando una conexion ya se a vinculado a un recordset ( en este caso rs1 y rs2 ) por eso antes debes comprobar que se encuentren cerrardas caso contrario cerrarlas.

suerte y avisame.
  #5 (permalink)  
Antiguo 12/11/2008, 13:23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 131
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

Hola Alexis


ya esta solucionado era una bobada, yo llamaba la funcion cargar que es la que tiene mi conexion en el adicionar, entonces claro por eso se estaba abriendo 2 veces.

Gracias por tu ayuda.

Me puedes ayudar?
Pero ahora para elconsultar me sale el sgte error:

object doesn´t support named arguments

mira mi codigo:
obviamente tiene la misma funcion de cargar.
Private Sub Cmd_Aceptar1_Click() ' este es el de consultar


Cadena_SQL = "Select * from OECOTIZACION_SQL"
StrSql = ""

If Text_Fecha.Text <> "" Then
StrSql = StrSql + "cot_date=" & Text_Fecha.Text + " and "
End If

If Text_Id.Text <> "" Then
StrSql = StrSql + "cot_number=" & Text_Id.Text + " and "
End If

If Combo_Cliente.Text <> "" Then
StrSql = StrSql + "cus_name=" & Combo_Cliente.Text
End If

If Text_Producto.Text <> "" Then
StrSql = StrSql + "item_no=" & Text_Producto.Text
End If

If Text_Product.Text <> "" Then
StrSql = StrSql + "search_desc=" & Text_Product.Text
End If

If Text_Especific.Text <> "" Then
StrSql = StrSql + "Especific_prod=" & Text_Especif.Text
End If

If Text_Presentacion.Text <> "" Then
StrSql = StrSql + "item_desc_2=" & Cmd_present.Text
End If

If Text_Cantidad.Text <> "" Then
StrSql = StrSql + "qty_prod=" & Text_Presentacion.Text
End If

If Text_Precio.Text <> "" Then
StrSql = StrSql + "prc_or_disc_1=" & Text_Precio.Text
End If

If Text_Validez.Text <> "" Then
StrSql = StrSql + "end_prc=" & Text_Validez.Text
End If

If Combo_terminos.Text <> "" Then
StrSql = StrSql + "pay_term=" & Combo_terminos.Text
End If

If Text_Direccion.Text <> "" Then
StrSql = StrSql + "addr_1=" & Text_Direccion.Text
End If

If Text_Reque.Text <> "" Then
StrSql = StrSql + "lead_time=" & Text_Reque.Text
End If

If Combo_Vendedor.Text <> "" Then
StrSql = StrSql + "cot_sales=" & Combo_Vendedor.Text
End If

If Text_Observ.Text <> "" Then
StrSql = StrSql + "cot_Observ=" & Text_Observ.Text
End If

If StrSql <> "" Then
Cadena_SQL = Cadena_SQL + " where " + StrSql

cadena = Cadena_SQL
desde = Len(cadena)
hasta = (desde - 5)
Cadena_SQL = Mid(cadena, 1, hasta)

End If

Connect.RecordSource = Cadena_SQL
'Rs2.Refresh
Fra_Funciones.Visible = True
Fra_Consultar.Visible = False
End Sub
  #6 (permalink)  
Antiguo 12/11/2008, 13:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

me podrias enviar el mesaje de error
  #7 (permalink)  
Antiguo 12/11/2008, 14:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 131
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

si claro es este: object doesn´t support named arguments

Connect.RecordSource = Cadena_SQL ' AQUI ME PROEDUCE EL ERROR.
  #8 (permalink)  
Antiguo 12/11/2008, 15:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

A simple vista faltaria colocar lo siguiente :

If text_fecha.Text <> "" Then
StrSql = StrSql + "cot_date= ' " & text_fecha + " ' and "
End If

esto deberia ser tomado como valor por eso va entre '. deberas colocarlo en todos los codigos.

de todas formas yo seguire revisando, pero probalo y me contas.
  #9 (permalink)  
Antiguo 12/11/2008, 15:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

Cita:
Iniciado por AlexisLAG Ver Mensaje
A simple vista faltaria colocar lo siguiente :

If text_fecha.Text <> "" Then
StrSql = StrSql + "cot_date= ' " & text_fecha + " ' and "
End If

esto deberia ser tomado como valor por eso va entre '. deberas colocarlo en todos los codigos.

de todas formas yo seguire revisando, pero probalo y me contas.

Otro error es que le faltan operadores en algunos if debes colocar and o or, y por mi parte deberias cambiar lo siguiente :

If text_fecha <> "" Then

StrSql = StrSql + " and "
StrSql = StrSql + "cot_date= ' " & text_fecha & " ' "
End If

esto seria para que al final no estes eliminado los ultimos 5 lugares.
  #10 (permalink)  
Antiguo 13/11/2008, 08:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 131
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error 3705 Urgente

Alexis lo de colocarle ' no me funciono

me saca error en la misma parte.

Gracias
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 23:20.