ACC2002: 폼, 보고서 또는 데이터 액세스 페이지에서 폴더의 이미지를 표시하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 285820 - 이 문서가 적용되는 제품 보기.
이 문서의 Microsoft Access 2000 버전에 대한 내용은 210100을 참조하십시오.

고급: 전문적인 코드 작성, 상호 운용성, 다중 사용자 기술이 필요합니다.

이 문서의 내용은 Microsoft Access 데이터베이스(.mdb)와 Microsoft Access 프로젝트(.adp)에 적용됩니다.

모두 확대 | 모두 축소

이 페이지에서

요약

Microsoft Access 테이블에 이미지를 저장하지 않는 것이 좋을 경우가 종종 있습니다. 이미지가 많거나 각 이미지 파일이 클 경우 Microsoft Access 데이터베이스 파일의 크기가 빠르게 늘어날 수 있습니다.

이 문서는 사용할 수 있는 사용자 지정 함수를 보여줍니다.
  • 테이블에 이미지의 파일 경로와 이름을 저장합니다.
  • 이미지 컨트롤을 사용하여 이미지를 표시합니다.
  • 이미지를 사용할 수 없는 경우에는 이미지 컨트롤을 숨깁니다.
  • 이미지의 디스플레이 상태를 알려줍니다.
또한 이 문서에는 데이터 액세스 페이지에 이미지를 표시하는 데 사용할 수 있는 예제 Visual Basic 스크립트도 들어 있습니다.

참고: 이 예제는 비트맵 이미지(.bmp)를 사용하지만 .jpg, .pcx, .gif 등과 같은 다른 이미지 형식도 사용할 수 있습니다.

추가 정보

Microsoft는 모든 보증(상품, 특정 목적에 대한 적합성 및 비침해에 대한 묵시적인 보증을 포함하며 이에 제한되지 않음)을 배제하며 예를 보여주기 위한 목적으로만 이 프로그래밍 예제를 제공합니다. 본 문서의 내용은 프로시저를 작성하고 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 기술 지원 담당자는 사용자에게 도움이 되도록 특정 절차에 대한 기능을 설명할 수 있지만 사용자의 특정 목적에 맞도록 예제를 수정하여 추가 기능을 제공하거나 절차를 구성하지는 않습니다. 프로그래밍에 익숙하지 않은 사용자는 MCP(Microsoft Certified Partner)의 도움을 받거나 마이크로소프트 고객기술지원부(02-508-0040)로 문의하십시오. MCP에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
http://www.microsoft.com/partner/referral/
사용 가능한 지원 옵션 및 Microsoft에 문의하는 방법에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
기술 지원 서비스 안내

파일과 경로 데이터를 저장할 표 만들기

  1. Northwind.mdb 예제 데이터베이스나 NorthwindCS.adp 예제 프로젝트를 엽니다.
  2. Northwind.mdb나 NorthwindCS.adp에 다음 테이블을 만듭니다.

    Northwind.mdb
    테이블: tblImage 
    ---------------------------- 
    필드 이름: ImageID 
    데이터 형식: 일련 번호 
    인덱스: 예(중복 불가능)
    
    필드 이름: txtImageName 
    데이터 형식: 텍스트
    
    테이블 속성: tblImage 
    -------------------------- 
    기본 키: ImageID
    NorthwindCS.adp
    테이블: tblImage 
    ----------------------- 
    열 이름: ImageID 
    데이터 형식: Int 
    널 허용: 선택 취소 
    고유: 예
    
    열 이름: txtImageName 
    데이터 형식: varchar
    
    테이블 속성: ImageTable 
    ------------------------------- 
    기본 키 제약 조건: ImageID
  3. 데이터시트 보기에서 tblImage 테이블을 연 다음 비트맵 파일의 경로와 이름을 각 레코드에 추가합니다. 다음 예제 테이블은 레코드가 어떻게 표시되는지 보여줍니다.
    --------------------------------------------------------------
    | 유형                 | 예                                           | 
    -------------------------------------------------------------- 
    | 절대 경로(로컬)     | C:\Windows\Zapotec.bmp                 | 
    | 절대 경로(UNC 경로) | \\Servername\sharename\Zapotec.bmp     | 
    | 상대 경로            | Zapotec.bmp                            | 
    --------------------------------------------------------------

사용자 지정 함수 만들기

  1. 새 모듈을 만든 후 다음 코드를 붙여넣거나 입력합니다.
    Option Compare Database
    Option Explicit
    
    Public Function DisplayImage(ctlImageControl As Control, strImagePath As Variant) As String
    On Error GoTo Err_DisplayImage
    
    Dim strResult As String
    Dim strDatabasePath As String
    Dim intSlashLocation As Integer
    
    With ctlImageControl
        If IsNull(strImagePath) Then
            .Visible = False
            strResult = "No image name specified."
        Else
            If InStr(1, strImagePath, "\") = 0 Then
                ' Path is relative
                strDatabasePath = CurrentProject.FullName
                intSlashLocation = InStrRev(strDatabasePath, "\", Len(strDatabasePath))
                strDatabasePath = Left(strDatabasePath, intSlashLocation)
                strImagePath = strDatabasePath & strImagePath
            End If
            .Visible = True
            .Picture = strImagePath
            strResult = "Image found and displayed."
        End If
    End With
        
    Exit_DisplayImage:
        DisplayImage = strResult
        Exit Function
    
    Err_DisplayImage:
        Select Case Err.Number
            Case 2220       ' Can't find the picture.
                ctlImageControl.Visible = False
                strResult = "Can't find image in the specified name."
                Resume Exit_DisplayImage:
            Case Else       ' Some other error.
                MsgBox Err.Number & " " & Err.Description
                strResult = "An error occurred displaying image."
                Resume Exit_DisplayImage:
        End Select
    End Function
    					
  2. 모듈을 Module1로 저장합니다.

폼에서 사용자 지정 함수 사용

  1. tblImage 테이블을 기준으로 다음과 같이 새 폼을 만듭니다.
    폼: frmImage 
    ---------------------- 
    캡션: Image Form 
    레코드 원본: tblImage
    
    이미지 컨트롤 
    --------------------------------- 
    이름: ImageFrame 
    그림: "C:\Windows\Zapotec.bmp"
    
    텍스트 상자 
    ---------------------- 
    이름: txtImageID 
    컨트롤 원본: ImageID
    
    텍스트 상자 
    --------------------------- 
    이름: txtImageName 
    컨트롤 원본: txtImageName
    
    텍스트 상자 
    --------------------------- 
    이름: txtImageNote 
    컨트롤 원본: <Blank>
    참고: 폼에 경로가 나타나지 않도록 하려면 txtImageName 컨트롤의 화면 표시 속성을 아니오로 설정할 수 있습니다.
  2. 보기 메뉴에서 코드를 누른 후 다음 코드를 붙여 넣거나 입력합니다.
    Option Compare Database
    Option Explicit
    
    Private Sub Form_AfterUpdate()
        CallDisplayImage
    End Sub
    
    Private Sub Form_Current()
        CallDisplayImage
    End Sub
    
    Private Sub txtImageName_AfterUpdate()
        CallDisplayImage
    End Sub
    
    Private Sub CallDisplayImage()
        Me!txtImageNote = DisplayImage(Me!ImageFrame, Me!txtImageName)
    End Sub
    					
  3. 폼 보기에서 frmImage를 엽니다. 폼이 각 레코드에 해당하는 비트맵을 표시하는지 확인합니다. ImageName 필드가 비어 있거나 이미지를 찾을 수 없는 경우 이미지 프레임 대신 적절한 메시지가 나타납니다.

보고서에서 사용자 지정 함수 사용

  1. ImageTable 테이블을 기준으로 다음과 같이 새 보고서를 만듭니다.
    보고서: rptImage 
    ---------------------- 
    캡션: Image Report 
    레코드 원본: tblImage
    
    이미지 컨트롤 
    --------------------------------- 
    이름: ImageFrame 
    그림: "C:\Windows\Zapotec.bmp"
    
    텍스트 상자 
    ---------------------- 
    이름: txtImageID 컨트롤 
    원본: ImageID
    
    텍스트 상자 
    --------------------------- 
    이름: txtImageName 
    컨트롤 원본: txtImageName
    
    텍스트 상자 
    --------------------------- 
    이름: txtImageNote 
    컨트롤 원본: <Blank>
    참고: 보고서에 경로가 나타나지 않도록 하려면 txtImageName 컨트롤의 화면 표시 속성을 아니오로 설정할 수 있습니다.
  2. 보기 메뉴에서 코드를 누른 후 다음 코드를 붙여넣거나 입력합니다.
    Option Compare Database
    Option Explicit
    
    Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
        Me!txtImageNote = DisplayImage(Me!ImageFrame, Me!txtImageName)
    End Sub
    					
  3. 인쇄 미리 보기에서 rptImage 보고서를 엽니다. 보고서가 각 레코드에 해당하는 비트맵을 표시하는지 확인합니다. ImageName 필드가 비어 있거나 이미지를 찾을 수 없는 경우 이미지 프레임 대신 적절한 메시지가 나타납니다.

데이터 액세스 페이지에서 사용자 지정 함수 복제

  1. tblImage 테이블을 기준으로 다음과 같이 새 데이터 액세스 페이지를 만듭니다.
    데이터 액세스 페이지: dapImage 
    ----------------------------- 
    Title: Image Data Access Page
    
    이미지 컨트롤 
    --------------------------------- 
    ID: ImageFrame 
    Picture: "C:\Windows\Zapotec.bmp"
    
    텍스트 상자 
    ---------------------- 
    ID: txtImageID 
    ControlSource: ImageID
    
    텍스트 상자 
    --------------------------- 
    ID: txtImageName 
    ControlSource: txtImageName
    참고: 페이지에 경로가 나타나지 않도록 하려면 txtImageName 컨트롤의 visibility 속성을 hidden으로 설정할 수 있습니다.
  2. 도구 메뉴에서 매크로를 가리킨 다음 Microsoft Script Editor를 누릅니다.
  3. HTML 문서의 HEAD 태그 부분에서 MSODSC의 현재 이벤트에 다음 스크립트를 추가합니다.

    참고: 이벤트를 트리거하려면 매개 변수를 순서대로 전달해야 합니다.
    <SCRIPT language=vbscript event=Current(oEventInfo) for=MSODSC>
    <!--
    	ImageFrame.src=txtImageName.value
    -->
    </SCRIPT>
    					
  4. 페이지 보기에서 dapImage 페이지를 엽니다. 페이지가 각 레코드에 해당하는 비트맵을 표시하는지 확인합니다. ImageName 필드가 비어 있으면 컨트롤 아이콘이 표시됩니다. 이미지를 찾을 수 없는 경우 이미지 컨트롤에 X 아이콘이 나타납니다.

참조

이벤트 속성 설정에 대한 자세한 내용은 도움말 메뉴에서 Microsoft Access 도움말을 누르고 Office 길잡이나 도움말 마법사에서 이벤트에 응답하는 속성 값 설정을 입력한 다음 찾기를 눌러서 나타나는 항목을 참조하십시오.

이벤트 속성 설정에 대한 자세한 내용은 도움말 메뉴에서 Microsoft Access 도움말을 누르고 Office 길잡이나 도움말 마법사에서 이벤트 및 이벤트 프로시저를 입력한 다음 찾기를 눌러서 나타나는 항목을 참조하십시오.

Access에서 이미지와 그림 사용에 대한 자세한 내용은 도움말 메뉴에서 Microsoft Access 도움말을 누르고 Office 길잡이나 도움말 마법사에서 그림에 대한 경로를 저장하는 필드 만들기를 입력한 다음 찾기를 눌러서 나타나는 항목을 참조하십시오.

Access에서 이미지와 그림 사용에 대한 자세한 내용은 도움말 메뉴에서 Microsoft Access 도움말을 누르고 Office 길잡이나 도움말 마법사에서 Microsoft Access에서 사용할 수 있는 그래픽 필터와 파일 형식을 입력한 다음 찾기를 눌러서 나타나는 항목을 참조하십시오.




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 285820 - 마지막 검토: 2011년 5월 13일 금요일 - 수정: 4.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
키워드:?
kbhowto kbinterop kbprogramming KB285820

피드백 보내기

 

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