2013-01-09 2 views
-1

엑셀 및 백엔드에서 프론트 엔드에 액세스 할 수 있습니다. 매일이 파일을 클라이언트에 보냅니다. 다른 사람들이 데이터베이스를 보지 못하게합니다. 엑셀에서 액세스를 통합하는 방법이 있습니까? 예를 들어, 파일 만 엑셀로 전송하면 액세스 파일도 자동으로 전송되고 다른 사람들은 내 데이터베이스에 대해 알지 못합니다.
데이터베이스는 액세스 전용으로 남아 있어야합니다.엑셀 및 액세스 통합

+0

왜 파일을 사용하여 데이터베이스를 전송해야합니까? XL 파일을 액세스 할 때 필요한 모든 것을 갖도록 XL 파일을 설정할 수 있습니까? –

답변

0

액세스 파일을 전자 메일이나 FTP로 볼 수 없지만 인터넷에서 연결할 수있는 SQL Server (또는 기타) 데이터베이스로 데이터를 이동할 수는 있습니다.
그러나 몇 가지 문제 제기가 :
1) 보안을
2) ODBC DSN
3) 클라이언트 시스템에 ODBC 드라이버의 가용성

0

당신은 엑셀 파일로 개체로 Access 데이터베이스를 포함 할 수 있습니다 (Insert->Object->Create from file)을 선택하고 Display as icon을 선택하고 사용자에게 추출하고 제거하도록 요청하십시오. 그러나 수동으로 수행하는 경우에는 양쪽면에서 약간 번거 롭습니다.

 
Private Const cStrSheetName As String = "Sheet1" 
Private Const cStrObjName As String = "EmbeddedFile" 

Sub EmbedFile() 
    Dim strFile As String 
    Dim ws As Worksheet 

    Set ws = Sheets(cStrSheetName) 

    strFile = Application.GetOpenFilename("Any file (*.*), *.*", 1, _ 
     "Please select a file to embed") 

    If strFile = "False" Then Exit Sub 

    On Error Resume Next 
    ws.Shapes(cStrObjName).Delete 

    On Error GoTo ErrorHandler 
    ws.OLEObjects.Add(Filename:=strFile, Link:=False, _ 
     DisplayAsIcon:=True, IconFileName:="", _ 
     IconIndex:=0, IconLabel:=strFile).Select 
    Selection.Name = cStrObjName 

    MsgBox "File succesfully embedded!" 

    Exit Sub 

ErrorHandler: 
    MsgBox "Could not embed file. Error: " & _ 
     Err.Number & " - " & Err.Description 

End Sub 

Sub ExtractEmbeddedFile() 
    Dim ws As Worksheet 

    Set ws = Sheets(cStrSheetName) 

    On Error Resume Next 
    ws.OLEObjects(cStrObjName).Copy 

    If Err.Number Then 
     MsgBox "No file embedded!" 
     Exit Sub 
    End If 

    On Error GoTo ErrorHandler 
    CreateObject("Shell.Application").Namespace(ActiveWorkbook.Path) _ 
     .Self.InvokeVerb "Paste" 

    If MsgBox("File succesfully extracted to " & ActiveWorkbook.Path _ 
     & vbCrLf & vbCrLf & "Do you want to remove the embedded " & _ 
     "file from the this workbook to reduce its size?", vbYesNo) _ 
     = vbYes Then 
     ws.Shapes(cStrObjName).Delete 
    End If 

    Exit Sub 

ErrorHandler: 
    MsgBox "Error extracting file: " & _ 
     Err.Number & " - " & Err.Description 

End Sub 

이 당신에게 두 매크로 (EmbedFileExtractEmbeddedFile)를 줄 것이다 당신이 당신의 워크 시트의 버튼에 할당 할 수 있습니다

이 과정을 자동화 할 경우

다음 코드를 사용합니다.

첫 줄에 "Sheet1"을 포함 된 파일을 저장할 워크 시트의 이름으로 수정해야합니다.

+0

vba를 사용하여 추출 및 삭제하는 방법을 알려 주시면 도움이 될 것입니다. – user1958648

+0

나는 대답을 편집했다. HTH! –

+0

고마워 피터 .. 어떻게 내 엑셀 vba에 임베디드 acess 파일을 사용할 수 있습니까? 내 말은 vba를 사용하지 않고 embeded mdb 파일을 열어 볼 필요가 없습니다. – user1958648