Visual Basic - PEPON E IÑAKI(KEYASCII)

Life is soft - evento anual de software empresarial
 
Vista:

PEPON E IÑAKI(KEYASCII)

Publicado por CATITA ZARATE (1 intervención) el 25/02/2006 20:56:37
Hola PEPON me dijiste que habia que poner la siguiente instrucción antes del rstabla.open :
If rstabla.State = 1 Then rstlabla.Close
me quieres decir que cuando se trabaja con keyascii se aplica esa instrucción. me puedes decir porque
Y como me explicas esa instrucción
Hola IÑAKI tu me dices que deberia cerrar siempre al final los recordset que utilizo.y eso es lo que stoy haciendo en el programa planteado abajo, pero me marca error . otra cosa que tu dices es que esta bien lo de PEPON explicate mejor , porque luego me dices otra cosa.
Espero su atención hasta pronto
Chaoooo….
CATITA
Estoy ingresando un codigo en una caja de texto(txt_cod) y al hacer enter deberia buscar el codigo en la TABLA(ACCESS) : CLIENTE_RECEPTOR y si lo encuentra lo desplegara en las cajas de texto txt_razon y txt_rut y el focus se ubicara en txt_pag

De lo contrario activara otro formulario donde se ingresara los datos del cliente, pero esto no sucede y me manda un mensaje de error:

“Error ‘3705’ en tiempo de ejecución:” la operación no esta permitida si el objeto esta abierto.

La sombra amarilla me indica que el error podria estar ubicado entre rstabla.open y adCmdText

LA TABLA DE LA BASE DE DATO:

*CLIENTE_RECEPTOR:

_codigo(key)
_rut
_descripcion
_codigo_comu
_telefono
_direccion

REFERENCIAS:
Microsoft ActiveX Data Objects 2.5 Library

NOTA: este proggrama me funciona bien en DAO

Private Sub txt_cod_keypress(keyascii As Integer)
C$ = Chr(keyascii)
If (C$ < "0" Or C$ > "9") And (keyascii <> 8) _
And (keyascii <> 13) Then

MsgBox "INGRESE NUMEROS "
keyascii = 0

Else

If keyascii = 13 And Trim(txt_cod) <> "" Then

rstabla.Open " select codigo, descripcion, rut " _
& " from cliente_receptor where codigo = " & txt_cod & " " _
, cnn, adOpenKeyset, adLockOptimistic, adCmdText

If Not (rstabla.BOF Or rstabla.EOF) Then
rstabla.MoveFirst

Do While Not rstabla.EOF
txt_razon = rstabla!descripcion
txt_rut = rstabla!rut
txt_pag.SetFocus
rstabla.MoveNext
Loop

Else

MsgBox "INGRESE CLIENTE NUEVO"
txt_rut.SetFocus
Form2.Show
End If
rstabla.Close
End If
End If
End Sub

GENERAL DECLARACIONES
Public cnn As Connection
Public rstabla As Recordset

Private Sub Form_Load()
Set cnn = New Connection
Set rstabla = New Recordset
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.ConnectionString = "c:\lacteos.mdb"
.Open
End WITH
End Sub
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
sin imagen de perfil

RE:PEPON E IÑAKI(KEYASCII)

Publicado por Iñaki (502 intervenciones) el 27/02/2006 13:56:14
Hola, lo que traté de decirte es que siempre de abrir un recordset y hacer una operacion hay que cerrar.
A veces ocurre que se sale de un procedimiento sin haberlo cerrado, y cuando se trata de abrirlo marca el error, ese error efectivamente como decia Pepon se puede corregir con la instruccion ( if state ....).
De todas formas te podré ayudar mejor si me envias el programa entero , o al menos los Formularios con los que tengas problemas.

Saludos
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