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 үүрэг Комбо хайрцаг нь баруун талд байгаа хүснэгтийг бөглөх хайлтыг идэвхжүүлдэг.
"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 объектуудыг ашиглах боломжийг олгоно.
Дээрх ReadData дэд горим нь доор үзүүлсэн өгөгдлийн хамаарлын бүтцийг ашигладаг бөгөөд үүнийг зөвхөн Excel дээр хийхэд хэцүү байдаг.
Цаашид өгөгдлийн өөрчлөлтүүд нь өгөгдлийн санд буцааж бичих үйлдлийг өдөөж болох бөгөөд үүний дараа тохирох SQL Update мэдэгдлийг оруулна connDB.execute(strSQL).
Эцэст нь кодыг харах, өөрчлөхөөс хамгаалаарай. Хэрэгсэл> Properties> Protection.
Excel-ийн асуудлыг шийдвэрлэх:
Үе үе, ялангуяа нарийн төвөгтэй програмуудыг агуулж байгаа үед Excel нь эвдэрч, зохих ёсоор дахин нөхөж чадахгүй байж магадгүй юм. тохиолдолд а гэмтсэн xlsx файл, үр дүнтэй сэргээх хэрэгсэлтэй байх нь ихэнх асуудлыг шийдэх болно.
Зохиогчийн танилцуулга:
Феликс Хүүкер бол мэдээлэл сэргээх мэргэжилтэн юм DataNumen, Үүнд мэдээлэл сэргээх технологиор дэлхийд тэргүүлэгч, Inc. засвар rar алдаа болон sql сэргээх програм хангамжийн бүтээгдэхүүнүүд. Дэлгэрэнгүй мэдээллийг авна уу WWW.datanumen.com


