Access 2002에서 Excel 보고서를 출력할 때 메모 필드가 잘린다

기술 자료 번역 기술 자료 번역
기술 자료: 294286 - 이 문서가 적용되는 제품 보기.
고급: 전문적인 코드 작성, 상호 운용성 및 다중 사용자 기술이 필요합니다.

이 문서에서는 Microsoft Access 97 버전에 182302 참조하십시오.
이 문서에서는 Microsoft Access 2000 버전에 208801 참조하십시오.
모두 확대 | 모두 축소

이 페이지에서

현상

Microsoft Excel로 보고서를 출력할 때 메모 필드에서 255자 잘립니다. 보고서를 미리 보는 동안 분석 It Microsoft Excel을 사용하여 명령을 클릭할 때 이 동작이 표시될 수도 있습니다.

원인

Excel에서 텍스트 셀 내용의 최대 길이는 000자를 것입니다. 그러나 Access 보고서를 텍스트 셀 내용의 최대 길이는 255 입니다 Excel 5.0/95 형식으로 출력합니다.

해결 방법

Microsoft는 묵시적인 보증 없이 목적으로만 프로그래밍 예제를 제공합니다. 이 포함되지만, 상품성 또는 특정 목적에의 적합성에 대한 묵시적인된 보증이 제한되지 않습니다. 이 문서에서는 만들려면 및 프로시저를 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 절차에 대한 기능을 설명할 수 있지만 추가 기능을 제공하거나 특정 요구 사항에 맞도록 프로시저를 구성하지는 이 예제를 수정하지 않습니다.

방법 1

원본으로 사용하는 테이블이나 쿼리의 Excel 2000 파일 형식으로 내보냅니다. 이렇게 하려면 다음과 같이 하십시오.
  1. 데이터베이스 창에서 테이블 또는 보고서를 기반으로 쿼리를 선택하십시오.
  2. 파일 메뉴에서 내보내기 를 클릭하십시오.
  3. 테이블 '< 테이블 이름 >' 에 내보내기 대화 상자에서 파일 형식 상자에서 Microsoft Excel 97-2002 (*.xls) 선택합니다.
  4. 테이블을 내보내려면 모두 내보내기 를 클릭하십시오.

방법 2

메모 필드를 250 자 문자열로 분할 보고서에서 텍스트 상자를 만듭니다. 보고서 출력 후 해당 문자열을 리어셈블하십시오.

예를 들어, 메모, 명명된 메모 필드에 있고 일부 레코드를 해당 필드의 내용을 700 긴 자입니다 가정하십시오. 텍스트 상자 중 하나에 컨트롤 원본으로 다음 세 개의 식 각각에 함께 보고서에서 텍스트 상자를 세 개 만들 수 있습니다.
=Mid([Notes],1,250)

=Mid([Notes],251,250)

=Mid([Notes],501,250)
스프레드시트에 보고서 출력 후 필드에 세그먼트를 리어셈블리할 수 있습니다. 예를 들어, 첫 번째 레코드의 메모 필드의 세그먼트를 셀 B2, C2, D2 각각 나타납니다. E2 다른 셀에 다음 수식을 입력하여 필드에 리어셈블리할 수 있습니다.
=CONCATENATE(B2,C2,D2)
이 수식은 나머지 모든 레코드에 대한 메모 필드에 리어셈블리할 E 열의 셀에 복사할 수 있습니다.

CONCATENATE 함수를 사용하여 수식을 사용하려고 하면 오류 # VALUE 반환합니다 유의하십시오.
=CONCATENATE(B2:D2)
모든 셀의 내용이 연결된 결과에 포함할 주소 별도로 표시되어야 합니다.

필드에 있는 데이터의 길이가 필요한 많은 텍스트 상자를 만들 수 있습니다 경우, 응용 프로그램 프로시저 VBA 해당 텍스트 상자 만들기 자동화할 수 있습니다. 다음 예제에서는 출력 보고서, 텍스트 상자, 만들려면 프로시저를 사용하는 방법을 보여 줍니다. 다음 텍스트 상자의 내용을 리어셈블리할 것입니다.
  1. 이 문서의 뒷부분에 나오는 단계를 1-7단계 "동작을 재현하는 단계" 섹션을 따르십시오.
  2. tblMemoOutput 테이블을 기반으로 하는 디자인 보기에서 새 보고서를 만듭니다.
  3. 보고서의 세부 구역에 ID 필드를 끕니다.
  4. rptMemoOutput 같이 보고서를 저장하십시오. 보고서 디자인 보기에서 열어 둡니다.
  5. 새 모듈을 열고 다음 프로시저를 입력합니다:
    Function MemoSplitter(strReportName As String, _
       strFieldName As String, lngMemoLength As Long)
    
       Dim NewControl As Control
       Dim intLoopCount As Integer
       For intLoopCount = 0 To lngMemoLength / 250
    
          Set NewControl = CreateReportControl(strReportName, _
             acTextBox, acDetail)
          NewControl.Name = intLoopCount & "MemoText"
          NewControl.ControlSource = "=Mid([" & _
             strFieldName & "]," & 250 * intLoopCount + 1 _
             & ",250)"
       Next intLoopCount
    
    End Function
    					
  6. 컴파일 및 다음 모듈을 mdlSplitFunction 파일로 저장하십시오.
  7. 직접 실행 창에 다음 줄을 입력한 다음 Enter 키를 누릅니다:
    ?MemoSplitter("rptMemoOutput","Notes",5200)
    					
  8. 인쇄 미리 보기에서 보고서 보기 및 세 개의 ID 참고: a, b, 및 c. 도구 메뉴에서 Office 링크, 가리킨 다음 분석 It Microsoft Excel에서 클릭합니다.
  9. Microsoft Excel에서 스프레드시트 파일의 데이터를 나타날 때 셀 A1에 클릭한 다음 데이터를 모두 선택하려면 Ctrl + Shift + End를 누릅니다.
  10. 서식 메뉴에서 가리킨 다음 자동 맞춤 을 클릭하십시오.
  11. 셀을 A2 를 선택하십시오. 삽입 메뉴에서 을 클릭하십시오.
  12. A2 셀에 다음 수식을 입력하십시오.
    =VALUE(LEFT(A1,FIND("M",A1,1)-1))
  13. U2 통해 B2 셀에서 수식을 복사하십시오.
  14. U2 통해 A2 셀을 선택하십시오.
  15. 편집 메뉴에서 복사 를 클릭하십시오.
  16. 편집 메뉴에서 붙여넣기 를 클릭하십시오.
  17. 붙여넣기붙여넣기 대화 상자에서 을 누른 다음 확인 을 누릅니다. 두 번째 행의 수식을 사용하여 메모 필드의 세그먼트를 정렬할 값을 변환합니다.
  18. A2 를 클릭한 다음 모든 선택 있지만 첫 번째 데이터 행을 Ctrl + Shift + End를 누릅니다.
  19. 데이터 메뉴에서 정렬 을 클릭하십시오.
  20. 정렬 대화 상자에서 옵션 을 클릭하십시오.
  21. 정렬 옵션 대화 상자의 방향 에서 받는 정렬 왼쪽 오른쪽 클릭한 다음 확인 을 누릅니다.
  22. 정렬 대화 상자의 정렬 기준 목록에서 Row2 클릭한 다음 메모 필드에 세그먼트를 정렬하려면 확인 누릅니다.
  23. W3 셀에 다음 수식을 입력하십시오.
    =CONCATENATE(A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3,N3,O3,P3,Q3,R3,S3,T3,U3)
  24. 수식을 셀 W4W5 각 레코드에 대한 메모 필드에 리어셈블리할 복사하십시오.

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다.

추가 정보

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

  1. Microsoft Access를 시작하고 데이터베이스를 엽니다.
  2. 다음 표에서는 만들기:
    
       Table: tblMemoOutput
       --------------------
       Field Name: ID
       Data Type: Text
       Field Name: Notes
       Data Type: Memo
    					
  3. tblMemoOutput 같이 테이블을 저장하십시오. 기본 키를 만들 것인지 묻는 메시지가 나타나면 아니오 를 클릭하십시오.
  4. 데이터시트 보기에서 테이블을 열고 다음 레코드를 입력합니다:
       ID   Notes
       --   -----
       a    a
       b    b
       c    c
    					
  5. 새 모듈을 열고 다음 프로시저를 입력합니다:
    Function FillMemo(strTableName As String, _
       strFieldName As String)
    
       Dim db As Database
       Dim rs As Recordset
       Dim intLoopCount As Integer
    
       Set db = CurrentDb
       Set rs = db.OpenRecordset(strTableName)
    
       Do Until rs.EOF
          rs.Edit
    
          For intLoopCount = 1 To 26
             rs(strFieldName) = rs(strFieldName) _
                & String(200, Chr(intLoopCount + 64))
          Next intLoopCount
    
          rs.Update
          rs.MoveNext
       Loop
    
       db.Close
    
    End Function
    
    
    					
  6. 컴파일 및 다음 모듈을 mdlDataFunction 파일로 저장하십시오.
  7. 직접 실행 창에 다음 줄을 입력한 다음 Enter 키를 누릅니다:
    ?FillMemo("tblMemoOutput","Notes")
    					
  8. 자동 보고서 사용: 칼럼 형식 마법사를 따라 tblMemoOutput 기반으로 보고서를 만듭니다. 보고서를 인쇄 미리 봅니다.
  9. 도구 메뉴에서 Office 링크, 가리킨 다음 분석 It 프로그램 Microsoft Excel 을 클릭하십시오.
  10. Microsoft Excel에서 스프레드시트 파일의 데이터를 나타나면 C2 셀에 다음 수식을 입력하십시오.
    =LEN(B2)
    메모 필드에 데이터를 255자로 잘렸습니다 유의하십시오.

참조

보고서 출력 Microsoft Excel로 로드하는 방법에 대한 자세한 내용은 도움말 메뉴에서 Microsoft Access 도움말 을, 데이터를 출력하는 Office 길잡이나 도움말 마법사에서 입력한 다음 반환된 항목을 보려면 검색 을 누릅니다.

속성

기술 자료: 294286 - 마지막 검토: 2006년 3월 22일 수요일 - 수정: 7.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Access 2002 Standard Edition
키워드:?
kbmt kbreport kbbug kbpending KB294286 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com