No access tem uma opção FONTE DE CONTROLE de onde sao buscadas as informações e onde sao inseridas as mesmas, o que preciso é alterar esta fonte devido a uma condição..
Private Sub Form_Current() If Me!Campo.Value = 1 Then CaixaTexto.ControlSource = "=Nz(DSum('[Nome]', 'Tabela', '[ID]= Forms!formulario!ID'), 0)" ElseIf Me!Campo.Value = 2 Then CaixaTexto.ControlSource = "=Nz(DSum('[Quantidade]', 'Tabela', '[ID]= Forms!formulario!ID'), 0)" End If End Sub
ainda nao pude testar a sua formula, pois preciso fazer mais uma etapa.
Estou com uma nova duvida que é a seguinte..
eu inseri os criterios que preciso em uma tabela para realizar a consulta. está da seguinte maneira: 1;2;4;5;7;8;9 (eu preciso pesquisar estes valores em uma outra tabela)
porem eu nao sei como colocar o valor digitado acima, como criterio de consulta para a outra... para enfim alterar a fonta de controle...
................................................................................. Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
No caso eu preciso que ele procure por todos os valores que estao na tabela...
e nao tem como eu colocar no criterio digitando..pois os valores irão alterar sempre..por este motivo estou colocando na tabela...esta tabela esta recebendo justamente esta solicitação do que sera exibido...
preciso que seja consultado utilizando o criterio, porem via código....
Pelo que expôs, parece que quer filtrar os dados duma tabela caso os valores dum campo existam noutro campo doutra tabela. Será mesmo assim?
Se for, o melhor é colocar a origem através de instrução SQL (muitos têm medo do SQL mas o SQL é mais fácil e mais 'à medida' do que se pretende) Utilize uma instrução do género: SELECT * FROM Tabela1 WHERE CampoX IN (SELECT CampoY FROM Tabela2); 'selecciona todos os campos da tabela Tabela1 com a condição dos valores do campo CampoX existirem no campo CampoY da Tabela2
O meu problema é o seguinte. Tenho uma tabela com algumas colunas. O valor que preciso esta na ultima coluna chamada (modelos)
atualmente quando o cliente abre o formulário ele pega todos os modelos, porem o meu chefe solicitou que seja apresentado apenas de acordo com os modelos que o cliente selecionar em um formulário inicial.
Então o que eu preciso é que apos o usuario selecionar o(s) modelo(s) desejado(s), o sistema crie uma nova tabela auxiliar apenas com os modelos escolhidos para entao mudar a fonte de controle para esta nova tabela.
nao sei se cosnegui expressar bem...de qualquer forma estou aqui para mais esclarecimentos.
numa consulta nova, aberta em modo SQL, cole e altere para os nomes corretos SELECT * INTO temp FROM SuaTabela WHERE (((SuaTabela.SeuCampoSimNao)=-1));
Como posso fazer para receber o valor do critério de uma consulta, apartir do valor de uma variável no codigo?
por exemplo...utilizando o exemplo enviado pelo ricardo, ao inves de passar o critério: (((SuaTabela.SeuCampoSimNao)=-1)); ele pegar o valor de uma variavel no codigo...
Se você fizer a consulta de injetar dados numa tabela como o Ricardo lhe passou e no critério você direcionar para um campo no formulário, pode fazer a consulta correr por VBA com CurrentDb.Execute SuaConsulta
No critério do campo Sim/Não da sua consulta você coloca: Formulários.SeuFormulário.SeuCampoAfiltrar
................................................................................. Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
A duvida não era como você jogar os dados noutra tabela, onde a variável fosse = -1 ou seja a caixa de verificação com o visto ?
Pelo que me apercebi na ajuda do Ricardo foi essa, e essa variável é facil de jogar no critério, já vários nomes não é tão fácil assim.
................................................................................. Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
O problema eh que a minha tabela ja tem mais de 150 colunas...ai eu queria encontrar outro meio de fazer o que ele disse, porem utilizando variaveis...
A instrução passada é a mais simples que vi até hoje.
1º Faça uma cópia da sua tabela original e dê-lhe o nome de temp
2º Abra uma consulta vazia em modo SQL, cole esta instrução e mude para os nome corretos.
SELECT * INTO temp FROM SuaTabela WHERE (((SuaTabela.SeuCampoSimNao) Like [Forms]![SeuFormulario]![Tipo]=-1));
................................................................................. Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.
................................................................................. Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.