SQL programozás használata excel-nél

SQL programozás használata excel-nél
2017-06-04T19:19:29+02:00
2017-06-06T07:47:43+02:00
2022-10-19T15:30:31+02:00
  • És ehhez tudnál nekem ajánlani valamilyen irodalmat ".db"  kiterjesztésű file-ból kellene adatokat kivennem excel be. Amióta rátaláltam arra hogy alkalmazható excel ben keresgélek valamilyen irodalmat amiből megtanulhatnám  de nem nagyon találok hozzá semmit, amit használni tudnék. A beszúrt példa nagyon hasznos volt de még vannak benne értelmezési gondjaim kicsit
    Mutasd a teljes hozzászólást!
  • Én akkor szoktam használni, ha több helyről kell összeszednem az adatokat, esetleg valamilyen közös ismérv alapján (join). Akkor nagyon hasznos tud lenni. Ez is VBA makró, csak SQL lekérdezést használsz benne.
    Mutasd a teljes hozzászólást!
  • És igazán mire jó? Jobb mintha makróval programoznám vagy SQL többféle adatbázis kiterjesztéshez fér hozzá mint az excel.
    Mutasd a teljes hozzászólást!
  • Szia,

    igen, alkalmazható, pl. így:

    Dim cn As Object Dim rs As Object Dim sql As String Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "" & ThisWorkbook.Name & ";" & _ "Extended Properties=""Excel 12.0 Xml;HDR=YES"";" .Open End With sql = _ "SELECT " & tabla & ".[Főkönyvi szám], szlaszamok.[Megnevezés], sum([Összeg]) FROM " & _ tabla & " LEFT JOIN szlaszamok " & _ "ON " & tabla & ".[Főkönyvi szám]=szlaszamok.[Főkönyvi szám] WHERE [Költséghely]='" & smktghely & _ "' AND " & tabla & ".[Kategória]='S&M/Nullaköltség'" & _ " GROUP BY " & tabla & ".[Főkönyvi szám], szlaszamok.[Megnevezés]" rs.Open sql, cn
    A sorokat így kaphatod meg:

    Dim smktgek As Variant smktgek = rs.GetRows
    Ebben a példában az adott excel állományon belül van az adatforrás. A "tabla" egy olyan string változó, ami egy tartomány nevét tartalmazza. A "szlaszamok" is szintén egy tartománynév. Természetesen lehet külső excel állományt is lekérdezni.

    Az "erőforrásokat" meg fel kell szabadítani:

    rs.Close cn.Close Set rs = Nothing Set cn = Nothing
    Valahol olvastam, hogy itt egy memory leak van, és hogy hiába a dispose, a memória  nem szabadul fel. De lehet, hogy azóta ezt már javították.
    Mutasd a teljes hozzászólást!
  • Sziasztok egy Excel VBa programozásról szóló könyvben találtam egy olyan fejezetet ami az SQL programozásról szól. Azonban csak a parancsszavakat taglalja a könyv semmi mást. Kérdésem valóban excel-nél is alkalmazható egy a nyelv és ha igen hogyan. Vagy én avgyok a hülye és félre értettem valamit. előre is elnézést ha értetlen voltam. Magát az SQL sem ismerem de már többen ajánlották ha adatbáziskezelés terén.

    Hollow
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd