Hogyan használhatjuk az Excelt külső adatbázisok olvasására és írására

Oszd meg most:

Az Excel gyakorlatilag bármire képes; hogy mindenre rá kell-e venni, az más kérdés. Bár a táblázat nagyon hatékony az adatok manipulálásában, nem túl nagy a normalizált adatok tárolásában. Az Excel kihasználása relációs adatbázisokhoz, mint pl SQL Server növeli az alkalmazás teljesítményét.

Kezdésként szükséged lesz MS Accessre, vagy a stabilabb és ingyenesebbre – SQL Server Expressz. Feltételezhető, hogy az olvasó megjeleníti az Excel fejlesztői szalagot, és ismeri a VBA-szerkesztőt és a Structured Query Language (SQL) nyelvet. Ez a cikk használja SQL Server kapcsolati karakterláncok. Az MS-Access szolgáltatással kapcsolatban keresse fel a Google-t.

Míg az Excel saját beépített rutinokkal rendelkezik az információk lekéréséhez SQL Server (mondjuk) pivot táblába, példánk nagyobb rugalmasságot biztosít az adatok kiválasztásában.

Csatlakozási karakterlánc

privát adatbázist fogok használni; szúrja be a saját illesztőprogram-információit az enyémek helyett a ConnectDatabase alrutinban. Utána használjuk connDB mint kommunikációs csatorna adatbázisunkhoz – esetemben egy tárolt eljárás eredményeinek visszaadására. Használhat több szabványos SQL-utasítást is, például „Select * from…”

Ügyrend

Először is betöltjük a combo-box opciókat innen SQL Server amikor a munkafüzet megnyílik, egy Auto_open makró használatával, és a „ComboData” munkalapra kiíratva. Akár a felhőben, akár helyileg van a szerver, az Excel indításakor nem lesz észrevehető késés – feltéve, hogy az adatbázis elérhető a munkaállomásról.

Ezután kivonjuk a szűrt adatokat az adatbázisból, és bedobjuk az Excelbe, az F–K oszlopokba.

Az interfész

Az enyémben vannak legördülő listák az adatok szűrésére az adatbázisból. A Szerep kombinált mező keresést indít el a jobb oldali táblázat feltöltéséhez.A szerepkör kombinációja keresést indít el a táblázat feltöltéséhez

Nevezze át a „Sheet1”-et „Main”-re. Adjon hozzá legalább egy kombinált mezőt.

A kód

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

Formázza a kombinált vezérlőt a „ComboData” lapok olvasásához. Ezután kattintson a jobb gombbal a kombinált mezőre, hogy hozzárendelje a ReadData aleljárást. Ha egy elemet kiválaszt a kombinált mezőben, írja be a kulcsát a „Fő” lap D7 cellájába. A VBA-kód ezt a kulcsot fogja használni szűrőként (lásd fent az inRole-t).

dll könyvtárra mutató hivatkozások

A kódablakban az Eszközök>Hivatkozások menüponttal hivatkozhat a Microsoft Active X Data Objects könyvtárra. Ez lehetővé teszi az Excel számára, hogy a kódban deklarált ADODB objektumokat használja.Referencia: A Microsoft Active X adatobjektum-könyvtár

A fenti ReadData alrutin egy relációs adatstruktúrát használ, amelyet az alábbiakban mutatunk be, amit egyedül Excelben nehéz elérni.A ReadData alrutin relációs adatstruktúrát használ

A további adatmódosítások visszaírást válthatnak ki az adatbázisba, a megfelelő SQL Update utasítás követésével connDB.execute(strSQL).

Végül védje meg kódját a megtekintéstől vagy módosítástól:  Eszközök>Tulajdonságok>Védelem.

Excel problémák kezelése:

Időről időre, különösen, ha összetett programokat tartalmaz, az Excel összeomolhat, és nem tudja megfelelően lefedni. Abban az esetben, ha a sérült xlsx fájl, egy hatékony helyreállító eszköz kéznél tartása a legtöbb problémát megoldja.

Szerző Bevezetés:

Felix Hooker adat-helyreállítási szakértő DataNumen, Inc., amely világelső az adat-helyreállítási technológiák területén, beleértve javítás rar hiba és SQL helyreállítási szoftvertermékek. További információért látogasson el www.datanumen.com

Oszd meg most:

Hozzászólások lezárva.