스프레드시트를 데이터베이스와 비교하여 문서 생성

스프레드시트를 데이터베이스와 비교하여 문서 생성

정기적으로 작성해야 하는 문서의 제작을 간소화하려고 합니다. 작업을 완료하는 방법에 대한 자세한 지침과 관련된 작업이 있으며, 각 작업에는 다양한 프로젝트에서 재사용되는 특정 ID 번호가 있습니다. 나는 가능한 한 많은 작업 ID를 액세스 데이터베이스에 흡수했습니다.
각 프로젝트에 대해 다른 누군가가 내가 액세스할 수 없는 다른 데이터베이스에서 필요한 모든 작업 목록을 가져와 표준 형식의 Excel 통합 문서에 넣습니다. 각 프로젝트에 대해 다음을 수행해야 합니다.

  • ID 번호로 모든 관련 작업을 가져옵니다.
  • 작업을 완료하는 단계와 기타 정보가 포함된 내 데이터베이스의 표준 목록과 비교하세요.
  • 작업에 대한 특정 정보를 사용하여 특정 형식의 문서를 생성합니다.

Excel에서 매크로를 작성하는 것은 많은 작업처럼 보였지만 최선의 선택이었지만 액세스 데이터베이스가 항상 속한 동일한 위치에 유지되는지 확신할 수 없습니다. 데이터베이스는 모든 프로젝트에서 일관된 항목이므로 Access에서 매크로를 작성하고 스프레드시트가 어디에 작동할지 묻는 대화 상자를 갖는 것을 고려했지만 두 목록을 비교하기 위해 표를 사용하는 것은 단순히 비교 시트를 생성하는 것보다 더 복잡해 보였습니다. 엑셀 내에서. Word 내에서 매크로를 작성하는 것을 실제로 고려하지는 않았지만 그것도 가능합니다.

나는 이 설정을 만드는 가장 논리적인 방법을 찾으려고 노력하고 있습니다. 3가지 다른 Office 프로그램을 사용하는 것은 상당히 복잡해 보이지만 이를 수행하는 데 사용할 수 있는 소프트웨어는 제한되어 있습니다.

  • 사무실 2007
  • 비할 바 없는
  • 설치된 다른 프로그램(추가 소프트웨어를 설치할 수 없음)이 작업과 원격으로 관련되지 않는 것 같습니다.

누구든지 이것에 대해 어떻게 생각하는지 알고 있습니까?

답변1

Crystal Reports가 있는 경우 Excel 테이블을 Access 테이블에 조인할 수 있습니다. 그런 다음 2개의 보고서를 인쇄합니다. 하나는 ID와 일치하는 데이터가 있고 다른 하나는 ID가 일치하지 않는 기록을 나열하는 보고서입니다. 포맷이 엉망이네요. 보고를 위해 Excel 파일을 Oracle 데이터베이스에 결합하는 보고서를 작성합니다. Excel 파일을 ACCESS에 결합하고 둘 다 일치할 ID 필드가 있다고 가정하여 동일한 유형의 보고서를 생성할 수 있어야 합니다.

답변2

두 데이터세트를 연결하기 위해 ODBC 연결을 사용해 보셨나요?

ODBC 및 Excel에 대한 Google 결과

기본 작업 환경이 데이터베이스이고 새로운 데이터 필드 입력을 자동화할 수 있는 경우 간단한 쿼리를 사용하여 일치하지 않는(새) 데이터를 선택하고 거기에서 작업할 수 있습니다. 첫 번째 데이터베이스에서 자신만의 데이터베이스로 간단하게 펀치아웃할 수 없거나 첫 번째 데이터 내보내기 세트에서 단순히 새 데이터 또는 변경된 데이터의 CSV를 내보낼 수 없다는 점은 유감입니다.

양쪽에서 새 데이터를 추가하고 기존 데이터와 비교할 수 있습니다(Access의 쿼리 또는 Excel의 피벗 테이블 사용). 간단한 부울 플래그 역할을 하는 새 열/필드를 생성하면 데이터 세트를 구별하고 동일한 테이블/문서에 병합할 수 있습니다. 또는 주간(또는 특정 기간) 가져오기에 대한 코드를 적용하여 향후 쿼리에 이 "플래그" 필드를 사용할 수 있습니다.

피벗 테이블은 데이터베이스 쿼리보다 범위 지정 단계에서 더 빠르게 작업할 수 있고 보고/비교 요구 사항을 하나의 보기에서 볼 수 있기 때문에 나의 첫 번째 호출 포트가 될 것입니다.

데이터를 "세척"하여 익명화할 수 있는 경우 보다 구체적인 솔루션에 대한 몇 가지 예를 게시해 주세요.

답변3

Excel 데이터를 레코드세트로 얻을 수 있으므로 쉽게 비교할 수 있습니다.

Dim xldb As New adodb.Connection
Dim xlcmd As New adodb.Command
Dim XL As New adodb.Recordset

With xldb
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=" & FileName & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;ReadOnly=True"";"
    .Open
End With

Set xlcmd.ActiveConnection = xldb
xlcmd.CommandType = adCmdText
xlcmd.CommandText = "Select * from [Sheet1$]"
XL.CursorLocation = adUseClient
XL.CursorType = adOpenDynamic
XL.LockType = adLockOptimistic
XL.Open xlcmd

이제 XL 레코드 세트를 사용하고 이를 검색/단계화하고 정보를 데이터베이스에 배치할 수 있습니다.

관련 정보