SQL Server ларды анықтау үшін жұп тырнақшаларды қолданадыtart және жолдың соңы. «Миссис Браунның ұлдарын» мәліметтер базасына енгізу сәтсіздікке ұшырайды, өйткені үш жеке дәйексөз екі жолды білдіреді, олардың біреуі толық емес. Ap үшін қашу сипаты қажетostБрауннан кейінгі роф. Бұл мақалада осы ауытқуды жою үшін теңшелген VBA функциясын қолдану туралы айтылады.
Бұл мақала оқырманға Әзірлеуші лентасы көрсетілген және VBA редакторымен таныс деп болжайды. Олай болмаса, Google-дің «Excel Developer Tab» немесе «Excel Code Window» сұраймыз.
Мұндағы «мәліметтер базасы» термині «өнеркәсіптік-беріктік» сияқты мәліметтер базасына қатысты SQL Server және Oracle.
Осы жаттығуда қолданылатын жұмыс кітабының үлгісін табуға болады Мұнда.
SQL жолдары
ҚосылуostSQL операторының ішіндегі арқандар (немесе бір тырнақшалар) мәліметтер базасының менеджерінен қайтарылған келесі қатені қамтамасыз етеді (бұл жағдайда О'Доуд аты үшін):
Қашу кейіпкері қажет, қосарланған апostжалғыз рофтың орнына. Осылайша, O ”Dowd дерекқорға қолайлы. О'Доуд емес.
Функция
Түсіру өрістерінде ап-ап болуы мүмкінostrophe, жаңартылғанға дейін бір функцияны қосуға болады, бір тырнақшаны екі есеге ауыстырады.
- Жаңа жұмыс кітабын ашыңыз;
- Бірінші параққа «Жаңарту» деп ат қойыңыз және мәліметтер базасының атауын пайдалана отырып, келесідей толтырыңыз, және т.с.с. өрістер келесіге байланыс тізбегін құру үшін пайдаланылады: SQL Server.
- Код терезесін ашып, модуль салыңыз. ADO lib сілтемесі үшін мәзір элементтерін> Құралдар> Сілтемелерді пайдаланыңызrarиес.
Төмендегі кодты модульге көшіріңіз. Бұл дерекқорға қосылады.
Public ADDB.Connection Public rs New ADODB.Recordset ретінде Public strSQL As String Public strCriteria As String Sub ConnectDatabase () If the connDB.State = 1 Содан кейін connDB.Close On Error GoTo ErrConnect Dim strServer, strDBase, strUser, strPWD As strServer = Sheets («Жаңарту»). Диапазон («B2») strDBase = Sheets («Жаңарту»). Диапазон («B3») strUser = Sheets («Жаңарту»). Диапазон («B4») strPWD = Sheets (« Диапазон («B5») Егер strPWD> «» Сонда 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 аутентификациясының аяқталуы Егер connDB.ConnectionTimeout = 30 connDB.Open strConnectionstring шығу Sub ErrConnect: MsgBox Err.Сипаттама соңы
- Функцияны модульге қосыңыз:
FRemoveAp функциясыostrophe (strWord As String) Dim n Integer ретінде Dim x Integer x = 0 for n = 0 ден 100 x = InStr (x + 2, strWord, «'»)' 'позициясын табуostарқандар Егер x = 0 Содан кейін шығу үшін If x> 0 Содан кейін strWord = Left (strWord, x - 1) & Chr (39) & Chr (39) & Right (strWord, Len (strWord) - (x)) End Егер Келесі n fRemoveApostrophe = strWord соңы функциясы
- Функцияны елемеңіз.
Sub IgnoreFunction () ConnectDatabase шақыру strCriteria = Sheets («Жаңарту»). Диапазон («B10») strSQL = «tblCrewMember (LastName) мәндеріне енгізу ('» & strCriteria & «')» MsgBox strSQL & «. Бұл SQL жазбасы сәтсіздік; үш апқа назар аударыңызost«Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
- Функцияны қолданыңыз
Sub UseFunction () ConnectDatabase шақыру strCriteria = Sheets («Жаңарту»). Диапазон («B15») strCriteria = fRemoveApostrophe (strCriteria) strSQL = «tblCrewMember (LastName) мәндеріне енгізу ('» & strCriteria & «')» MsgBox strSQL & «. Бұл SQL жазбасы сәтті болады және деректер базасында O'Dowd ретінде пайда болады.» Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
- Аяқтау Жаңарту жұмыс парағы келесідей, сtarжасуша A8:
- Түймелерді макростарға тағайындаңыз ЕлемеуФункция және UseFunction репективті түрде
Нәтижелері
Хабарлама терезесінде нәтижелер көрсетіледі; Бұл жаттығуда ешқандай мәліметтер базасы физикалық тұрғыдан жаңартылмайды, бірақ егер сіз мұны қаласаңыз, өріс атауларының сіздің мәліметтер базаңызбен үйлесімді болуын қамтамасыз етіңіз және оған қосылыңыз VBA conndb.execute (strSQL)
Excel апаттарынан қалпына келтіру
Компьютерде ресурстар жетіспейтін кезде Excel жұмысына жиі ұшырайды, осы жаттығуды жазу кезінде Excel электрондық кестесі сақталмаған күйінде қатып қалады. Код терезесі ішінара жауап берді, бұл жұмыс кітабын тұтастай жабуға мүмкіндік берді. Белгілі болғандай, жұмыс кітабы мазмұны мен коды толығымен қайтадан ашылды. Темп болдыrary және бастапқы файлдар зақымдалды (өте жиі), егер шешу құралы болмаса, жұмысты қайта жасау керек еді xlsx зақымдануы. Бұл жағдайда оның маңызы аз болды, бірақ үлкен жұмыс кітаптары үшін апат болуы мүмкін.
Автордың кіріспесі:
Феликс Хукер - деректерді қалпына келтіру бойынша сарапшы DataNumen, Соның ішінде деректерді қалпына келтіру технологиялары бойынша әлемдік көшбасшы болып табылатын Inc. қалпына келтіру rar және SQL қалпына келтіру бағдарламалық жасақтама өнімдері. Қосымша ақпарат алу үшін кіріңіз WWW.datanumen.com


