Excel VBA မှတဆင့် Database တွင်အသုံးပြုသော SQL Statement အတွက် Quoted Strings မှ မည်သို့လွတ်မြောက်မည်နည်း။

ယခုမျှဝေပါ-

SQL Server string တစ်ခုရဲ့ အစနဲ့ အဆုံးကို ဖော်ထုတ်ဖို့ single quotes အတွဲတွေကို အသုံးပြုပါတယ်။ single quotes သုံးခုက string နှစ်ခုကို ဆိုလိုပြီး တစ်ခုက မပြည့်စုံဘူးလို့ ဆိုလိုတဲ့အတွက် 'Mrs Brown's Boys' ကို database table ထဲ ထည့်တာ မအောင်မြင်ပါဘူး။ Brown ရဲ့နောက်က apostrophe အတွက် escape character လိုအပ်ပါတယ်။ ဒီဆောင်းပါးက ဒီ anomaly ကို ဖြေရှင်းဖို့ စိတ်ကြိုက်ပြင်ဆင်ထားတဲ့ VBA function အသုံးပြုပုံကို လေ့လာထားပါတယ်။

ဤဆောင်းပါးသည် စာဖတ်သူတွင် Developer ribbon ကိုပြသထားပြီး VBA Editor နှင့် ရင်းနှီးသည်ဟု ယူဆပါသည်။ မဟုတ်ပါက၊ ကျေးဇူးပြု၍ Google “Excel Developer Tab” သို့မဟုတ် “Excel Code Window”။

ဤနေရာတွင် "ဒေတာဘေ့စ်" ဟူသောအသုံးအနှုန်းသည် "စက်မှုစွမ်းအား" ကဲ့သို့သော ဒေတာဘေ့စ်များနှင့် သက်ဆိုင်ပါသည်။ SQL Server နှင့် Oracle။

ဤလေ့ကျင့်ခန်းတွင်အသုံးပြုသော workbook ၏ဥပမာကိုတွေ့နိုင်သည်။ ဒီမှာ.

SQL စာတန်း

SQL ဖော်ပြချက်အတွင်း apostrophe (သို့မဟုတ် single quotes) ထည့်သွင်းခြင်းသည် database manager မှ ပြန်ပေးသော အောက်ပါ error ကို ဖြစ်စေသည် (ဤကိစ္စတွင် O'Dowd အမည်အတွက်)။ဒေတာဘေ့စ်မန်နေဂျာမှ Error ပြန်လာသည်။

apostrophe တစ်ခုတည်းမဟုတ်ဘဲ double apostrophe ဖြစ်တဲ့အတွက် escape character လိုအပ်ပါတယ်။ ဒါကြောင့် O”Dowd ကို database က လက်ခံပါတယ်။ O'Dowd ကတော့ လက်မခံပါဘူး။

အဆိုပါ function ကို

capture field များတွင် apostrophe ပါဝင်နိုင်သည်ဟု ယူဆရသည့်နေရာများတွင်၊ update မလုပ်မီ fire လုပ်ရန် custom function တစ်ခုကို တည်ဆောက်နိုင်ပြီး single quote ကို double quote ဖြင့် အစားထိုးနိုင်သည်။

  1. အလုပ်စာအုပ်အသစ်ကိုဖွင့်ပါ။
  1. သင်၏ကိုယ်ပိုင်ဒေတာဘေ့စ်အမည်၊ စသည်ဖြင့် ပထမစာမျက်နှာကို “အပ်ဒိတ်” ဟု အမည်ပေးပြီး အောက်ပါအတိုင်း ဖြည့်စွက်ပါ။ ဤအကွက်များကို ချိတ်ဆက်မှုစာကြောင်းတစ်ခု တည်ဆောက်ရန်အတွက် အသုံးပြုပါမည်။ SQL Server.ပထမစာရွက်ကို "အပ်ဒိတ်" ဟု အမည်ပေးပြီး ဤအတိုင်း ဖြည့်စွက်ပါ။
  2. ကုဒ်ဝင်းဒိုးကိုဖွင့်ပြီး မော်ဂျူးတစ်ခုထည့်ပါ။ မီနူးပစ္စည်းများ >ကိရိယာများ >ရည်ညွှန်း ADO လီဘရာစီယာများသို့ ရည်ညွှန်းရန် ရည်ညွှန်းချက်များကို အသုံးပြုပါ။Code Window ကိုဖွင့်ပြီး Module တစ်ခုထည့်ပါ။

အောက်ပါကုဒ်ကို module ထဲသို့ကူးထည့်ပါ။ ၎င်းသည် ဒေတာဘေ့စ်သို့ ချိတ်ဆက်သည်။

Public connDB As New ADODB.Connection Public rs As New ADODB.Recordset Public strSQL As String Public strCriteria As String Sub ConnectDatabase() If connDB.State = 1 ထို့နောက် connDB.Close On Error GoTo ErrConnect Dim strServer, strDBase, strUser, strPWD As String strServer = Sheets("Update").Range("B2") strDBase = Sheets("Update").Range("B3") strUser = Sheets("Update").Range("B4") strPWD = Sheets(" Update")။Range("B5") အကယ်၍ strPWD > "" ထို့နောက် strConnectionstring = "DRIVER={SQL Server};Server=" & strServer & ";Database=" & strDBase & ";Uid=" & strUser & ";Pwd=" & strPWD & ";Connection Timeout=30;" အခြား strConnectionstring = "DRIVER={SQL Server};SERVER=" & strServer & ";Trusted_Connection=yes;DATABASE=" & strDBase 'Windows စစ်မှန်ကြောင်းအထောက်အထားပြခြင်းပြီးဆုံးပါက connDB.ConnectionTimeout=30 connDB.Open strConnectionstring ထွက်ရန် Sub ErrConnect- MsgBox Err.Description End Sub
  1. လုပ်ဆောင်ချက်ကို module ထဲသို့ထည့်ပါ။
လုပ်ဆောင်ချက် fRemoveApostrophe(strWord As String) Dim n As Integer Dim x As Integer x = 0 for n = 0 မှ 100 အထိ x = InStr(x + 2, strWord, "'") 'apostrophe များ၏ နေရာကို ရှာပါ။ x = 0 ဖြစ်လျှင် x > 0 ဖြစ်လျှင် ထွက်ပါ။ ထို့နောက် strWord = Left(strWord, x - 1) & Chr(39) & Chr(39) & Right(strWord, Len(strWord) - (x)) End If Next n fRemoveApostrophe = strWord End လုပ်ဆောင်ချက်
  1. လုပ်ဆောင်ချက်ကို လျစ်လျူရှုပါ။
Sub IgnoreFunction() ConnectDatabase ကိုခေါ်ပါ strCriteria = Sheets("Update").Range("B10") strSQL = "tblCrewMember (LastName) တန်ဖိုးများထဲသို့ထည့်ပါ ('" & strCriteria & "')" MsgBox strSQL & ". ဤ SQL entry သည် မအောင်မြင်ပါ။ apostrophe သုံးခုကို သတိပြုပါ။" Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
  1. function ကိုသုံးပါ။
Sub UseFunction() ConnectDatabase ကိုခေါ်ပါ strCriteria = Sheets("Update").Range("B15") strCriteria = fRemoveApostrophe(strCriteria) strSQL = "tblCrewMember (LastName) တန်ဖိုးများထဲသို့ထည့်ပါ ('" & strCriteria & "')" MsgBox strSQL & ". ဤ SQL entry သည် အောင်မြင်မည်ဖြစ်ပြီး datatable တွင် O'Dowd အဖြစ်ပေါ်လာလိမ့်မည်။" Debug.Print strSQL 'connDB.Execute (strSQL) End Sub
  1. အဆိုပါဖြည့်စွက် Update ကို cell မှစတင်၍ worksheet ကို အောက်ပါအတိုင်း A8:Update Worksheet ကိုဖြည့်ပါ။
  1. ခလုတ်များကို မက်ခရိုသို့ သတ်မှတ်ပါ။ လျစ်လျူရှုသောလုပ်ဆောင်ချက် နှင့် လုပ်ဆောင်ချက် အသီးသီး

ရလဒ်များ

မက်ဆေ့ချ်ဘောက်စ်တစ်ခုသည် ရလဒ်များကို ပြသမည်ဖြစ်သည်။ ဤလေ့ကျင့်ခန်းတွင် ဒေတာဘေ့စ်ကို ရုပ်ပိုင်းဆိုင်ရာ မွမ်းမံထားခြင်း မရှိသော်လည်း၊ ထိုသို့ပြုလုပ်လိုပါက၊ အကွက်အမည်များသည် သင့်ဒေတာဘေ့စ်နှင့် ကိုက်ညီမှုရှိမရှိ သေချာစေရန်၊ VBA ထုတ်ပြန်ချက် conndb.execute(strSQL) ကို အသုံးပြုပါ။

Excel ပျက်စီးမှုများမှ ပြန်လည်ရယူခြင်း။

သင့်ကွန်ပျူတာမှာ အရင်းအမြစ်တွေ ကုန်ဆုံးသွားတဲ့အခါ Excel ဟာ crash ဖြစ်တတ်ပါတယ်။ ဒီလေ့ကျင့်ခန်းကို ရေးသားနေစဉ်မှာ Excel ရဲ့ spreadsheet ဟာ မသိမ်းဆည်းရသေးဘဲ ရပ်သွားခဲ့ပါတယ်။ Code window ဟာ တစ်စိတ်တစ်ပိုင်း responsive ဖြစ်ပြီး workbook တစ်ခုလုံးကို ပိတ်နိုင်ခဲ့ပါတယ်။ ရလဒ်အနေနဲ့ workbook ဟာ content နဲ့ code ပြီးသွားတဲ့အခါ ပုံမှန်အတိုင်း ပြန်ပွင့်လာပါတယ်။ ယာယီဖိုင်တွေနဲ့ source file တွေဟာ (မကြာခဏ) ပျက်စီးသွားခဲ့ရင် ဖြေရှင်းဖို့ tool မရှိရင် အလုပ်ကို ပြန်လုပ်ရပါလိမ့်မယ်။ xlsx ပျက်စီးခြင်း။. ဤကိစ္စတွင် အရေးပါမှု အနည်းငယ်သာ ရှိသော်လည်း ကြီးမားသော အလုပ်စာအုပ်များအတွက် ဖြစ်နိုင်ခြေရှိသော ဘေးဥပဒ်တစ်ခု ဖြစ်နိုင်သည်။

စာရေးသူနိဒါန်း:

Felix Hooker သည် ဒေတာပြန်လည်ရယူရေးဆိုင်ရာ ကျွမ်းကျင်သူဖြစ်သည်။ DataNumen, Inc. အပါအဝင် ဒေတာပြန်လည်ရယူရေးနည်းပညာများတွင် ကမ္ဘာ့ခေါင်းဆောင်ဖြစ်သည်။ rar ကို ပြန်လည်ရယူပါ နှင့် sql recovery software ထုတ်ကုန်များ။ ပိုမိုသိရှိလိုပါကသွားရောက်ကြည့်ရှု www ။datanumen.com

ယခုမျှဝေပါ-

မှတ်ချက်များကိုပိတ်ထားကြသည်။