필드 이름 변경


2

Access에서 필드 이름을 변경하는 방법을 찾고 있습니다.

텍스트 파일에서 매크로를 통해 데이터를 가져옵니다. 그런 다음 크리스탈 보고서를 통해 검토합니다. 이제 보고서에서 필드 5 대신 필드 7에서 가져온 필드를 읽어야하는 경우가 있습니다. 따라서 500000-1,000,000 개의 레코드에 대한 가져 오기 작업을 수행하고 많은 레코드를 가져 오기 때문에 전체 가져 오기 프로세스를 재구성하고 싶지 않습니다. 텍스트 파일은 각각 약 5-9 분이 걸립니다. 실제로 한 번만 가져 오기를 수행하고 필드 이름 중 하나 인 경우 필드 이름을 전환합니다. 지금까지 마우스 오른쪽 버튼으로 이름 바꾸기를 클릭했습니다.

매크로를 클릭하고 Field5-> FieldTemp, Field7-> Field5 및 FieldTemp-> Field7 이름을 바꿀 수있는 방법이 있습니까?

궁극적으로 Field5 <-> Field7의 이름을 바꿔야합니다. 제안?

업데이트 : 내가 발견 한 하지만 난 그것을 구현하는 방법을 모르겠어요. 내가 생각하는 것처럼 작동합니까? 그렇다면 어떻게 작동합니까?

답변:


2

VBA와 코드에 지정된 키보드 단축키를 사용하여이 작업을 수행 할 수 있습니다.

Public Function swapFieldNames(table, name1, name2)

    '## Close & save the table in case its open or else you can't rename fields
    DoCmd.Close acTable, CurrentDb().TableDefs(table).Name, acSaveYes

    '## Save all touched field names to temporarily variables for later use
    temp1 = CurrentDb().TableDefs(table).Fields(name1).Name
    temp2 = CurrentDb().TableDefs(table).Fields(name2).Name

    '## Rename them to unique names because duplicate names are not allowed
    CurrentDb().TableDefs(table).Fields(name1).Name = "#$%temp1%$#"
    CurrentDb().TableDefs(table).Fields(name2).Name = "#$%temp2%$#"

    '## Rename them again and do the switch
    CurrentDb().TableDefs(table).Fields("#$%temp1%$#").Name = temp2
    CurrentDb().TableDefs(table).Fields("#$%temp2%$#").Name = temp1

    '## Open the table to view the result
    DoCmd.OpenTable CurrentDb().TableDefs(table).Name

End Function

필드 이름 "field5"와 "field7"을 바꿀 수 있는 데모 데이터베이스를 업로드했습니다.F3

여기에 이미지 설명을 입력하십시오

단계별

  1. Access 데이터베이스를 열고 ALT+ F11를 눌러 VBA 편집기를 불러옵니다.
  2. 왼쪽 분할 창에서 데이터베이스 이름을 마우스 오른쪽 단추로 클릭하고 모듈을 삽입하십시오.
  3. 오른쪽 창에서 위 코드를 붙여 넣고 예를 들어 VBA swap module
  4. 자동 키 를 사용하여 코드를 빠르게 실행하는 방법에 대한 Microsoft 가이드 를 따르십시오

    • 작성 탭에서 매크로 (또는 모듈 아래의 화살표를 클릭 한 다음 매크로)를 클릭하십시오.
    • 디자인 탭의 표시 / 숨기기 그룹에서 매크로 이름을 클릭하여 매크로 이름 열을 표시합니다.
    • 매크로 이름 열에 조치를 지정할 키를 삽입하십시오.

      Macro Name      Key or keyboard shortcut
      ^A or ^4        CTRL+A or CTRL+4
      {F1}            F1
      ^{F1}           CTRL+F1
      +{F1}           SHIFT+F1
      
    • 동작 열에서 키를 누를 때 실행되는 동작 RunCode를 추가하십시오.
    • 인수 열에서 swapFieldNames("table1", "field5", "field7")또는 모듈 이름을 입력하십시오. 또한 이름을 바꾸는 데 사용할 테이블과 교체 할 필드 이름을 정의합니다. 여기에 이미지 설명을 입력하십시오

    • 저장을 클릭하거나 CTRL+를 누르고 S매크로 이름을 "AutoKeys"로 지정하십시오. 이 이름으로 만 Access를 다시 열 때 바로 가기를 할당해야 함을 알 수 있습니다.


힌트 : "매크로"와 "모듈"이라는 용어를 혼동하지 마십시오. Access의 경우 매크로는 VBA와 아무 관련이 없습니다. VBA 함수 및 서브 루틴을 "모듈"이라고하며 매크로는 "이 테이블 열기, 값 XY 필터링 및 모든 항목 삭제"와 같은 여러 조치를 정의 할 수있는 컨테이너입니다.


1
F3 바로 가기를 건너 뛰고 매크로에서 직접 실행했습니다. 그러나 여전히 OH SO PERFECTT !!
PsychoData
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.