서버의 데이터는 Excel VBA에서 '클라이언트 쪽'레코드를 검사하고 필요에 따라 변경 한 다음 다시 서버에 저장하여 수정할 수 있습니다.
특히 데이터베이스가 원격 위치에 있고 많은 트래픽이 관련된 경우이를 수행하는보다 효율적인 방법은 '서버 측'작업을 수행하는 것입니다. 이 연습에서는 Excel의 저장 프로 시저를 호출하여 서버와 Excel간에 많은 데이터를 교환하지 않고 직원을 생년월일 (예 : 18-25 세, 26-35 세 등)에 따라 연령 범위로 분류합니다.
이 문서에서는 독자에게 개발자 리본이 표시되고 VBA 편집기에 익숙하다고 가정합니다. 그렇지 않은 경우 Google "Excel 개발자 탭"또는 "Excel 코드 창"을 사용하십시오.
연습에는 세 가지 요소가 있습니다.
- 데이터 테이블 tbl직원 데이터베이스 내 테스트DB;
- 저장 프로 시저 기간 범위;
- Excel xlsm, 우리는 xlsm. 샘플 Excel 파일을 찾을 수 있습니다. 여기에서 확인하세요
데이터 표
에서 데이터베이스 만들기 SQL Server 라는 DB테스트.
테이블에 대해 다음 열 설정 tbl직원.

다음을 테이블에 복사하십시오.
| 2017/05/25 | 1 | 갈색 | J | 1946/12/02 | M | ||
| 2017/05/25 | 2 | 스마트 한 | A | 1976/03/26 | F | ||
| 2017/05/25 | 3 | 크루즈 | T | 1962/07/03 | M | ||
| 2017/05/25 | 4 | 로한 | L | 1986/07/02 | F | ||
| 2017/05/25 | 5 | 프레드릭센 | F | 1964/03/15 | M | ||
| 2017/05/25 | 6 | 스나이더 | L | 1968/07/05 | F | ||
| 2017/05/25 | 7 | 립니키 | J | 1983/11/25 | M | ||
| 2017/05/25 | 8 | 후버 청소기로 청소하다 | S | 2002/12/08 | F | ||
| 2017/05/25 | 9 | 왓슨 | E | 1990/04/15 | F |
저장 프로 시저.
TestDB에 대해이 스크립트를 실행하여 저장 프로 시저를 만듭니다.
USE [TestDB] GO /****** Object: StoredProcedure [dbo].[spAgeRange] Script Date: 2017/05/10 12:16:28 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[spAgeRange] @PayrollDate varchar(50) AS BEGIN SET NOCOUNT ON; UPDATE tblStaff SET Age = CONVERT(int, DATEDIFF(day, DateOfBirth, GETDATE()) / 365.25, 0) WHERE tblStaff.PayrollDate = @PayrollDate Update tblStaff set AgeRange = '>56' where Age >= 56 and PayrollDate = @PayrollDate Update tblStaff set AgeRange = '46 to 55' where Age >= 46 and Age < 56 and PayrollDate = PayrollDate Update tblStaff set AgeRange = '39 to 45' where Age >= 39 and Age < 46 and PayrollDate = @PayrollDate Update tblStaff set AgeRange = '31 to 38' where Age >= 30 and Age < 39 and PayrollDate = @PayrollDate Update tblStaff set AgeRange = '25 to 30' where Age >= 25 and Age < 30 and PayrollDate = @PayrollDate Update tblStaff set AgeRange = '18 to 24' where Age >= 18 and Age < 25 and PayrollDate = @PayrollDate Update tblStaff set AgeRange = '<18' where Age < 18 and PayrollDate = @PayrollDate END
저장 프로시 저는 데이터베이스의 "Programmability"아래에 저장됩니다.
Excel VBA
남은 것은 Excel에서 저장 프로 시저를 호출하는 것입니다. 급여일 "2017/05/25"의 매개 변수. 내가 단순히 데이터를 입력했다는 것을 알 수 있습니다. 급여일 다양한 날짜 형식과 씨름하기보다는 문자열로. 다음을 사용하여 문자열을 날짜로 변환하는 것은 간단합니다. 개 심자 기능 급여일 산술 목적으로 사용됩니다.
새 통합 문서를 만듭니다. VBA 코드 창을 열고 모듈을 삽입하십시오.
코드 창의 도구 메뉴에서 적절한 활성 X 2.nn library 데이터 개체의 사용을 용이하게합니다.
다음 코드를 코드 창에 붙여 넣습니다. 활성화되면 다음에 연결됩니다. SQL Server, ConnectDatabase 하위 프로 시저에 따라
'All "public" in case the code is spread over several modules.
Public connDB As New ADODB.Connection
Public rs As New ADODB.Recordset
Public strSQL As String
Public strConnectionstring As String
Public strServer As String
Public strDBase As String
Public strUser As String
Public strPwd As String
Public PayrollDate As String
Sub WriteStoredProcedure()
PayrollDate = "2017/05/25"
Call ConnectDatabase
On Error GoTo errSP
strSQL = "EXEC spAgeRange '" & PayrollDate & "'"
connDB.Execute (strSQL)
Exit Sub
errSP:
MsgBox Err.Description
End Sub
Sub ConnectDatabase()
If connDB.State = 1 Then connDB.Close
On Error GoTo ErrConnect
strServer = "SERVERNAME" ‘The name or IP Address of the SQL Server
strDBase = "TestDB"
strUser = "" 'leave this blank for Windows authentication
strPwd = ""
If strPwd > "" Then
strConnectionstring = "DRIVER={SQL Server};Server=" & strServer & ";Database=" & strDBase & ";Uid=" & strUser & ";Pwd=" & strPwd & ";Connection Timeout=30;"
Else
strConnectionstring = "DRIVER={SQL Server};SERVER=" & strServer & ";Trusted_Connection=yes;DATABASE=" & strDBase 'Windows authentication
End If
connDB.ConnectionTimeout = 30
connDB.Open strConnectionstring
Exit Sub
ErrConnect:
MsgBox Err.Description
End Sub
Sheet1에 버튼을 추가하고 하위 절차“쓰기 저장 프로시저"
결과
버튼을 누른 다음 연령 및 연령 범위로 업데이트해야하는 tblStaff를 확인합니다. 처리는 서버 측에서 수행되었습니다.
손상된 통합 문서 복구
Excel이 충돌하면 통합 문서의 유일한 복사본을 가져갈 수 있습니다. 대부분의 경우 Excel에서 손상된 통합 문서를 복구하지 못하는 경우가 많습니다. 이 경우 통합 문서 생성 이후 수행 된 모든 작업이 취소 될 수 있습니다.cab리 엘ost, 도구가없는 경우 Excel 수리 xlsx 또는 xlsm 파일.
저자 소개 :
Felix Hooker는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. rar 수리 및 SQL 복구 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM
