Botón para Buscar una Factura

Desde Nicaragua.
Tengo la siguiente situación que no he podido resolver:
En un formulario llamado Factura tengo un campo llamado NumFactura el cual es la llave principal, dicho campo tiene las propiedades siguientes:
NumFactura.enabled=false
NumFactura.locked=true
De esta manera el usuario no podrá utilizar dicho campo para cambiar su valor.
Yo deseo saber como puedo caer por medio de código y por una macro lo siguiente:
Crear un botón de comando que me sirva para buscar una Factura Especifica
Para ver los datos contenidos en ella, es decir que si la Factura es encontrada me aparezca el NumFactura y desactive algunos controles.
Pero al buscar la Factura me aparezca una ventana donde introduzca la Factura a buscar.
1

1 Respuesta

7.450 pts. Tengo diez yy de experiencia programando bases de...
Yo colocaría en el mismo formulario un campo independiente, que lo podemos llamar [texto0], puedes colocarlo en la cabecera del formulario para que no estorbe, este campo te permita colocar la factura que deseas buscar, ¿el asunto es que debes colocar un código en el evento? ¿Después de actualizar? De ese campo, de esta forma:
Private Sub Texto0_AfterUpdate()
On Error GoTo bUSCAR_Err
With CodeContextObject
If IsNull(Forms![facturas]!Texto0) Then
Exit Sub
End If
DoCmd. ¿RunCommand acCmdRemoveFilterSort? Remueve el filtro que pudiera estar aplicado
DoCmd.GoToControl "Factura" ? coloca el cursor en el campo factura
DoCmd. FindRecord Me.Texto0, acEntire, True, , False, , True? Busca el registro según lo ingresado en texto0
DoCmd.GoToControl "texto0" ? regresa el cursor al campo0
If (Me.Texto0 <> Me.Factura) Then ? compara los valores para ver si lo encontró
beep ? si no lo encuentra hace esto
MsgBox "No se encontro Factura ingresada: " & Me.Texto0, vbExclamation, "Búsqueda" ? despliega un aviso informando que no la encontró
DoCmd.GoToControl "TEXTO0" ? va al control texto0
Me.Texto0 = Null ? blanquea el campo
Else
DoCmd.GoToControl "Factura" ? si lo encuentra hace esto otro
DoCmd.RunCommand acCmdFilterBySelection ? realiza un filtro por la selección
DoCmd.GoToControl "TEXTO0" ? le cursor en texto0
Me.Texto0 = Null ? blanquea el texto0
End If
End With
bUSCAR_Exit:
Exit Sub
bUSCAR_Err:
MsgBox Error$
Resume bUSCAR_Exit
End Sub
Te coloque una explicación en las líneas que consideré conveniente, después del tilde (').
Si deseas bloquear algunos campos puedes agregar en la parte del else comandos para bloquear con la instrucción siguiente:
Me.factura.Enabled = False
Me.Dirección.Enabled = False
Me.Teléfono.Enabled = False
Etc...
¿Espero haberte ayudado? Recuerda calificarme.
Ojo, te quiero advertir algo, ten cuidado la página websustituyo unos tildes por símbolos de interrogación, en el texto de mis respuesta no vayas a confundirte.
De todas formas si la quieres ver mejor visita mi página:
http://www.geocities.com/pierregbarre/Consultas.htm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas