Excel VBA-ээр дамжуулан мэдээллийн санд ашигладаг SQL мэдэгдэлд иш татсан мөрүүдийг хэрхэн яаж зугтах вэ

Одоо хуваалцах:

SQL Server с-ийг тодорхойлохын тулд хос эшлэлийг ашигладагtart ба мөрний төгсгөл. Мэдээллийн сангийн хүснэгтэд 'Хатагтай Браун Хөвгүүд' оруулах нь бүтэлгүйтэх тул гурван ганц ишлэл нь хоёр мөрийг агуулж байгаагийн нэг нь дутуу байна. Ап-д зугтах тэмдэгт шаардлагатайostБрауны дараа. Энэхүү нийтлэл нь энэхүү гажигийг арилгахын тулд өөрчилсөн VBA функцийг ашиглах талаар судалж үзсэн болно.

Энэ нийтлэл нь уншигчдад Developer туузыг харуулсан бөгөөд VBA редакторыг сайн мэддэг гэж үзнэ. Хэрэв үгүй ​​бол Google-ийн “Excel Developer Tab” эсвэл “Excel Code Window” -ийг ашиглана уу.

"Мэдээллийн сан" гэсэн нэр томъёо нь "аж үйлдвэрийн хүч чадал" гэх мэт мэдээллийн санд хамаарна SQL Server болон Oracle.

Энэ дасгалд ашигласан ажлын номны жишээг олж болно энд.

SQL мөр

Аппликейшн оруулахostSQL мэдэгдлийн доторх олс (эсвэл ганц ишлэл) нь мэдээллийн баазын менежерээс буцааж өгсөн дараахь алдааг өгдөг (энэ тохиолдолд О'Доуд нэрний хувьд):Мэдээллийн сангийн менежерээс гарсан алдаа

Давхар ап байх тул зугтах дүр хэрэгтэйostцорын ганц оронд. Тиймээс O ”Dowd нь мэдээллийн санд хүлээн зөвшөөрөгдөхүйц юм. О'Доуд тийм биш.

Чиг үүрэг

Хадгалах талбарууд нь ap-ийг агуулсан байж магадгүй юмostrophe, өөрчлөн тохируулсан функцийг шинэчлэхээс өмнө галлаж, нэг үнийн саналыг хоёр дахин орлуулж болно.

  1. Шинэ ажлын дэвтэр нээх;
  1. Эхний хуудсыг "Шинэчлэх" гэж нэрлээд, өгөгдлийн сангийнхаа нэрийг ашиглан дараах байдлаар бөглөнө үү. Эдгээр талбарууд нь холболтын мөрийг үүсгэхэд ашиглагдах болно. SQL Server.Эхний хуудсыг "Шинэчлэх" гэж нэрлээд, үүнийг гүйцээнэ үү
  2. Кодын цонхыг нээгээд модулийг оруулна уу. ADO lib-ийг лавлахын тулд цэсийн зүйл> Tools> Reference-ийг ашиглана ууrarионууд.Кодын цонхыг нээгээд модуль оруулна уу

Доорх кодыг модульд хуулж ав. Энэ нь мэдээллийн баазтай холбогддог.

Public connDB As New ADODB.Connection Public rs New ADODB.Recordset Public strSQL As String Public strCriteria As String Sub ConnectDatabase () If connDB.State = 1 Дараа нь connDB.Close on алдаа GoTo ErrConnect Dim strServer, strDBase, strUser, strPWD As strServer = Sheets ("Update"). Range ("B2") strDBase = Sheets ("Update"). Range ("B3") strUser = Sheets ("Update"). Range ("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 Exit Sub ErrConnect: MsgBox Err. Тодорхойлолтын төгсгөл дэд
  1. Модульд функцийг нэмэх:
FRemoveAp функцostrophe (strWord As String) Dim n Integer Dim x As Integer x = 0 For n = 0 to 100 x = InStr (x + 2, strWord, "'")' 'байр суурийг олохostхэрвээ x = 0 байвал Дараа нь For If x> 0 Дараа нь strWord = Left (strWord, x - 1) & Chr (39) & Chr (39) & Right (strWord, Len (strWord) - (x)) End End Дараа нь n fRemoveApostrophe = strWord төгсгөлийн функц
  1. Функцийг үл тоомсорлох.
Sub IgnoreFunction () ConnectDatabase руу залгах strCriteria = Sheets ("Update"). Range ("B10") strSQL = "tblCrewMember (LastName) утгуудад оруулах ('" & strCriteria & "')" MsgBox strSQL & ". Энэ SQL оруулга бүтэлгүйтэх; гурван ap тэмдэглэost"Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
  1. Функцийг ашиглана уу
Sub UseFunction () ConnectDatabase руу залгах strCriteria = Sheets ("Update"). Range ("B15") strCriteria = fRemoveApostrophe (strCriteria) strSQL = "tblCrewMember (LastName) утгуудад оруулах ('" & strCriteria & "')" MsgBox strSQL & ". Энэ SQL оруулалт амжилттай болж, өгөгдөлд өгөгдөлд O'Dowd нэрээр гарч ирнэ." Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
  1. Дуусгах шинэчлэх дараах байдлаар ажлын хуудас, сtarэсийг сонсох A8:Шинэчлэх ажлын хуудсыг бөглөнө үү
  1. Товчлууруудыг макро руу хуваарилах Үл тоомсорлох болон UseFunction репектив байдлаар

Үр дүн

Зурвасын хайрцаг нь үр дүнг харуулах болно; Энэ дасгалд ямар ч мэдээллийн баазыг физик байдлаар шинэчилдэггүй боловч хэрэв та үүнийг хийхийг хүсвэл талбарын нэрсээ мэдээллийн баазтайгаа нийцэж байгаа эсэхийг шалгаад VBA-ийн мэдэгдлийг ашиглана уу conndb.execute (strSQL)

Excel-ийн сүйрлээс сэргээх

Таны компьютер нөөц хомсдох үед Excel програм уналтад өртөмтгий байдаг бөгөөд энэ дасгалыг бичиж байх үед Excel-ийн хүснэгт хадгалагдаагүй хэвээр үлджээ. Кодын цонх нь хэсэгчлэн хариу өгч, ажлын номыг бүхэлд нь хаах боломжийг олгосон. Үүний дараа ажлын ном нь агуулга, кодын хамт хэвийн байдлаар дахин нээгдэв. Темп байсанrary ба эх файлууд (ихэвчлэн байнга) эвдэрсэн тул шийдвэрлэх хэрэгсэл байхгүй тохиолдолд ажлыг дахин хийх шаардлагатай байсан xlsx гэмтэл. Энэ тохиолдолд энэ нь ач холбогдол багатай байсан боловч илүү том ажлын дэвтэрт гамшиг учруулж болзошгүй юм.

Зохиогчийн танилцуулга:

Феликс Хүүкер бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. сэргээх rar болон sql сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com

Одоо хуваалцах:

Тайлбарууд нь хаалттай байна.