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
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


0