Access 2013: Tentativa de gravar macro para atualizar campos de formulário de um resultado de consulta

0

Estou tentando criar uma macro para atualizar o valor de um campo em um formulário com base nos resultados de uma consulta.

Eu sou inteiramente novo em trabalhar com o vba no Access, então peço desculpas se estiver fazendo uma pergunta básica.

Devo mencionar que a consulta "teste" retorna exatamente um resultado. É essencialmente usado de forma semelhante a um VLookup.

Atualmente, meu código é assim:

Private Sub UpdateBasic_Click()
  Dim bucket As String
  DoCmd.OpenQuery "test", acViewNormal, acReadOnly
  'this line is meant to record the result of the query into a variable. It is not working but I haven’t found the right command to get it to pick up the data yet.
  bucket = A1
  DoCmd.Close acQuery, "test", acSaveNo
  DoCmd.OpenForm "BasicData", acNormal, , , acFormEdit, acWindowNormal, "Global_ID = 'sdkfa'"
  'this line is meant to update the value of the field on the form.
  DoCmd.SetProperty testfield, acPropertyValue, bucket
End Sub

Não estou tendo sorte em conseguir que o comando SetProperty funcione. É consistentemente me dizendo que eu tenho uma incompatibilidade de tipo de dados, independentemente de eu tentar dar-lhe uma variável como o balde ou um valor como 10. Mensagem de erro é a seguinte:

Run-time error ‘2948’: An Expression you entered is the wrong data type for one of the arguments.

Toda e qualquer ajuda seria apreciada.

    
por J.Scott 23.03.2015 / 16:41

1 resposta

0

DoCmd.SetProperty testfield, acPropertyValue, bucket

Usando o código acima, você está tentando definir o property para o controle, não alterando o value . Uma propriedade seria cor de fundo, altura, largura, etc.

Se quiser definir o valor, basta usar a função me para se referir ao controle em um formulário.

me.testfield = bucket

Isso informa o acesso para preencher o controle de formulário denominado testfield com o valor mantido pela variável bucket .

Observação: você pode precisar adicionar um me.refresh após esse comando para obter o formulário para atualizar os campos.

    
por 23.03.2015 / 20:41