• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Filipaantunes

ACESS e o VB

15 mensagens neste tópico

Boas,

Alguém me consegue dizer se é possível fazer o seguinte...

Em acess - Na inserção de dados que sejam exactamente iguais (maiúsculas = maiúsculas) às definidas na tabela de origem?

exemplo: Operador e não operador

Quando carrego no formulario no botão de novo registo que o cursor esteja no primeiro campo, logo. em vez de ficar em branco e eu é que escolho o botão que quero inserir.

Quando carrego no novo registo, se carregar em esc ele assuma o registo anterior, em vez de inserir mais um campo para cancelar.

Por ultimo  :-[ se consigo inserir em cada folha do report os dados que estão no Report Header´... como se fosse o cabeçalho...

estou a desesperar porque tenho que entregar a BD mas não sei como fazer estas alterações...  :fartnew2:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Peço desculpa mas terás de refazer o texto de forma mais clara.

Se reparares a frase, "Em acess - Na inserção de dados que sejam exactamente iguais (maiúsculas = maiúsculas) às definidas na tabela de origem?", apesar de ter um ponto de interrogação não é uma pergunta. :P

Quanto às outras nem sei o que dizer, não lhes consigo dar sentido...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a falar em trabalhar em VBA, certo?

E faz o que o Knitter disse, explica mais um bocado o que queres, e de maneira mais perceptível.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:-[

Infelizmente escrevo rapido demais quando estou acelerada, é como falo :) e ainda é pior quando estou a trabalhar  :bored:

Okapa vou refazer o texto.

Criei uma BD em acess e preciso de umas luzes de VB.

"

Boas,

Alguém me consegue dizer se é possível fazer o seguinte...

1ª Questão_ Criei uma tabela com o nome " Categorias" que indica à tabela principal "colaboradores" as possíveis categorias e só aquelas para inserção, isto é quando o utilizador inserir no formulario a categoria, só deixa que seja uma daquelas que estão na tabela "categoria".

Exemplo:

Operador só pode inserir Op; Supervisor só pode inserir Sup; etc... O que pretendo é que o Op e o Sup sejam com a primeira letra em maiúsculas. Não op mas OP.

(Em acess - Na inserção de dados que sejam exactamente iguais (maiúsculas = maiúsculas) às definidas na tabela de origem_exemplo: Operador e não operador)

2ª Questão_Quando abro o formulário definido para inserção de colaboradores e carrego no botão para criar um novo registo, o cursor não aparece no primeiro campo do formulario.

Preciso de saber como definir que ele apareça logo no primeiro campo ou outro que seja mas que apareça.  Quando entramos numa célula de excel fica o cursor a piscar para inserirmos os dados é isso que pretendo.

(Quando carrego no formulario no botão de novo registo que o cursor esteja no primeiro campo, logo. em vez de ficar em branco e eu é que escolho o botão que quero inserir.)

3ª Questão_Quando acedo ao formulario, escolho o botão que me cria o novo registo e arrependo-me se carregar em ESC não faz qualquer efeito, eu preciso que ele assuma o pedido (Clicar no ESC)como cancelado.

Exemplo: entras em uma célula de excel e arrependeste, carregas em esc e o excel simplesmente ignora o que fizeste e sai da célula.

(Quando carrego no novo registo, se carregar em esc ele assuma o registo anterior, em vez de inserir mais um campo para cancelar.)

4ª Questão_ Ao criar os reports defino o título do report e o campo que quero mais saliente.

Resultado final: Aparece o titulo na parte do report com o nome "Report Header" mas só aparece na primeira pagina imprimida, como posso fazer para aparecer em todas as paginas imprimidas?

Espero ter sido mais explicita :O

estou a desesperar porque tenho que entregar a BD mas não sei como fazer estas alterações...  "

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, posso tentar ajudar nas duas primeiras questões, dado que Access é algo que já lá vai :)

1) Ainda não percebi bem. Vamos ver se consigo entender: tens uma tabela 'Categorias' e uma 'Colaboradores', assumo que exista uma relação 1-N, com participação obrigatória do lado N. Agora, não percebi é em que formulário, ou em que ponto da criação de novos registos queres os dados capitalizados, se for na introdução de novas categorias, isso eventualmente pode ser feito com VBA, não sei se pode, se for noutro formulário, então não precisas mais que limitar aos valores que provêm da tabela categorias.

2) Os campos dos formulários possuem uma propriedade que permite definir a ordem do focus, o primeiro componente a receber focus, isto é, a ficar seleccionado, quando o formulário abre é o que possuir o nível 0. Essa propriedade também controla para que campo o cursor passa quando carregamos no tab.

3) Também não percebi esta parte, se carregas no 'esc' o formulário é fechado, ou estou a ver mal a situação? Novamente, se for possível controlar isto com VBA, não é a minha área :P

4) Nunca fiz o que pretendes, a repetição de cabeçalhos, se existir tal opção, nunca foi algo com que tenha trabalhado, mas procura nas propriedades do report que estás a fazer, e dos campos, que é possível que exista.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tentando dar mais uma ajuda, e reforçando o que o Knitter já disse:

1) Muito confuso … dá exemplos;

2) Por defeito o campo que tem o 0 recebe o focus. Coloca o “Tab Index” a zero. Se não der podes fazer por código:

Me.Text1.SetFocus

3) O que me parece é que queres cancelar a inserção de um novo registo. Para isso verificas qual a tecla carregada e verificas se os campos não estão preenchidos e voltas para o registo anterior. Neste pequeno exemplo utilizo o ID que é auto incrementado (chave primária) e se começares a preencher qualquer campo ele deixa de ser Null. Se for Null é porque nada está preenchido.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyEscape Then
        If IsNull(Me.ID) Then
            DoCmd.GoToRecord acActiveDataObject, , acPrevious
        End If
    End If
End Sub

Private Sub Form_Load()
    Me.KeyPreview = True
End Sub

4) Colocas o titulo no “Page Header” e não no “Report Header”

Se não for bem isto explica melhor, dá mais exemplos concretos, etc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao comentário do acess é uma realidade... mas como estou a começar e sozinha achei melhor começar por algo mais fácil e depois me lançar... Penso ser o mais correcto   :confused:

Como tenho alguma dificuldade em explicar, se estas ideias não resultarem coloco uns prints, que torna-se mais fácil.

Acham que deveria iniciar por algo mais actual? Reparem eu não percebo nada disto... ou melhor não percebia nada agora já percebo alguma coisinha :biggrin: tudo o que aprendi foi através de manuais ...

Obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto ao comentário do acess é uma realidade... mas como estou a começar e sozinha achei melhor começar por algo mais fácil e depois me lançar... Penso ser o mais correcto   :confused:

Como tenho alguma dificuldade em explicar, se estas ideias não resultarem coloco uns prints, que torna-se mais fácil.

Acham que deveria iniciar por algo mais actual? Reparem eu não percebo nada disto... ou melhor não percebia nada agora já percebo alguma coisinha :biggrin: tudo o que aprendi foi através de manuais ...

Obrigada

Não queiras fazer tudo num dia, estas coisas levam o seu tempo e o processo de aprendizagem às vezes é um pouco demora (pelo menos de inicio).

Acho que se puderes colocar uns prints ou mesmo a base de dados, ajudava bastante.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, posso tentar ajudar nas duas primeiras questões, dado que Access é algo que já lá vai :)

1) Ainda não percebi bem. Vamos ver se consigo entender: tens uma tabela 'Categorias' e uma 'Colaboradores', assumo que exista uma relação 1-N, com participação obrigatória do lado N. Agora, não percebi é em que formulário, ou em que ponto da criação de novos registos queres os dados capitalizados, se for na introdução de novas categorias, isso eventualmente pode ser feito com VBA, não sei se pode, se for noutro formulário, então não precisas mais que limitar aos valores que provêm da tabela categorias.

2) Os campos dos formulários possuem uma propriedade que permite definir a ordem do focus, o primeiro componente a receber focus, isto é, a ficar seleccionado, quando o formulário abre é o que possuir o nível 0. Essa propriedade também controla para que campo o cursor passa quando carregamos no tab.

3) Também não percebi esta parte, se carregas no 'esc' o formulário é fechado, ou estou a ver mal a situação? Novamente, se for possível controlar isto com VBA, não é a minha área :P

4) Nunca fiz o que pretendes, a repetição de cabeçalhos, se existir tal opção, nunca foi algo com que tenha trabalhado, mas procura nas propriedades do report que estás a fazer, e dos campos, que é possível que exista.

A categorias são inseridas na tabela que tem a relação para a colaboradores, a validação que pretendo seria no formulario para inserir novos colaboradores.

Já agora podes me dizer como fazer em VB se for para inseir as categorias atraves do formulario;

Resposta à 3ª

Se tiveres com o formulario no modo de execução, simplesmente não faz nada;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A categorias são inseridas na tabela que tem a relação para a colaboradores, a validação que pretendo seria no formulario para inserir novos colaboradores.

Já agora podes me dizer como fazer em VB se for para inseir as categorias atraves do formulario;

Resposta à 3ª

Se tiveres com o formulario no modo de execução, simplesmente não faz nada;

Olá,

Lestes os meus comentários ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tentando dar mais uma ajuda, e reforçando o que o Knitter já disse:

1) Muito confuso … dá exemplos;

2) Por defeito o campo que tem o 0 recebe o focus. Coloca o “Tab Index” a zero. Se não der podes fazer por código:

Me.Text1.SetFocus

3) O que me parece é que queres cancelar a inserção de um novo registo. Para isso verificas qual a tecla carregada e verificas se os campos não estão preenchidos e voltas para o registo anterior. Neste pequeno exemplo utilizo o ID que é auto incrementado (chave primária) e se começares a preencher qualquer campo ele deixa de ser Null. Se for Null é porque nada está preenchido.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyEscape Then
        If IsNull(Me.ID) Then
            DoCmd.GoToRecord acActiveDataObject, , acPrevious
        End If
    End If
End Sub

Private Sub Form_Load()
    Me.KeyPreview = True
End Sub

4) Colocas o titulo no “Page Header” e não no “Report Header”

Se não for bem isto explica melhor, dá mais exemplos concretos, etc.

2)

Tentei e não faz exactamente o que pretendo mas já ajuda imenso na ordenação dos campos :P Obrigada

Posso te pedir para me definires o codigo?

GeSHi (vb):Me.Text1.SetFocusCreated by GeSHI 1.0.7.20 (podes escrever o que quer dizer?)

3)

Seria o esc cancela o novo registo e o formulario volta automaticamente para o registo anterior.

Já tenho os comandos para andar de registo em registo, posso optar por manter esses e utilizar esses.

4)

Funcou :) um promenor tão simples faz logo a diferença;  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

2) Imagina que tens os controlos com o tabindex todo desordenado ou após alguma acção queres que um determinado controlo ganhe o focus (fique seleccionado). Utilizas a instrução Me.Text1.SetFocus (para seleccionar o controlo Text1)

Podes colocar no evento load e quando o form arrancar fica com esse controlo seleccionado. Exemplo:

Private Sub Form_Load()

    Me.Text1.SetFocus

End Sub

3) O que queres exactamente fazer quando carregas na tecla ESC ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

2) Imagina que tens os controlos com o tabindex todo desordenado ou após alguma acção queres que um determinado controlo ganhe o focus (fique seleccionado). Utilizas a instrução Me.Text1.SetFocus (para seleccionar o controlo Text1)

Podes colocar no evento load e quando o form arrancar fica com esse controlo seleccionado. Exemplo:

Private Sub Form_Load()

    Me.Text1.SetFocus

End Sub

3) O que queres exactamente fazer quando carregas na tecla ESC ?

Obrigada  :P

Quero retornar ao registo anterior...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora