border
VB 6
 
 

Retroceder   VB-MUNDO - Visual Basic, y mucho mas > Programacion > Visual Basic 6.00
Olvidó Password? Registrarse!
Registrarse FAQDonate Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack (1) Herramientas
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Antiguo 29-09-2009, 08:38:31
Gran Participación en el Foro
 
Registrado: dic 2008
Posts: 337
Créditos: 8.332
abinfra Aun no valorado
Question Variable de tipo Object o la variable de bloque WITH no está establecida.

Hola a todos.
En el código que a continuación expongo y en la línea “If rsPed.State Then…” de “Form_Unload” tengo el siguiente error:
Error ‘91’ en tiempo de ejecución:
Variable de tipo Object o la variable de bloque WITH no está establecida.

Aclaraciones:
1.- En txtAñoINF_KeyPress y Sub txtNuPeINF que son los primeros TextBox no me da ese error, sin embargo en los siguientes txtAñoSEA y txtNuPeSEA es donde me da este error.

2.- Los TabIndex están ordenados, comenzando txtAñoINF con el “1”. El “0” lo tiene el DataGrid que no está visible.

Código:
Código:
 
Option Explicit
Dim cNumPedINF As String * 7
Dim CError As Integer          'Si vale 0 graba datos, si vale 1 no graba datos
Dim x As Variant
 
Private Sub Form_Load()
   Set rsPed = New ADODB.Recordset
   With rsPed
      'Obliga a cerrar el RecordSet caso de estar abierto, para abrirlo seguidamente sin que de error
      If .State Then .Close
      .Open "SELECT * FROM PedidSEA", g_db, adOpenStatic, adLockOptimistic
         If .RecordCount = 0 Then
            x = MsgBox("Este fichero está todavía vacío.", vbInformation)
            Unload Me
        End If
   End With
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
   'Obliga a cerrar los RecordSet caso de estar abiertos
   If rsPed.State Then rsPed.Close
   'Libera toda la memoria y recursos del sistema asociados a los RecordSet
   Set rsPed = Nothing
End Sub
 
Private Sub Barra_ButtonClick(ByVal Button As MSComctlLib.Button)
   Select Case Button.Index
      Case 1
         Unload Me
   End Select
End Sub
 
Private Sub txtAñoINF_GotFocus()
   On Local Error Resume Next
   txtAñoINF.Text = Mid(Str(Year(Date)), 4, 2)
   Me.txtAñoINF.SelStart = 0
   Me.txtAñoINF.SelLength = Len(Me.txtAñoINF.Text)
End Sub
 
Private Sub txtAñoINF_KeyPress(KeyAscii As Integer)
   'Limitar solo entrada dígitos numéricos
   If KeyAscii = 27 Then
         Unload Me
   ElseIf KeyAscii = 13 Then
      KeyAscii = 0
      SendKeys "{tab}"
   ElseIf KeyAscii <> 8 Then
      If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And KeyAscii <> vbKeySubtract Then
         Beep
         KeyAscii = 0
      End If
   End If
End Sub
 
Private Sub txtNuPeINF_GotFocus()
   On Local Error Resume Next
   Me.txtNuPeINF.SelStart = 0
   Me.txtNuPeINF.SelLength = Len(Me.txtNuPeINF.Text)
End Sub
 
Private Sub txtNuPeINF_KeyPress(KeyAscii As Integer)
   'Limitar solo entrada dígitos numéricos
   If KeyAscii = 27 Then
         Unload Me
   ElseIf KeyAscii = 13 Then
      KeyAscii = 0
      SendKeys "{tab}"
   ElseIf KeyAscii <> 8 Then
      If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And KeyAscii <> vbKeySubtract Then
         Beep
         KeyAscii = 0
      End If
   End If
End Sub
 
Private Sub txtAñoSEA_GotFocus()
   On Local Error Resume Next
   txtAñoSEA.Text = Mid(Str(Year(Date)), 4, 2)
   CError = 0
   If Len(Trim(txtNuPeINF.Text)) <> 4 Then
      MsgBox "Error. Número de pedido incompleto.", vbCritical
   Else
      cNumPedINF = txtAñoINF.Text + txtGuiINF.Text + txtNuPeINF.Text
      'Cogemos los datos de una tabla creando un Recordset
      Set rsPed = New ADODB.Recordset
      strSQL = "SELECT * FROM PedidSEA WHERE Numero = '" & cNumPedINF & "'"
      Set rsPed = g_db.Execute(strSQL)
      'Comprobamos que exista
      If rsPed.EOF Then
         MsgBox "Error. El número de Pedido introducido no existe.", vbInformation
         CError = 1
      End If
      rsPed.Close
      Set rsPed = Nothing
      If CError = 1 Then
         txtNuPeINF.Text = ""
         txtNuPeINF.SetFocus
      End If
   End If
   Me.txtAñoSEA.SelStart = 0
   Me.txtAñoSEA.SelLength = Len(Me.txtAñoSEA.Text)
End Sub
 
Private Sub txtAñoSEA_KeyPress(KeyAscii As Integer)
   'Limitar solo entrada dígitos numéricos
   If KeyAscii = 27 Then
         Unload Me
   ElseIf KeyAscii = 13 Then
      KeyAscii = 0
      SendKeys "{tab}"
   ElseIf KeyAscii <> 8 Then
      If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And KeyAscii <> vbKeySubtract Then
         Beep
         KeyAscii = 0
      End If
   End If
End Sub
 
Private Sub txtNuPeSEA_GotFocus()
   On Local Error Resume Next
   Me.txtNuPeSEA.SelStart = 0
   Me.txtNuPeSEA.SelLength = Len(Me.txtNuPeSEA.Text)
End Sub
 
Private Sub txtNuPeSEA_KeyPress(KeyAscii As Integer)
   'Limitar solo entrada dígitos numéricos
   If KeyAscii = 27 Then
         Unload Me
   ElseIf KeyAscii = 13 Then
      KeyAscii = 0
      SendKeys "{tab}"
   ElseIf KeyAscii <> 8 Then
      If (KeyAscii < vbKey0 Or KeyAscii > vbKey9) And KeyAscii <> vbKeySubtract Then
         Beep
         KeyAscii = 0
      End If
   End If
End Sub
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #2 (permalink)  
Antiguo 29-09-2009, 08:56:43
Gran Participación en el Foro
 
Registrado: dic 2008
Posts: 337
Créditos: 8.332
abinfra Aun no valorado
Thumbs up Re: Variable de tipo Object o la variable de bloque WITH no está establecida.

LLevo desde ayer tarde dando vueltas a este error, y ahora al pegar el código en este post me he dado cuenta donde está el error.

Resulta que creo dos RecordSet con el mimso nombre y precisamente creo y cierro el segundo donde me da el error. Lo he solucionado borrando el segundo RecordSet y usando el RecordSet creado al inicio, utilizo el rsPed.Find ...

Saludos cordiales.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
Respuesta


Herramientas

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado

LinkBacks (?)
LinkBack to this Thread: http://www.foro.vb-mundo.com/f24/variable-de-tipo-object-o-variable-de-bloque-with-no-est%E1-establecida-16397/
Escrito Por For Type Fecha
Visual Basic 6.00 [Archivo] - Pgina 8 - VB-MUNDO - Programacion Visual This thread Refback 25-08-2011 20:13:42


La franja horaria es GMT. Ahora son las 00:11:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios


right
Inactive Reminders By Icora Web Design