Սերվերի վերաբերյալ տվյալները կարող են փոփոխվել `ուսումնասիրելով գրառումները« հաճախորդի կողմից »Excel VBA- ում, փոխելով դրանք ըստ անհրաժեշտության և պահպանելով դրանք սերվերում:
Դա անելու ավելի արդյունավետ միջոց, մասնավորապես, եթե տվյալների բազան գտնվում է հեռավոր վայրում և այնտեղ մեծ քանակությամբ երթևեկություն է ներգրավված, «սերվերի կողմից» աշխատանքը կատարելն է: Այս վարժությունը պահանջում է Excel- ի պահեստավորված ընթացակարգ ՝ աշխատակիցներին դասակարգելու տարիքային տիրույթների համաձայն `ըստ նրանց ծննդյան ամսաթվերի (այսինքն` 18-25 տարի, 26-35 տարեկան և այլն) `առանց սերվերի և Excel- ի միջև տվյալների առատ փոխանակման:
Այս հոդվածը ենթադրում է, որ ընթերցողը ցուցադրում է erրագրավորողի ժապավենը և ծանոթ է VBA խմբագրին: Եթե ոչ, խնդրում ենք Google- ի «Excel Developer Tab» կամ «Excel Code Window»:
Theորավարժությունների երեք տարր կա.
- Տվյալների աղյուսակ tbl Աշխատակազմ տվյալների շտեմարանի շրջանակներում Թեստային;
- Պահեստավորված ընթացակարգ SpageRange;
- Excel xlsm, որը մենք կկոչենք xlsm, Excel նիշքի նմուշը կարելի է գտնել այստեղ
Տվյալների աղյուսակ
Ստեղծեք տվյալների շտեմարան SQL Server անվանել Ապստամբ.
Սեղանի համար կազմեք հետևյալ սյունակները 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 | Lohan | 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 | Hoover | S | 2002/12/08 | F | ||
| 2017/05/25 | 9 | Watson | 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
Պահված ընթացակարգը կպահպանվի տվյալների բազայում «mրագրավորվողության» տակ:
Excel vba
Մնում է միայն Excel- ից զանգահարել պահված ընթացակարգը ՝ տրամադրելով այն Աշխատավարձի ամսաթիվ «2017/05/25» պարամետրը: Դուք կնշեք, որ ես պարզապես մուտքագրել եմ տվյալներ Աշխատավարձի ամսաթիվ որպես լար և ոչ թե տարատեսակ ամսաթվերի ձևաչափերով գոտեմարտ: Բավականին պարզ է, որ տողը փոխի ամսաթվի, օգտագործելով Փոխակերպել գործառույթը, եթե Աշխատավարձի ամսաթիվ պետք է օգտագործվի թվաբանական նպատակներով:
Ստեղծեք նոր աշխատանքային գրքույկ: Բացեք VBA կոդի պատուհանը և տեղադրեք մոդուլ:
Կոդի պատուհանի Գործիքներ ընտրացանկից հիշատակեք համապատասխանը Active X 2.nn գրադարան տվյալների օբյեկտների օգտագործումը հեշտացնելու համար:
Կպցրեք հետևյալ կոդը օրենսգրքի պատուհանում: Ակտիվացումից հետո սա միանալու է 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-ը հաճախ չի կարողանում վերականգնել վնասված աշխատանքային գրքերը. նման դեպքում աշխատանքային գրքի ստեղծումից ի վեր կատարված ողջ աշխատանքը կարող է անդառնալիորեն կորել, եթե դուք չունեք գործիք, որը կարող է... վերականգնել Excel- ը xlsx կամ xlsm ֆայլեր:
Հեղինակի ներածություն.
Ֆելիքս Հուքերը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում rar-ի վերանորոգում և sql վերականգնման ծրագրային արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com
