SQL Server s- ները պարզելու համար օգտագործում է զույգ գների մեջբերումներtarտ և լարի վերջ: «Տիկին Բրաունի տղաները» տվյալների շտեմարանի աղյուսակում տեղադրելը ձախողվելու է, քանի որ երեք չակերտները ենթադրում են երկու տող, որոնցից մեկը թերի է: Ապրիլի համար պահանջվում է փախուստի նիշostՌոֆեն ՝ Բրաունից հետո: Այս հոդվածը ուսումնասիրում է VOM- ի հարմարեցված գործառույթի օգտագործումը `այս անոմալիան լուծելու համար:
Այս հոդվածը ենթադրում է, որ ընթերցողը ցուցադրում է erրագրավորողի ժապավենը և ծանոթ է VBA խմբագրին: Եթե ոչ, խնդրում ենք Google- ի «Excel Developer Tab» կամ «Excel Code Window»:
«Տվյալների շտեմարան» տերմինը վերաբերում է նման «արդյունաբերական ուժի» շտեմարաններին SQL Server և Oracle.
Այս վարժությունում օգտագործված աշխատանքային գրքի օրինակ կարելի է գտնել այստեղ.
SQL տողը
ԱպostSQL հայտարարության մեջ գտնվող rophes (կամ առանձին գնանշումներ) ապահովում է տվյալների շտեմարանի կառավարչից վերադարձված հետևյալ սխալը (այս դեպքում O'Dowd անվանման համար).
Անհրաժեշտ է փախուստի բնույթ ՝ լինելով կրկնակի ապostռոֆեն ՝ մեկի փոխարեն: Այսպիսով, O ”Dowd- ն ընդունելի է տվյալների շտեմարանի համար: Օ'Դոուդը չէ:
Գործառույթը
Որտեղ գրավման դաշտերը կարող են ենթադրաբար պարունակել apostrophe, թարմացումը կատարելուց առաջ կարելի է կառուցել հատուկ գործառույթ ՝ փոխարինելով մեկ առաջարկը կրկնակի առաջարկով:
- Բացել նոր աշխատանքային գրքույկ;
- Առաջին թերթը անվանեք «Թարմացնել» և լրացնել հետևյալ կերպ ՝ օգտագործելով ձեր սեփական տվյալների շտեմարանի անունը և այլն: Այս դաշտերը կօգտագործվեն կապի տող կառուցելու համար SQL Server.
- Բացեք ծածկագրի պատուհանը և տեղադրեք մոդուլ: Օգտագործեք ընտրացանկի տարրերը> Գործիքներ> Հղումներ `ADO lib- ին հղելու համարraries
Պատճենեք ներքևի կոդը մոդուլի մեջ: Սա միանում է տվյալների բազային:
Public connDB As New ADODB.Connection Public rs As New ADODB.Recordset Public strSQL As String Public strCriteria As String Sub ConnectDatabase () Եթե connDB.State = 1 Ապա connDB. Փակել սխալը GoTo ErrConnect Dim strServer, strDBase, strUser, strPWD As strServer = Աղյուսակներ («Թարմացնել»). Շարք («B2») strDBase = Թերթեր («Թարմացնել»): Լայնություն («B3») strUser = Թերթեր («Թարմացնել»): Շարք ("B4") strPWD = Թերթեր (" Թարմացնել "). Շարքը (" B5 ") Եթե strPWD>" "" Ապա strConnectionstring = "DRIVER = {SQL Server}; Server = "& strServer &"; Database = "& strDBase &"; Uid = "& strUser &"; Pwd = "& strPWD &"; Միացման ժամկետը = 30; "Այլ strConnectionstring =" DRIVER = {SQL Server}; SERVER = "& strServer &"; Trusted_Connection = այո; DATABASE = "& strDBase 'Windows- ի վավերացումը Վերջ Եթե connDB.ConnectionTimeout = 30 connDB.Open strConnectionstring Ելք Ենթաբաժնի ErrConnect: MsgBox Err.Description End Sub
- Ավելացրեք գործառույթը մոդուլի մեջ.
Գործառույթը fRemoveApostrophe (strWord As String) Dim n As Integer Dim x As Integer x = 0 For n = 0 To 100 x = InStr (x + 2, strWord, "'"))' Գտեք ap- ի դիրքըostrophes Եթե x = 0 Ապա դուրս եկեք If x> 0 Ապա strWord = Ձախ (strWord, x - 1) & Chr (39) & Chr (39) & Աջ (strWord, Len (strWord) - (x)) Վերջ եթե Հաջորդ n fRemoveApostrophe = str Բառի վերջի գործառույթը
- Անտեսել գործառույթը:
Ենթա IgnoreFunction () Callանգահարեք ConnectDatabase strCriteria = թերթեր («Թարմացնել»): Range («B10») strSQL = "Տեղադրեք tblCrewMember (Ազգանուն) արժեքների մեջ ('" & strCriteria & "')" MsgBox strSQL & ": Այս SQL գրառումը ձախողում; նշեք երեք apostrophes. "Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
- Օգտագործեք գործառույթը
Ենթօգտագործման գործառույթ () Callանգահարեք ConnectDatabase strCriteria = Sheets («Թարմացնել»): Range («B15») strCriteria = fRemoveApostrophe (strCriteria) strSQL = "Inետեղել tblCrewMember (Ազգանուն) արժեքները ('" & strCriteria & "')" MsgBox strSQL & ": SQL- ի այս գրառումը հաջողության կհասնի, և տվյալների բազայում կհայտնվի որպես O'Dowd: Սխալման սխալ. Տպել strSQL 'connDB.Execute (strSQL) Ավարտել ենթ
- Ավարտելու Թարմացումներ աշխատանքային թերթը հետևյալովtarխցում A8:
- Կոճակները վերագրեք մակրոների Անտեսել գործառույթը և Օգտագործման գործառույթ համապատասխանաբար
Արդյունքները
Հաղորդագրության տուփը ցույց կտա արդյունքները. Այս վարժությունում ոչ մի շտեմարան ֆիզիկապես թարմացված չէ, բայց, եթե ցանկանում եք դա անել, համոզվեք, որ դաշտի անունները համատեղելի են ձեր տվյալների բազայի հետ և ավելացրեք օգտագործեք VBA հայտարարությունը conndb.execute (strSQL)
Excel- ի վթարներից վերականգնում
Excel- ը հակված է վթարի, երբ ձեր համակարգիչը ռեսուրսներ է ունենում: Այս վարժությունը գրելու ընթացքում Excel- ի աղյուսակը, որը դեռ չպահված է, սառեցրեց: Կոդի պատուհանը մասամբ արձագանքող էր ՝ թույլ տալով փակել աշխատանքային գրքույկն ամբողջությամբ: Ինչպես պարզվեց, աշխատանքային գիրքը նորմալ վերաբացվեց ՝ բովանդակությունն ու ծածկագիրը լրացված: Ունեցել է տեմպըrary- ն և աղբյուրի ֆայլերը (շատ հաճախ) վնասվել են, աշխատանքը պետք է վերափոխվեր լուծման գործիք չլինելու դեպքում xlsx վնաս, Այս դեպքում դա քիչ նշանակություն ուներ, բայց կարող էր պոտենցիալ աղետ լինել ավելի մեծ աշխատանքային գրքերի համար:
Հեղինակի ներածություն.
Ֆելիքս Հուքերը տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում վերականգնել rar և sql վերականգնման ծրագրային արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com


