SQL Server იყენებს ერთმაგი ბრჭყალების წყვილებს სტრიქონის დასაწყისისა და დასასრულის დასადგენად. მონაცემთა ბაზის ცხრილში „ქალბატონი ბრაუნის ბიჭების“ ჩასმა ვერ მოხერხდება, რადგან სამი ერთმაგი ბრჭყალი გულისხმობს ორ სტრიქონს, რომელთაგან ერთი არასრულია. ბრაუნის შემდეგ აპოსტროფისთვის საჭიროა გაქცევის სიმბოლო. ეს სტატია იკვლევს ამ ანომალიის გადასაჭრელად მორგებული VBA ფუნქციის გამოყენებას.
ეს სტატია ვარაუდობს, რომ მკითხველს აქვს დეველოპერის ლენტი ნაჩვენები და იცნობს VBA რედაქტორს. თუ არა, გთხოვთ Google „Excel Developer Tab“ ან „Excel Code Window“.
ტერმინი „მონაცემთა ბაზა“ აქ ვრცელდება „ინდუსტრიული სიძლიერის“ მონაცემთა ბაზებზე, როგორიცაა SQL Server და ორაკული.
შეგიძლიათ ნახოთ ამ სავარჯიშოში გამოყენებული სამუშაო წიგნის მაგალითი აქ დაწკაპუნებით.
SQL სტრიქონი
SQL ოპერატორში აპოსტროფების (ან ერთჯერადი ბრჭყალების) ჩართვა მონაცემთა ბაზის მენეჯერისგან (ამ შემთხვევაში, O'Dowd სახელისთვის) დაბრუნებულ შემდეგ შეცდომას იწვევს:
საჭიროა გაქცევის სიმბოლო, რომელიც წარმოადგენს ორმაგ აპოსტროფს ერთის ნაცვლად. ამგვარად, O’Dowd მონაცემთა ბაზისთვის მისაღებია. O’Dowd - არა.
Ფუნქცია
იმ შემთხვევაში, თუ ჩაწერის ველები შესაძლოა შეიცავდეს აპოსტროფს, შესაძლებელია შეიქმნას მორგებული ფუნქცია, რომელიც განახლების წინ გააქტიურდება და ერთბრჭყალს ორმაგი ბრჭყალით ჩაანაცვლებს.
- გახსენით ახალი სამუშაო წიგნი;
- დაასახელეთ პირველი ფურცელი „განახლება“ და შეავსეთ შემდეგნაირად, თქვენი საკუთარი მონაცემთა ბაზის სახელის გამოყენებით და ა.შ. ეს ველები გამოყენებული იქნება კავშირის სტრიქონის შესაქმნელად. SQL Server.
- გახსენით კოდის ფანჯარა და ჩასვით მოდული. ADO ბიბლიოთეკების სანახავად გამოიყენეთ მენიუს ელემენტები >Tools >References.
დააკოპირეთ ქვემოთ მოცემული კოდი მოდულში. ეს უკავშირდება მონაცემთა ბაზას.
საჯარო შეერთება როგორც ახალი ADODB.Connection საჯარო rs როგორც ახალი ADODB.Recordset საჯარო strSQL როგორც სტრიქონი საჯარო strკრიტერიუმები, როგორც სტრიქონი Sub ConnectDatabase() თუ connDB.State = 1 მაშინ შეერთება.დახურვა შეცდომის გამო GoTo ErrConnect Dim strDSerring,strW strServer = Sheets("განახლება").Range("B2") strDBase = Sheets("განახლება").Range("B3") strUser = Sheets("განახლება").Range("B4") strPWD = Sheets(" განახლება").Range("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 ავთენტიფიკაციის დასრულება If connDB.ConnectionTimeout = 30 connDB.გახსენით strConnectionstring გასვლა Sub ErrConnect: MsgBion
- დაამატეთ ფუნქცია მოდულში:
ფუნქცია fRemoveApostrophe(strWord As String) Dim n As Integer Dim x As Integer x = 0 n = 0-დან 100-მდე x = InStr(x + 2, strWord, "'") 'აპოსტროფების პოზიციის პოვნა თუ x = 0 მაშინ Exit თუ x > 0 მაშინ strWord = Left(strWord, x - 1) & Chr(39) & Chr(39) & Right(strWord, Len(strWord) - (x)) End If Next n fRemoveApostrophe = strWord End Function
- იგნორირება ფუნქცია.
Sub IgnoreFunction()-ის გამოძახება ConnectDatabase strCriteria = Sheets("Update").Range("B10") strSQL = "ჩასმა tblCrewMember (LastName) მნიშვნელობებში ('" & strCriteria & "')" MsgBox strSQL & ". ეს SQL ჩანაწერი ვერ მოხერხდება; ყურადღება მიაქციეთ სამ აპოსტროფს." Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
- გამოიყენეთ ფუნქცია
Sub UseFunction() Call ConnectDatabase strCriteria = Sheets("Update").Range("B15") strCriteria = fRemoveApostrophe(strCriteria) strSQL = "Insert into tblCrewMember (LastName) values ('" & strCriteria & "')" MsgBox strSQL & ". ეს SQL ჩანაწერი წარმატებით შესრულდება და მონაცემთა ცხრილში გამოჩნდება როგორც O'Dowd." Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
- დაასრულეთ განახლება სამუშაო ფურცელი შემდეგნაირად, დაწყებული უჯრედიდან A8:
- მიანიჭეთ ღილაკები მაკროებს იგნორირება ფუნქცია მდე გამოყენების ფუნქცია შესაბამისად
შედეგები
შეტყობინებების ყუთი აჩვენებს შედეგებს; ამ სავარჯიშოში ფიზიკურად არც ერთი მონაცემთა ბაზა არ არის განახლებული, მაგრამ თუ გსურთ ამის გაკეთება, დარწმუნდით, რომ ველების სახელები თავსებადია თქვენს მონაცემთა ბაზასთან და დაამატეთ გამოიყენეთ VBA განცხადება conndb.execute(strSQL)
Excel-ის ავარიებიდან აღდგენა
Excel-ი მიდრეკილია გაჭედვისკენ, როდესაც თქვენს კომპიუტერს რესურსები ამოეწურება. ამ სავარჯიშოს წერის დროს, Excel-ის ცხრილი, რომელიც ჯერ კიდევ არ იყო შენახული, გაიყინა. კოდის ფანჯარა ნაწილობრივ რეაგირებდა, რამაც სამუშაო წიგნის მთლიანად დახურვის საშუალება მისცა. როგორც აღმოჩნდა, სამუშაო წიგნი ჩვეულებრივად გაიხსნა შინაარსითა და კოდით. დროებითი და საწყისი ფაილების (ძალიან ხშირად) დაზიანების შემთხვევაში, სამუშაოს ხელახლა შესრულება მოუწევდა პრობლემის გადასაჭრელად ხელსაწყოს არარსებობის შემთხვევაში. xlsx დაზიანება. ამ შემთხვევაში მას მცირე მნიშვნელობა ჰქონდა, მაგრამ შეიძლება იყოს პოტენციური კატასტროფა უფრო დიდი სამუშაო წიგნებისთვის.
ავტორი შესავალი:
ფელიქს ჰუკერი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის rar-ის აღდგენა და sql აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად


