Form agregar clientes...

Hola haber si me puedes ayudar. Tengo esta función dentro de un formulario para añadir clientes:
Private Sub nombreApellidos_BeforeUpdate(Cancel As Integer)
If rs.State = adStateOpen Then
rs.Close
End If
dni.Visible = True
cadena = nombreApellidos.Value
st = "SELECT * FROM zarco1 WHERE (nombreApellidos like'%" & cadena & "%')"
rs.Open st, ct, adOpenKeyset, adLockOptimistic, adCmdText
muevedatos
End Sub
que lo que hace esta es que en el campo "nombreApellidos" me liste todos los que ya existen por si pongo un usuario ya escrito ahorrarme rellenar los demas campos pero el problema es que tal y como lo tengo si pongo un usuario que no exista ya en la tabla no me deja agregarlo porque no lo encuentra en la tabla. Sabes que puedo hacer para arreglarlo?
Gracias.

1 Respuesta

Respuesta
1
Lo que pasa es que como tienes el código, no me dice nada, porque hasta ahí estas realizando una consulta de selección y llenando un Recordset, Tocaría mirar que esta haciendo el procedimiento o la función muevedatos, ahí estaría la clave...
No se si has bloqueado controlesa al no encontrarlos... o cual es el problema...
Ahora si los datos se basan en el recordset y no existe datos estas llenando tus datos con un registro "vacio"... DEBES REALIZAR LO SIGUIENTE SI HAY REGISTROS LLENAR LO QUE NECESITAS, PERO SINO QUE NO HAGA NADA... ES DECIR ...
...
st = "SELECT * FROM zarco1 WHERE (nombreApellidos like'%" & cadena & "%')"
rs.Open st, ct, adOpenKeyset, adLockOptimistic, adCmdText
If Rs.recordcount > 0 then
muevedatos
else
'Que debe hacer si no lo encontro
end if
*************************
Att:telemaco
Perdona por no ponerte el meuvedatos no me di cuenta.lo que hace el muevedatos es poner los datos de la persona que ha encontrado en los distintos campos y en el caso de que no lo encuentre, que seria el else, lo que quiero es que me deje meter un nuevo usuario poniendo todos los cuadros en blanco.. pero probare con lo que me has puesto que me parece que me vale con eso así que gracias y dejo la pregunta abierta hasta que hoy a ultima hora puedo probar haber si me funciona y entonces cerrarla. Gracias.
Listo... me avisas..
Att:telemaco
Bueno pues parece que avanzo pero me surge un problema la funciona me ha quedado así:
Private Sub nombreApellidos_BeforeUpdate(Cancel As Integer)
If rs.State = adStateOpen Then
rs.Close
End If
dni.Visible = True
cadena = nombreApellidos.Value
st = "SELECT * FROM zarco1 WHERE (nombreApellidos like'%" & cadena & "%')"
rs.Open st, ct, adOpenKeyset, adLockOptimistic, adCmdText
If rs.RecordCount > 0 Then
muevedatos
Else
nombrenew.Value = nombreApellidos.Value
direccion.SetFocus
nombrenew.Visible = True
nombreApellidos.Visible = False
End If
End Sub
Lo de "nombrenew" es un cuadro de texo para introducir un nombre nuevo ya que en nombreApellidos esta cargada la lista con todos los que tengo. Pues bien me da este error en la linea de setfocus:
"Debe guardar el campo antes de ejecutar la acción IrAcontrol, el método GotoControl o el Método Setfocus."
Sabrías decirme que estoy haciendo mal porque no logro dar con ello y la ayuda mdsn no la tengo instalada porque los CD en otro lao.Gracias de nuevo.
Es que evento beforeupdate ocurre ANTES DE ACTUALIZAR EL DATO O GUARDARLOS... y te intenta decir que abandonas el foco sin haberse guardao... colocalo mejor en el evento Exit (Al saliR)... hazlo y me avisas
Att:telemaco

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas