Pergunta

Então, eu tenho um formulário que eu quero que o usuário use para atualizar várias tabelas com. Eu não quero o formulário para ser vinculado às tabelas, como eu preferiria fazer isso com VBA (eu penso, eu não sei).

Então aqui é um exemplo de tabela pouco

UserTable

UserID
First
Middle
Last
Division
Title

EquipTable

EquipID
AssignedLaptop
Model
Barcode

SoftTable

SoftID
SoftwareName
License#
Custom (running sum to calculate how many licenses are left....another question)

ExchangeTable

UserID
SoftID
EquipID

Então é assim que eu definir as tabelas para cima. existem todas as caixas de estes text / CMB em uma mesa, e eu gostaria de ser capaz de salvar esses dados a partir desta uma forma para todas as tabelas relativas com um clique de botão.

Então, alguém pode me ajudar com o seguinte:

Se eu tiver esta forma de preenchimento solto depois de um botão Criar novo clique, como então eu posso dizer caixas de texto escondidas (que idealmente devem conter " "os números de ID), para preencher novos números de identificação (numeração automática), para cada uma das tabelas, neles, para que eu possa atribuir uma instrução SQL UPDATE para um botão salvar clique, no VB para salvar os dados?

Eu poderia configurá-lo para que eu simplesmente a "mesa de câmbio" (nenhuma idéia porque eu nomeei-lo assim) preenche os números de identificação para as outras mesas, em vez de vice-versa?

Am I lidando com isso da maneira errada

EDIT:

Eu estava apenas tentando dar-lhe um exemplo para ver se o que eu estava tentando fazer é possível com várias tabelas (em última análise, várias chaves) em um formulário e, em caso afirmativo, como é que diferem de fazê-lo com uma forma / table : Eu uso a abordagem não ligado monte por causa das formas que eu tenho que construir, e a necessidade de constantemente pas parâmetros de uma forma para a próxima no VBA. Eu acho que é mais rápido para codificá-lo eu mesmo? Portanto, para este conceito que eu sempre tenho uma caixa de texto oculto no formulário que geralmente tem a IDnumber da tabela relativa. Então clique em Salvar seria apenas exigem um SQL = * WHERE Tbl_ID = frmID simples meio idéia.

Tudo o que eu queria saber eram essas perguntas?

Quando você executa um INSERT, faz a necessidade do número de identificação para estar presente na declaração ou terá acesso apenas atribuir o próximo parente para você quando você executar?

Se não Considerando-se o método acima, como posso determinar este número (ID eu preciso usar) eu mesmo, com código?

Outra pergunta? Como você derrotar a roda de rolagem do mouse através de registros funcionar em uma forma ligada?

Foi útil?

Solução

Eu vejo o que você está dizendo, frase era estranho sobre isso, mas eu ver onde você está goign com isso.

Isto é o que você tem:

  • Você tem um formulário independente que não está ligada a qualquer tabela
  • Este formulário independente que não é de forma associada a qualquer tabela será projetado por você, adicionando algumas caixas de texto e também caixas de combinação e botões
  • Dentro dessas caixas de texto você tem algumas caixas de texto que estão indo para armazenar o ID (O valor da chave) da linha. De modo que quando você faz um salvar o número de ID é definido de volta para a caixa de texto
  • Uma vez que o número de identificação é definida para esse campo escondido você pode então emitir atualizações para todas as tabelas que precisam desse número de identificação

O que parece certo? Se assim for, é muito simples. Tudo que você tem a fazer é uma vez que você clicar no botão "Criar botão" executar a inserção, algo nesse sentido:

 ' Command to Insert Records.
      Dim cmdInsert As New OleDbCommand()
      cmdInsert.CommandText = "INSERT INTO AutoIncrementTest (Description) VALUES (?)"
      cmdInsert.Connection = cnJetDB
      cmdInsert.Parameters.Add(New OleDbParameter("Description", OleDbType.VarChar, 40, "Description"))
      oleDa.InsertCommand = cmdInsert

Em seguida, você emitir outro comando para agarrar a parte traseira IDENTIDADE, ou seja, o seu ID:

  ' Create another command to get IDENTITY value.
  cmdGetIdentity = New OleDbCommand()
  cmdGetIdentity.CommandText = "SELECT @@IDENTITY"
  cmdGetIdentity.Connection = cnJetDB

Você pode sempre obter uma identidade com SELECT @@ IDENTITY

Assim, no seu código por trás de definir a caixa de texto para o valor do SELECT @@ IDENTITY. Eu não fiz o acesso em mais de 5 anos, mas eu lembro de ter feito algo assim. Depois de ter essa identidade que você colocá-lo em sua caixa de texto oculto. Isso ajudará você a executar suas atualizações que usam essa identidade.

Aqui é um bom lugar para começar: http://support.microsoft.com/kb/815629 Aqui está outro grande artigo que podem ajudá-lo: http://support.microsoft.com/kb/815629

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