Access/VB:Duvida

Farmit

Power Member
boas,
tenho um ligeiro problema :
-tenho um formulário no access que tem um botão com nome btn_pesquisar
-O objectivo desse botão é abrir outro formulário que esta na mesma base de dados
-para isso eu usei VB que esta no próprio programa de access


private sub btn_pesquisar_Click()


end sub

O meu problema é este :
Eu quero abrir o formulário com o nome :registo_contactos ao clicar no botão pesquisar(btm_pesquisar)

o único linha de codigo que eu me lembrei foi :

private sub btn_pesquisar_Click()

registo_contacto.show

end sub

mas por vistos não funcionou

alguém pode me ajudar a resolver este problema ?

obrigado .
 
Sim assim ja funciona , mas nao consigo ainda abrir o outro formulario.
Tenho um erro nesta linha de codigo:

Forms!principal.tbx_pesquisar.Text = "*" + Forms!principal.tbx_pesquisar.Text + "*"
A menssagem de erro é a seguinte:
You can't reference a property or method for a control unless the control has the focus.

alguem me pode ajudar a resolver este problema ?
obg
 
Sim assim ja funciona , mas nao consigo ainda abrir o outro formulario.
Tenho um erro nesta linha de codigo:

Forms!principal.tbx_pesquisar.Text = "*" + Forms!principal.tbx_pesquisar.Text + "*"
A menssagem de erro é a seguinte:
You can't reference a property or method for a control unless the control has the focus.

alguem me pode ajudar a resolver este problema ?
obg

Se estás a usar a propriedade Text, terás de 1º fazer o SetFocus a esse campo.

Note To set or return a control's Text property, the control must have the focus, or an error occurs. To move the focus to a control, you can use the SetFocus method or GoToControl action.

While the control has the focus, the Text property contains the text data currently in the control; the Value property contains the last saved data for the control. When you move the focus to another control, the control's data is updated, and the Value property is set to this new value. The Text property setting is then unavailable until the control gets the focus again. If you use the Save Record command on the Records menu to save the data in the control without moving the focus, the Text property and Value property settings will be the same.
in link

Ou então, se fôr esse o caso, podes recorrer à propriedade .Value, sendo que aqui já não é necessário o SetFocus
 
Última edição:
obrigado finalmente resultou, eu optei por fazer o seguinte:
Private Sub btn_pesquisar_Click()

Forms!principal.tbx_pesquisar.SetFocus
Forms!principal.tbx_pesquisar.Text = "*" + Forms!principal.tbx_pesquisar.Text + "*"

DoCmd.OpenForm "resultado_pesquisa"

End Sub

:D
 
Última edição:
Em Access é preferível usar-se o .Value em vez do .Text .

Cuidado nesse código. Sempre que se chama o btn_pesquisar_Click() são adicionados "*" extra.
Se o user carregar 3 vezes, fica "***qualquercoisa***".
O ideal é não alterar-se a textbox, mas sim concatenar os asteriscos no sítio em que o valor da textbox é utilizado.
 
Última edição pelo moderador:
pois fica melhor como tu disseste:

Private Sub btn_pesquisar_Click()

Forms!principal.tbx_pesquisar.SetFocus
Forms!principal.tbx_pesquisar.Text = "*" + Forms!principal.tbx_pesquisar.Text + "*"

If tbx_pesquisar.Text = "**" Then
MsgBox "Insire dados na caixa de texto"
tbx_pesquisar.Text = ""
Else
DoCmd.OpenForm "resultado_pesquisa"
tbx_pesquisar.Text = ""
End If

End Sub




Ja agora qual é a diferença entre o .Value e .Text?
Em que aspectos o .Value é mais preferível usar em vez do .Text?:S
 
Última edição:
Back
Topo