Pergunta

Então, eu tenho um formulário de entrada que deseja usar para atualizar uma tabela com certos campos de informações. Tenho a identificação do registro que vem automaticamente em uma caixa de texto. Eu tenho três caixas de texto que eu preciso adicionar a tabela (excluindo o ID) em um clique de botão.

Name
Date
Method

são os nomes de campo.

As_Name
As_Date
As_Method

são os nomes de caixa de texto

O nome da tabela é POC, eo ID é POC_ID (seu um autonumber).

Então eu não quero esses objetos (caixas de texto) para ser ligado à mesa, porque isso é um pouco formulário separado "pop-up" que vem de uma forma que a mesa, e eu só quero a entrada para ser relativo ao POC_ID que já está selecionada através da forma original.

Então, como faço para escrever o VBA para que isso 1) certifique-se de que os registros não existirem .... 2) atualizar os campos (listado acima) com a entrada de dados das caixas de texto (listadas acima). Eu quero ser capaz de usar isso com um clique de botão ....


EDIT:

na verdade, é uma mesa não dois; i tem duas formas que eu quero ser capaz de enviar informações para a mesma tabela (informações diferentes embora). este db já foi construído por alguém e sei que tenho sido deamed para assumi-la.

Eu preciso adicionar um segundo pouco pop-up forma para obter informações adicionais a ser adicionado com base em novos requisitos (não há literalmente nenhum onde para eu colocar isso na outra). Já fiz isso, e usou uma abordagem objeto sugerido para referenciar as primeiras formas (a partir do qual este segundo "pop-up" de formulário brota) para adicionar os campos id relativos. Agora eu tenho esta segunda pouco pop-up forma que apenas pediu três valores a serem inseridos (que são os listados acima).

Eu simplesmente não sei como vincular a caixa de texto, com um campo de modo que uma vez que um usuário entra na informação, cliques "salvar" ele salva as informações para a mesa em relação ao tripId que está lá (mencionado acima). a única maneira que eu sei como obter as caixas de texto para salvar dados para a tabela é usar o construtor / assistente quando eu criar um novo.

Gostaria de aprender a vincular um objeto (caixa de texto, a CMB, lista) etc em um formulário, a uma tabela com um método "On Click" para que eu possa usar um botão Salvar. Basicamente é isso!

Foi útil?

Solução

Ainda não tenho certeza eu entendo a sua situação, mas deixe-me oferecer o esboço de uma resposta. Se a minha exposição não é perto o suficiente, por favor, explicar onde andava errado.

O seu formulário pai, frmParent, tem um botão de comando (cmdMoreFields) que abre o formulário filho (frmChild), onde irá inserir valores para 3 campos adicionais no registro exibido em frmParent. Depois que o usuário entra esses valores em frmChild (em controles de caixa de texto chamado As_Name, As_Date e As_Method), ela vai clicar em um botão de comando (cmdSave) para armazenar esses valores para campos (nome, data e Método) em POC mesa, e perto frmChild. Além disso, frmParent inclui uma caixa de texto (txtPk_field), que contém o valor para a chave primária (pk_field campo no POC tabela) do registro atual.

No entanto, eu não tenho certeza de qual campo / controle que você está usando para txtPk_field, e duvido que o valor está disponível se o registro atual ainda não foi salvo. Então, eu vou sugerir este código para os cmdMoreFields "no clique" evento:

If Me.Dirty Then Me.Dirty = False
DoCmd.OpenForm "frmChild"

No caso de "no clique" de cmdSave (em frmChild), tente um código semelhante a:

Dim strSql As String
strSQL = "UPDATE POC SET [Name] = """ & Me.As_Name & """, [Date] =#" _
    & Me.As_Date & "#, Method = """ & Me.As_Method & """ WHERE pk_field = " _
    & Forms!frmParent.txtPk_field & ";"
Debug.Print strSql
CurrentDb.Execute strSql, dbFailOnError
DoCmd.Close

Se isto funcionar abordagem, considere passando o valor pk_field para frmChild com AbrirArgs, como Remou sugeriu.

Nota: eu assumi o tipo de dados para o nome é texto, data é a data / hora e Método é texto. Você vai ter que mudar os delimitadores instrução UPDATE para todos os campos cujos tipos de dados diferem dos meus palpites.

Outras dicas

O método OpenForm de DoCmd permite vários argumentos, incluindo onde e AbrirArgs. Você pode tirar proveito destes.

No entanto, algo parece ser bastante errado com seu design da tabela em que você parece estar segurando as mesmas informações em duas tabelas e sem motivo declarado. Você já leu http://www.r937.com/relational.html ?

Gostaria de sugerir que o desenho que você precisa provavelmente só inclui um POC_ID campo numérico que é uma chave estrangeira para a tabela principal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top