Access - Posicionar el cursor en un textbox

 
Vista:

Posicionar el cursor en un textbox

Publicado por Pedro (20 intervenciones) el 08/06/2011 17:53:18
Hola a todos;

Estoy haciendo un pequeño programa en ACCESS 2007, el problema que tengo es que cuando pongo el codigo del cliente, quiero que este lo busque en la base de datos y vea si esta o no, si no esta que siga hacia adelante, pero si está que avise con un mensaje y borre el contenido del textbox donde esté. El código que tengo puesto es el siguiente:

Private Sub ID_CLIENTE_LostFocus()

Dim db As Database, r As Recordset
Set db = CurrentDb
Set r = db.OpenRecordset("CLIENTES", dbOpenDynaset)
r.MoveFirst
While r.EOF = False
If r.Fields!ID_CLIENTE = Me.ID_CLIENTE.Text Then
MsgBox "ESTE CLIENTE EXISTE"
Me.ID_CLIENTE = "" (Hasta aquí todo bien)
Me.ID_CLIENTE.SetFocus (cuando llega aqui, se va al otro textbox
r.MoveLast
Else
r.MoveNext
End If
Wend
r.Close
End Sub

Un saludo,
Pedro
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

Posicionar el cursor en un textbox

Publicado por jose (830 intervenciones) el 08/06/2011 18:37:38
Esta técnica de recorrer todo el fichero para buscar uno coincidente es lenta y segun para que cosas no es apropiada

yo crearía un cuadro combinado con id cliente y nombre cliente
en las propiedades- eventos- despues de actualizar (after update) le diria que me busque el clietne que haya seleccionado
de esa forma busca directamente y no hay que teclear nada
suponiendo que :
el cuadro combinado se llame : CC1
que el primer campo sea id_personal
que el ssegundo campo sea : NOMBRE
QUE LA TABLA SE LLAME PERSONAL1
SI QUEREMOS BUSCAR POR EL NUMERO
Me.RecordSource = "SELECT * FROM [PERSONAL1] WHERE [id-personal]= " & str$(CC1.colum(0) )
si queremos buscarlo por el nombre
Me.RecordSource = "SELECT * FROM [PERSONAL1] WHERE [NOMBRE] LIKE '*" & CC1.colum(1) & "*';"
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

Posicionar el cursor en un textbox

Publicado por jose (830 intervenciones) el 08/06/2011 18:49:52
otra foma pero con el mismo criterio
rem actualiza el cuadro combinado
DoCmd.Requery "CC18"



Set rs = CreateObject("ADODB.RecordSet")
Set CON7 = Application.CurrentProject.Connection
CONSULTA = "SELECT * from [TCP-PERSONAS] WHERE ( [ID-T010] =" & CC18.Column(1)

rs.Open CONSULTA, CON7, adOpenDynamic, adLockOptimistic
rs.MoveLast
rs.MoveFirst
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

Posicionar el cursor en un textbox

Publicado por Pedro (20 intervenciones) el 12/06/2011 13:07:54
Gracias jose por tu respuesta, y mejorar un poco mi programación. También me gustaría saber como se posiciona el cursor en el textbox que queremos cuando ya hemos pedirdo el la posición, por ejemplo, cuando hemos introducido un número de cliente nuevo, y queremos saber si existe o no, una vez introducido el codigo del nuevo cliente al darle a la tecla tab para pasar al siguiente textbox, tiene que buscar si existe o no, si existe que siga y si no que se vuelva a quedar en el textbox para volver introducir de nuevo otro codigo que no exista.
Espero haberme explicado lo mejor posible.

Un saludo,

Pedro
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

Posicionar el cursor en un textbox

Publicado por Jose M (1 intervención) el 17/07/2021 21:56:05
Formulario de clientes
En el campo cliente genera evento Antes de Actualizar
y Buscas en el campo Cliente de la Tabla Clientes, El criterio que debe Cumplir es la búsqueda Cliente que escribes en el Capo cliente

si el cliente se encuentra lo asigna a la X
y mediante el IF checamos si X es nulo su valor nos dejara continuar

si tiene valor nos da como resultado que no es nulo (False) despliega el mensaje , deshace el cambio y el cursor se queda en el campo para que se escriba nuevamente

Ejemplo:
1
2
3
4
5
6
7
Private Sub Cliente_BeforeUpdate(Cancel As Integer)
    x = DLookup("Cliente", "Clientes", "Cliente = " & Cliente & "")
    If IsNull(x) = False Then
        MsgBox (" ya exisite")
        Me.Undo
    End If
End Sub
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

Posicionar el cursor en un textbox

Publicado por Anonimo (3316 intervenciones) el 17/07/2021 22:44:09
Una década y un mes mas tarde,

Se puede mejorar esa rutina simplemente utilizando los recursos que hay a disposición en la subfunción: el parámetro 'Cancel'.
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