Гадаад мэдээллийн санг унших, бичихийн тулд Excel програмыг хэрхэн ашиглах вэ

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

Excel бараг бүх зүйлийг хийх боломжтой; бүх зүйлийг хийх ёстой эсэх нь өөр асуудал. Хүснэгт нь өгөгдлийг удирдахад маш хүчтэй боловч хэвийн болгосон өгөгдлийг хадгалахад тийм ч сайн биш юм. Excel-ийг харилцааны мэдээллийн санд ашиглах SQL Server програмын хүчийг нэмэгдүүлнэ.

Эхлээд танд MS Access эсвэл илүү тогтвортой, үнэгүй хувилбар хэрэгтэй болно. SQL Server Экспресс. Уншигч нь Excel-ийн хөгжүүлэгчийн туузыг харуулсан бөгөөд VBA засварлагч болон бүтэцлэгдсэн асуулгын хэлийг (SQL) мэддэг гэж үздэг. Энэ нийтлэлийг ашигладаг SQL Server холболтын мөрүүд. MS-Access-ийг Google-ээс үзнэ үү.

Excel нь мэдээлэл авах өөрийн гэсэн дэг журамтай байдаг SQL Server Пивот хүснэгтэд (гэж хэлье) бидний жишээ өгөгдөл сонгоход илүү уян хатан байдлыг өгөх болно.

Холболтын мөр

Би хувийн мэдээллийн санг ашиглах болно; ConnectDatabase дэд горимд миний оронд өөрийн жолоочийн мэдээллийг оруулна уу. Дараа нь бид ашигладаг connDB Манай мэдээллийн сан руу харилцах суваг болгон - миний хувьд хадгалагдсан процедурын үр дүнг буцаах. Та "...

Бизнесийн захиалга

Эхлээд бид комбо хайрцагны сонголтыг ачаалах болно SQL Server Ажлын ном нээгдэх үед Auto_open макро ашиглан "ComboData" хуудсанд оруулна. Сервер нь үүлэн дээр эсвэл орон нутагт байгаа эсэхээс үл хамааран Excel-ийг эхлүүлэхэд мэдэгдэхүйц саатал гарахгүй - хэрэв мэдээллийн санд ажлын станцаас хандах боломжтой бол.

Дараа нь бид өгөгдлийн сангаас шүүсэн өгөгдлийг гаргаж аваад Excel-ийн F-ээс K багана руу оруулна.

Интерфэйс

Уурхайн өгөгдлийн сангаас мэдээллийг шүүх унадаг цонхнууд байдаг. The үүрэг Комбо хайрцаг нь баруун талд байгаа хүснэгтийг бөглөх хайлтыг идэвхжүүлдэг.Role Combo Box нь хүснэгтийг бөглөх хайлтыг өдөөдөг

"Sheet1"-ийн нэрийг "Үндсэн" болгож өөрчил. Дор хаяж нэг комбобокс нэмнэ үү.

Дүрэм

Public connDB As New ADODB.Connection
Public rstNew As New ADODB.Recordset
Public rs As New ADODB.Recordset
Public strSQL As String
Public nID As Integer

Sub auto_Open()
    Call PopulateComboData     'kicks off the first process  on Open
End Sub

Sub PopulateComboData()
    Sheets("ComboData").Range("A3:C100").ClearContents
    Call ConnectDatabase      'use the ConnectDatabase routine
    strSQL = "Select DeptID, Department, Phase from tblDept Order by Department"
    Set rs = connDB.Execute(strSQL)
    ActiveSheet.Range("A3").CopyFromRecordset rs      'copies the recordset in bulk
End Sub

Sub ReadData()
    intRole = Sheets("main").Range("D7")
    Sheets("Main").Range("F4:L100").ClearContents
    Call ConnectDatabase
    strSQL = "EXEC DBTest " & intRole    'calls a stored proc with parameter
    Set rs = connDB.Execute(strSQL)
    ActiveSheet.Range("F4").CopyFromRecordset rs      'copies the recordset in bulk
End Sub

Sub ConnectDatabase()
    On Error GoTo ErrConnect
    If connDB.State = 1 Then connDB.Close     'closes connection if already open
    strServer = "197.200.28.164" 
    strDBase = "Qcrew_sql"
    strUser = "joesoap_sql"
    strPWD = "frU6ra!@"
    If strPWD > "" Then 
        strConnectionstring = "DRIVER={SQL Server};Server=" & strServer & _
        ";Database=" & strDBase & ";Uid=" & strUser & ";Pwd=" & strPWD & _
        ";Connection Timeout=30;"
    Else        'Use windows authentication
        strConnectionstring = "DRIVER={SQL Server};SERVER=" & strServer & _
        ";Trusted_Connection=yes;DATABASE=" & strDBase
    End If
    connDB.Open strConnectionstring
Exit Sub
ErrConnect:
    MsgBox Err.Description
End Sub

"ComboData" хуудсыг уншихын тулд комбо хайрцагны удирдлагыг форматлана уу. Дараа нь хавсаргасан талбар дээр хулганы баруун товчийг дарж, ReadData дэд процедурыг тохируулна уу. Комбо хайрцагт ямар нэг зүйл сонгогдсон тохиолдолд "Үндсэн" хуудасны D7 нүдэнд түүний түлхүүрийг бичнэ үү. VBA код нь энэ түлхүүрийг шүүлтүүр болгон ашиглах болно (дээрх intRole-г үзнэ үү).

dll номын сангийн лавлагаа

Кодын цонхонд Tools>References ашиглан Microsoft Active X Data Objects санг лавлана уу. Энэ нь Excel-д кодонд зарлагдсан ADODB объектуудыг ашиглах боломжийг олгоно.Microsoft Active X өгөгдлийн объектын санг лавлана уу

Дээрх ReadData дэд горим нь доор үзүүлсэн өгөгдлийн хамаарлын бүтцийг ашигладаг бөгөөд үүнийг зөвхөн Excel дээр хийхэд хэцүү байдаг.ReadData дэд горим нь харилцааны өгөгдлийн бүтцийг ашигладаг

Цаашид өгөгдлийн өөрчлөлтүүд нь өгөгдлийн санд буцааж бичих үйлдлийг өдөөж болох бөгөөд үүний дараа тохирох SQL Update мэдэгдлийг оруулна connDB.execute(strSQL).

Эцэст нь кодыг харах, өөрчлөхөөс хамгаалаарай.  Хэрэгсэл> Properties> Protection.

Excel-ийн асуудлыг шийдвэрлэх:

Үе үе, ялангуяа нарийн төвөгтэй програмуудыг агуулж байгаа үед Excel нь эвдэрч, зохих ёсоор дахин нөхөж чадахгүй байж магадгүй юм. тохиолдолд а гэмтсэн xlsx файл, үр дүнтэй сэргээх хэрэгсэлтэй байх нь ихэнх асуудлыг шийдэх болно.

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

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

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

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