Access 2013: 쿼리 결과에서 양식 필드를 업데이트하기 위해 매크로를 작성하려고 합니다.

Access 2013: 쿼리 결과에서 양식 필드를 업데이트하기 위해 매크로를 작성하려고 합니다.

쿼리 결과를 기반으로 양식의 필드 값을 업데이트하는 매크로를 만들려고 합니다.

저는 Access에서 VBA 작업을 처음 접했기 때문에 기본적인 질문을 하게 되어 사과드립니다.

언급해야 할 점은 "테스트" 쿼리는 정확히 하나의 결과를 반환한다는 것입니다. 기본적으로 VLookup과 유사하게 사용됩니다.

현재 내 코드는 다음과 같습니다.

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

SetProperty 명령이 전혀 작동하지 않게 되었습니다. 버킷과 같은 변수를 제공하려고 하는지 또는 10과 같은 값을 제공하려고 하는지에 관계없이 데이터 유형이 일치하지 않는다는 메시지가 지속적으로 표시됩니다. 오류 메시지는 다음과 같습니다.

런타임 오류 '2948': 입력한 식은 인수 중 하나에 대해 잘못된 데이터 형식입니다.

모든 도움을 주시면 감사하겠습니다.

답변1

DoCmd.SetProperty testfield, acPropertyValue, bucket

위의 코드를 사용하여property제어를 위해 변경하지 마십시오.value. 속성은 배경색, 높이, 너비 등입니다.

값을 설정하려면 me폼에서 컨트롤을 참조하는 함수를 이용하기만 하면 됩니다.

me.testfield = bucket

testfield이는 변수가 보유한 값으로 명명된 양식 컨트롤을 채우도록 액세스를 지시합니다 bucket.

me.refresh참고: 필드를 업데이트하는 양식을 얻으려면 해당 명령 뒤에 를 추가해야 할 수도 있습니다 .

관련 정보