როგორ გავექცეთ ციტირებული სტრიქონებს SQL განცხადებისთვის, რომელიც გამოიყენება მონაცემთა ბაზაში Excel VBA-ის საშუალებით

გააზიარე ახლა:

SQL Server იყენებს ცალ ბრჭყალების წყვილებს s-ის ამოსაცნობადtart და სტრიქონის ბოლო. „Mrs Brown's Boys“-ის მონაცემთა ბაზის ცხრილში ჩასმა ვერ მოხერხდება, რადგან სამი ერთეული ბრჭყალები გულისხმობს ორ სტრიქონს, რომელთაგან ერთი არასრულია. აპისთვის საჭიროა გაქცევის სიმბოლოostროფი ბრაუნის შემდეგ. ეს სტატია იკვლევს მორგებული VBA ფუნქციის გამოყენებას ამ ანომალიის მოსაგვარებლად.

ეს სტატია ვარაუდობს, რომ მკითხველს აქვს დეველოპერის ლენტი ნაჩვენები და იცნობს VBA რედაქტორს. თუ არა, გთხოვთ Google „Excel Developer Tab“ ან „Excel Code Window“.

ტერმინი „მონაცემთა ბაზა“ აქ ვრცელდება „ინდუსტრიული სიძლიერის“ მონაცემთა ბაზებზე, როგორიცაა SQL Server მდე Oracle.

შეგიძლიათ ნახოთ ამ სავარჯიშოში გამოყენებული სამუშაო წიგნის მაგალითი აქ დაწკაპუნებით.

SQL სტრიქონი

ჩართვა აპostროფები (ან ცალკეული ციტატები) SQL განაცხადის შიგნით იძლევა შემდეგ შეცდომას, რომელიც დაბრუნებულია მონაცემთა ბაზის მენეჯერისგან (ამ შემთხვევაში, O'Dowd-ის სახელისთვის):შეცდომა დაბრუნდა მონაცემთა ბაზის მენეჯერისგან

საჭიროა გაქცევის პერსონაჟი, არის ორმაგი აპostროფი ერთის ნაცვლად. ამრიგად, O”Dowd მისაღებია მონაცემთა ბაზისთვის. ო'დაუდი არ არის.

Ფუნქცია

სადაც გადაღების ველები შესაძლოა შეიცავდეს აპსostrophe, საბაჟო ფუნქცია შეიძლება შეიქმნას განახლებამდე გასააქტიურებლად, ერთი ციტატის ჩანაცვლება ორმაგი ციტატით.

  1. გახსენით ახალი სამუშაო წიგნი;
  1. დაასახელეთ პირველი ფურცელი „განახლება“ და შეავსეთ შემდეგნაირად, თქვენი საკუთარი მონაცემთა ბაზის სახელის გამოყენებით და ა.შ. ეს ველები გამოყენებული იქნება კავშირის სტრიქონის შესაქმნელად. SQL Server.დაასახელეთ პირველი ფურცელი "განახლება" და შეავსეთ ასე
  2. გახსენით კოდის ფანჯარა და ჩადეთ მოდული. გამოიყენეთ მენიუს ელემენტები > ინსტრუმენტები > ცნობები ADO lib-ის მითითებისთვისrarები.გახსენით კოდის ფანჯარა და ჩადეთ მოდული

დააკოპირეთ ქვემოთ მოცემული კოდი მოდულში. ეს უკავშირდება მონაცემთა ბაზას.

საჯარო შეერთება როგორც ახალი 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
  1. დაამატეთ ფუნქცია მოდულში:
ფუნქცია fRemoveApostrophe(strWord როგორც სტრიქონი) Dim n როგორც მთელი რიცხვი Dim x როგორც მთელი x = 0 For n = 0-დან 100 x = InStr(x + 2, strWord, "'") 'იპოვეთ ap-ის პოზიციაostროფები თუ x = 0, შემდეგ გადით თუ x > 0 შემდეგ strWord = Left(strWord, x - 1) & Chr(39) & Chr(39) & Right(strWord, Len(strWord) - (x)) ბოლოს თუ შემდეგი n fRemoveApostrophe = strWord End ფუნქცია
  1. იგნორირება ფუნქცია.
Sub IgnoreFunction() Call ConnectDatabase strCriteria = Sheets("განახლება").Range("B10") strSQL = "Insert into tblCrewMember (LastName) მნიშვნელობებში ('" & strCriteria & "')" MsgBox strSQL & ". ჩავარდნა; გაითვალისწინეთ სამი აპostrophes." Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
  1. გამოიყენეთ ფუნქცია
Sub UseFunction() Call ConnectDatabase strCriteria = Sheets("განახლება").Range("B15") strCriteria = fRemoveApostrophe(strCriteria) strSQL = "ჩასმა tblCrewMember (LastName) მნიშვნელობებში ('" & strCriteria & "')" MsgBox strSQL & ". ეს SQL ჩანაწერი წარმატებული იქნება და გამოჩნდება მონაცემთა ცხრილში, როგორც O'Dowd." Debug.Print strSQL 'connDB.Execute (strSQL) ბოლო ქვე
  1. დაასრულეთ განახლება სამუშაო ფურცელი შემდეგნაირად, სtarting საკანში A8:შეავსეთ განახლების სამუშაო ფურცელი
  1. მიანიჭეთ ღილაკები მაკროებს იგნორირება ფუნქცია მდე გამოყენების ფუნქცია შესაბამისად

შედეგები

შეტყობინებების ყუთი აჩვენებს შედეგებს; ამ სავარჯიშოში ფიზიკურად არც ერთი მონაცემთა ბაზა არ არის განახლებული, მაგრამ თუ გსურთ ამის გაკეთება, დარწმუნდით, რომ ველების სახელები თავსებადია თქვენს მონაცემთა ბაზასთან და დაამატეთ გამოიყენეთ VBA განცხადება conndb.execute(strSQL)

Excel-ის ავარიებიდან აღდგენა

Excel მიდრეკილია ავარიისკენ, როდესაც თქვენს კომპიუტერს რესურსები ამოიწურება. ამ სავარჯიშოს დაწერის დროს Excel-ის ცხრილი, რომელიც ჯერ არ არის შენახული, გაიყინა. კოდის ფანჯარა ნაწილობრივ პასუხობდა, რაც საშუალებას აძლევდა მთლიანად დახურულიყო სამუშაო წიგნი. როგორც გაირკვა, სამუშაო წიგნაკი ხელახლა გაიხსნა ნორმალურად, შიგთავსით და კოდით დასრულებული. ტემპი ჰქონდაrary და წყაროს ფაილები (ძალიან ხშირად) დაზიანებულია, სამუშაოს ხელახალი შესრულება მოუწევდა გადასაჭრელად ხელსაწყოს არარსებობის შემთხვევაში xlsx დაზიანება. ამ შემთხვევაში მას მცირე მნიშვნელობა ჰქონდა, მაგრამ შეიძლება იყოს პოტენციური კატასტროფა უფრო დიდი სამუშაო წიგნებისთვის.

ავტორი შესავალი:

ფელიქს ჰუკერი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის გამოჯანმრთელება rar და sql აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად

გააზიარე ახლა:

კომენტარები დახურულია.