2016. augusztus 15., hétfő

VBA alapok Excel makró 2

Az excel makró egy Visual Basic modulban tárolt program, vagy parancs- és függvénysorozat, előre rögzített tevékenységek sora mely elindulása eseményhez kötött.

A makrók a dokumentumhoz kapcsolódva tárolódnak, szerves részét képezik, ezért vírusok formájában veszélyt is jelenthetnek.

Makrók készítésének legegyszerűbb megoldása a makrók rögzítése. Felvételt készítünk egy tevékenységsorozatról
( lépésenként eltároljuk az egyes parancsok végrehajtásának adatait),
 majd visszajátszással újra és újra elvégezzük a kívánt művelet sort.

 Előnyök:
 – Az Excel sokkal gyorsabban képes végrehajtani a megadott
parancsokat.
– Minden alkalommal hibátlanul végzi el a rábízott feladatokat.
– Parancsbillentyűk hozzárendelésével még hatékonyabbá tehetjük a
makrók visszajátszását, és ezzel jelentősen meggyorsítjuk az
amúgy több, mint két billentyűleütést igénylő feladatok elvégzését.




Változók

Változók deklarációja (csak Option Explicit esetén)
{Dim|Public|Private|Protected|Static} vá1tozó1 <adattípus>, változó2 As <adattípus>


A VBA-ban kétféle érvényességi (láthatósági) kört különböztethetünk meg:
- eljárásszintű
- modulszintű

Eljárásszintű láthatóság esetében a változót kívülről nem érhetjük el, annak a metódusnak a sajátja, amelyben deklarálva van.

A deklarációs kulcsszó a Dim vagy Static. A két deklaráció között a különbség a memóriahasználatnál van, míg Static kúlcsszóval deklarált változó az alprogram lefutása után a változó értéke a memóriában marad, míg a Dim kulcsszóval deklarált változó értéke megszűnik.

Modulszintű érvényességi kör esetében private és protected és public érvényességi szintű változókat deklarálhatunk. Private esetben a változó csak az őt tartalmazó modulból érhető el, public esetben pedig bárhonnan. A Protected-nek csak öröklődés esetén van szerepe.


Fontos megjegyezni, hogy a típusok deklarálása sem eljárások sem függvények esetében nem kötelező, az első értékadás határozza meg a változók típusát.



Táblázat és makró kapcsolata
Excel elnevezés                            Makró kódból hivatkozva
A B3 cella                                    Cells(3,2) vagy
                                                      Range(“B3”)
A C4:G6 tartomány                       Range(”C4:G6”) vagy
                                                       Range(Cells(4,”C”),Cells(6,”G”))
A B oszlop                                       Columns(2)
A H,I,J oszlopokból álló tartomány  Range(Columns(8),Columns(10))
A 2. sor                                           Rows(2)
A 13-tól 16. sorig tartó tartomány Range(Rows(13),Rows(16))
A munkalap összes cellája             Cells
Meghatározott munkalap cellái     Sheets(”Munka1”).Cells vagy
                                                       Sheets(1).Cells
Az éppen aktuális cella                   ActiveCell
Az éppen kijelölt objektum             Selection
Egy cella kijelölése                          Range(“A1”).Select
Kijelölt cellák tartalmának törlése   Selection.ClearContents

Betűtípus Arial-ra állítása      Cells(1,1).Font.Name = ”Arial”
Betűszín pirosra állítása         Cells(1,1).Font.Color = vbRed
                                               Cells(1,1).Font.ColorIndex = 3
Betűméret 12-esre állítása       Cells(1,1).Font.Size = 12
Félkövér betűre                       Cells(1,1).Font.Bold = True
Dőlt betűre                              Cells(1,1).Font.Italic = True


Példák:
Cells(1,1) = "Lajos
Range("B2")=1962




Üzenet ablakok

A program futása során a felhasználóval történő kapcsolattartás legpraktikusabb módja az üzenőablakok használata.

Adatbekérésre az InputBox függvényt, míg üzenetek, válaszok küldésére a MsgBox függvényt használhatjuk.


Az InputBox szintaxisa:
változó = InputBox("szöveg","címke")

A MsgBox szintaxisa:
MsgBox („üzenet”) vagy MsgBox „üzenet”
változó = MsgBox ("üzenet", paneltípus)
vbOKOnly - OK gomb;
vbOKCancel - Ok és Mégse gombok;
vbAbortRetryIgnore -  Leállítás, Ismét és Kihagyás gombok;
vbYesNoCancel - Igen, Nem és Mégse gombok;
vbYesNo - Igen és Nem gombok




-- Számokkal való műveletek:
– Aritmetikai:
+
-
*
\ egész osztás
/ osztás, az eredmény
valós mod maradékot adja:
a mod 2

– Relációk:
>
<
>=
<=
<>

– Standard függvények:
Int(d) – a d valós adat egészrésze.
Round(d) – a d valós adat egészre kerekített értéke.
Sqr(d) – d négyzetgyöke

– Rnd – véletlenszám a [0..1) intervallumból Randomize – Véletlenszám generátor inicializálása.
– IsNumeric(kifejezés)
– IsEmpty(kifejezés)
– IsNull(kifejezés)
– IsDate(kifejezés)
– Val(string) – szövegből számot konvertál

-- Műveletek Szöveg változókkal

– Standard függvények:
Chr(egész)
Asc(string)
Len(string)
Left, Right, Mid
Ltrim(string)
Rtrim(string)
Trim(string)

- Szövegek összefűzése:
&
vigyázat, szóközök közé tanácsos írni!


- Relációk:
(mint számoknál)

Logikai változókkal
Numerikus érték: 0 esetén hamis, minden más igaz.

-Logikai műveletek:
And
Or
Not




-- Program (vezérlési) szerkezetek:


  • Szekvencia – egymás utáni lépések végrehajtása
  • Szelekció – elágazás (egyágú, kétágú, háromágú többágú)
  • Iteráció – ciklus (előírt lépésszámú, feltételes elöl vagy hátul tesztelő)



If feltétel Then
    utasítások
Else
    utasítások
End If


Select Case valasztas
      Case 1: ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)
      Case 2: ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
      Case 3: darab = InputBox("Hány új munalapot adjak hozzá?", "Hozzáaad", "5")
                                 ActiveWorkbook.Sheets.Add Count:=Val(darab)
      Case Else: MsgBox "1-3 közötti számot adjon meg!"

End Select


For ciklusváltozó = kezd To veg Step lepes
   utasítások
Next ciklusváltozó




Do While feltétel
   utasítás(ok)
Loop




Do
    utasítás(ok)
Loop Until feltétel




-- Program egységek

-- Eljárás
Mivel a VBA egy objektumorientált nyelv, utasításainkat eljárásokba és függvényekbe szervezhetjük. 

Minden egyes eljárást a Sub utasítással kell kezdenünk, majd a makró nevét kell megadnunk és végül zárójelek között a futáshoz szükséges paraméterlistát. Az eljárásokat az End Sub utasítással zárjuk. 

Sub <eljárásnév>([paraméterlista])
    [<deklarációk>]
    <utasítások>
End Sub

Eljárás hívása: [Call] <eljárásnév> ([aktuális paraméterlista])




-- Függvény
Minden egyes függvényt a Function utasítással kell kezdenünk, majd a függvény nevét kell megadnunk végül zárójelek között a futáshoz szükséges paraméterlistát. A függvényeket az End Function utasítással zárjuk. 

Minden függvénynek kötelezően tartalmaznia kell legalább egy olyan értékadó utasítást, amelynek bal oldalán a függvény neve szerepel.


Function <függvénynév>([paraméterlista])
    [<deklarációk>]
    <utasítások>
    függvénynév = (legalább egy értékadó utasítás)
End Function

Függvény hívása: <függvénynév> ([aktuális paraméterlista])


Megjegyzéseket a program kódjába a sor elején vagy akár sorban elhelyezett aposztróffal (’) tehetünk. 






Példák:
Sub van_e2()
' van-e nulla a 
Do Until ActiveCell.Value = "" Or ActiveCell.Value = "0"
    ActiveCell.Offset(1, 0).Select
Loop

If ActiveCell.Value = "0" Then
MsgBox ("Van nulla!")
Else
MsgBox ("Nincs nulla!")
End if

End Sub

---
Sub megszamolas()
' 100 -nál nagyobb számok megszámolása
Dim db As Integer 'a db nevű egész szám típusú változó definiálása

Do Until ActiveCell.Value = ""
    If ActiveCell.Value > 100 Then db = db + 1
    ActiveCell.Offset(1, 0).Select
Loop
MsgBox (db & " darab 100-nál nagyobb szám van.")
End Sub


---
 'szines cellák összege  
   osszeg = 0
   For i = 1 To 12
     If Cells(i, 15).Font.Color = vbRed Then
        osszeg = osszeg + Cells(i, 15).Value
     End If
   Next i
   MsgBox "Az O-oszlop piros számainak összege = " & osszeg


---

Sub maxkivalasztas()
" legnaygobb kiválasztása
Dim max As Integer
max = -1 'kezdőérték adás, aminél remélhetőleg cask nagyobb elemek vannak a tömbben
Do Until ActiveCell.Value = ""
    If ActiveCell.Value > max Then max = ActiveCell.Value
    ActiveCell.Offset(1, 0).Select
Loop
MsgBox (max & " a legnagyobb szám a tömbben.")

End Sub

---
' üres cellák törlése 
 szamlalo = 0
   For i = 1 To 24
     If Cells(i, 16).Value <> "" Then
         Cells(szamlalo + 1, 17).Value = Cells(i, 16).Value
         szamlalo = szamlalo + 1
     End If
   Next i

   ' Tartomány sorbarendezése
   Set Rng = Range("S1").CurrentRegion
   For i = 1 To Rng.Count
     For j = i + 1 To Rng.Count
        If Rng.Cells(j) < Rng.Cells(i) Then
            temp = Rng.Cells(i)
            Rng.Cells(i) = Rng.Cells(j)
            Rng.Cells(j) = temp
        End If
     Next j
   Next i

   
   ' Ismétlődések megkeresése oszlopban és eltávolítás
 Cells(1, 22).Value = Cells(1, 21).Value
    egyediszam = 1
    hozzaad = True
    For i = 2 To 10
        For j = 1 To egyediszam
            If Cells(i, 21).Value = Cells(j, 22).Value Then
                hozzaad = False
            End If
        Next j
        If hozzaad = True Then
            Cells(egyediszam + 1, 22).Value = Cells(i, 21).Value
            egyediszam = egyediszam + 1
        End If
        hozzaad = True
    Next i


'Hibakezelés
Set Rng = Selection
For Each cell In Rng
      On Error Resume Next
      cell.Value = Sqr(cell.Value)
Next cell


'Adatok fájlba írása
fajlnev = Application.DefaultFilePath & "\adatok.txt"
   Set tartomany = Selection
   Open fajlnev For Output As #1
   For i = 1 To tartomany.Rows.Count
     For j = 1 To tartomany.Columns.Count
       cellaertek = tartomany.Cells(i, j).Value
       If j = tartomany.Columns.Count Then
          Write #1, cellaertek
       Else
          Write #1, cellaertek,
       End If
     Next j
   Next i
   Close #1

   
   ' Adatok fájlból olvasása
   i = 35
   fajlnev = Application.GetOpenFilename()
   Open fajlnev For Input As #1
   Do While Not EOF(1)     //Fájl vége jelig olvasunk, mert nem tudjuk hány adat van benne
        Line Input #1, sor
        pozicio = InStr(sor, ",")
        elso = Left(sor, pozicio - 1)    //Vesszőt, mai az elválasztó megkeressük és annál elvágjuk az adatokat egymástól
        masodik = Right(sor, Len(sor) - pozicio)
        Cells(i, 1).Value = Val(elso)
        Cells(i, 2).Value = Val(masodik)
        i = i + 1
    Loop

   Close #1


------------------------
Munkafüzet bezárása:
Workbooks(2).Close (a zárójelben a munkalap indexe, hányadik munkafüzet a megnyitottak közül)

Aktív munkafüzet bezárása:
ActiveWorkbook.Close

Munkalapok számának kiírása:
MsgBox "A munkalapok száma=" & Worksheets.Count

Új munkalap hozzáadása:
ActiveWorkbook.Sheets.Add Before :=Worksheets(Worksheets.Count) – utolsó munkalap elé
ActiveWorkbook.Sheets.Add After :=Worksheets(Worksheets.Count) – utolsó munkalap után
ActiveWorkbook.Sheets.Add Count :=5 - öt új munkalapot szúr be

Munkalap törlése:
Worksheets(index).Delete

Munkalap átnevezése:
Activesheet.Name

Application.ScreenUpdating = False     //Kiíráskor ne villogjon a képernyő
Application.ScreenUpdating = True     //Visszakapcsolás


   Range("A1:A2").Select
   Selection.Copy

   Range("G15").Select
   ActiveSheet.Paste
   
   Range("G17:G18").Value = Range("A1:A2").Value 'Ugyanez egy sorban

   
   Keretezés
   Range("F1:H6").Interior.Color = vbGreen
   Range("F1:H6").Borders.Weight = xlThick
   Range("F1:H6").Borders.LineStyle = xlSolid  

   //xlDash vagy xlDot is lehet, ha nincs semmi, akkor xlNone




2016. augusztus 14., vasárnap

Excel gyors gombok és függvények

Gyors gombok listája:


Tab cellák közti mozgás jobbra
Shift+Tab balra
Enter cellák közti mozgás lefele
Shift+Enter felfele
Kurzormozg. bill. cellák közti mozgás
Ctrl + sor beszúrása
Ctrl - sor kivétele
Ctrl+Enter azonos adat bevitele több kijelölt cellába
Page down egy képernyinyivel lejjebb ugrik a kurzor
Page up feljebb
Crtl+Home a munkalap elejére
Ctrl+End a munkalap végére
Ctrl+Page down következi munkalap
Ctrl+Page up elizi munkalap
Ctrl+F6 átlépés másik munkalapra
Ctrl+Shift+* az aktuális terület kijelölése az aktív cella körül
Ctrl+9 rejtett sorok
Ctrl+0 rejtett oszlopok
Dupla kattintás a választóvonalra optimális oszlopszélesség, sormagasság
Alt+’ stílus formázása
Ctrl+1 cellák formázása
Ctrl+Shift+ ~ általános számformátum
Ctrl+Shift+ $ pénznem
Ctrl+Shift+ % százalék formátum
Ctrl+Shift+ # dátum formátum
Ctrl+Shift+ @ idi
Ctrl+Shift+ ! számformátum, ezres elválasztás, negatív számok
Ctrl+Shift+ & külsi keret
Ctrl+Shift+ _ keretek megszőntetése
Ctrl+B félkövér betők
Ctrl+I dőlt betők
Ctrl+U aláhúzás
Ctrl+/ az aktuális tömb kijelölése
Ctrl+jobbra,balra nyíl a sor utolsó ill. elsi cellájára ugrik
Shift+jobbra nyíl cellánként jelöl ki
Shift+Ctrl+jobbra nyíl kijelöli a kívánt területet
Mozgás a táblázatban:
Ctrl+jobbra nyíl a sor utolsó cellájára ugrik
Ctrl+balra nyíl vissza
Ctrl+lefele nyíl az oszlop utolsó cellája
Ctrl+felfele nyíl vissza
Ctrl+Shift+kurzormozgató nyilak a teljes táblázat kijelölése



Excel függvények


Adatbázis



Az AB függvények három argumentumot tartalmaznak: adatbázis, mező és kritérium.
Az argumentumok az adatbázisfüggvényekben használt munkalaptartományokra vonatkoznak.
Adatbázis :   Az adatbázist alkotó cellatartomány.
A Microsoft Excelben az adatbázis kapcsolódó adatok sorokba (rekordok) és oszlopokba (mezők) rendezett listája.
A lista első sora az egyes oszlopok feliratát tartalmazza.
Mező  :       Azt jelzi, hogy mely mezőket használjuk a függvényben.
Az adatbázismezők adatoszlopok, amelyeket az első sorban levő névvel lehet azonosítani.
A mező argumentum megadható az idézőjelek közé tett névvel szövegként (például "Kor", "Hozam" stb.)
vagy mezőszámként: 1 az első mezőre, 2 a másodikra és így tovább.
Kritérium :   A cellák azon tartománya, amely a megadott feltételeket tartalmazza.
Bármilyen tartományt használhatunk kritérium argumentumként, ha az legalább egy oszlopfeliratot
és alatta legalább egy üres cellát tartalmaz az oszlop feltételének megadásához.


AB.ÁTLAG   A kijelölt adatbáziselemek átlagát számítja ki.
AB.DARAB   Megszámolja, hogy az adatbázisban hány cella tartalmaz számokat.
AB.DARAB2   Megszámolja az adatbázisban lévő nem üres cellákat.
AB.MEZŐ    Egy adatbázisból egyetlen olyan rekordot ad vissza, amely megfelel a megadott feltételeknek.
AB.MAX   A kiválasztott adatbáziselemek közül a legnagyobb értéket adja eredményül.
AB.MIN   A kijelölt adatbáziselemek közül a legkisebb értéket adja eredményül.

  Dátum és idő


DÁTUM      Adott dátum dátumértékét adja eredményül.
DÁTUMÉRTÉK Szövegként megadott dátumot dátumértékké alakít át.
NAP        Dátumértéket a hónap egy napjává (0-31) alakít.
NAP360     Két dátum közé eső napok számát számítja ki a 360 napos év alapján.
EDATE      Adott dátumnál adott számú hónappal korábbi vagy későbbi dátum dátumértékét adja eredményül.
NETWORKDAYS   Két dátum között a teljes munkanapok számát adja meg.

Külső


SQL.REQUEST   Összeköttetést hoz létre egy külső adatforrással, lekérdezést hajt végre, majd az eredményt tömbként adja vissza makróprogramozás nélkül.

  Mérnöki


BESSELI   Az In(x) módosított Bessel-függvény értékét adja eredményül.
BESSELJ   A Jn(x) Bessel-függvény értékét adja eredményül.
BESSELK   A Kn(x) módosított Bessel-függvény értékét adja eredményül.
BESSELY   Az Yn(x) módosított Bessel-függvény értékét adja eredményül.
BIN2DEC   Bináris számot decimálissá alakít át.
BIN2HEX   Bináris számot hexadecimálissá alakít át.
BIN2OCT   Bináris számot oktálissá alakít át.
COMPLEX   Valós és képzetes részből komplex számot képez.
CONVERT   Mértékegységeket vált át.

Pénzügyi




EFFECT      Az éves tényleges kamatláb értékét adja eredményül.
RRÉSZLET    Hiteltörlesztésen belül a tőketörlesztés nagyságát számítja ki adott időszakra.
LRÉSZLETKAMAT   A befektetés adott időszakára fizetett kamatot számítja ki.
MEGTÉRÜLÉS   A befektetés belső megtérülési rátáját számítja ki a költségek és a bevételek különböző kamatlába mellett.
NOMINAL     Az éves névleges kamatláb értékét adja eredményül.
ÉCSRI       Tárgyi eszköz amortizációját számítja ki megadott vagy részidőszakra a csökkenő egyenleg módszerének alkalmazásával.

  Információs


CELLA      Egy cella formátumára, elhelyezkedésére vagy tartalmára vonatkozó adatokat ad eredményül.
DARABÜRES  Egy tartományban összeszámolja az üres cellákat.
HIBA.TÍPUS Egy hibatípushoz tartozó számot ad eredményül.
INFÓ       A rendszer- és munkakörnyezet pillanatnyi állapotáról ad felvilágosítást.
ÜRES       Eredménye IGAZ, ha az érték üres.

  Logikai


ÉS     Eredménye IGAZ, ha minden argumentuma IGAZ.
HAMIS  A HAMIS logikai értéket adja eredményül.
HA     Logikai vizsgálatot hajt végre.
NEM    Argumentuma értékének ellentettjét adja eredményül.
VAGY   Eredménye IGAZ, ha bármely argumentuma IGAZ.
IGAZ   Az IGAZ logikai értéket adja eredményül.

  Kereső és hivatkozási


VÁLASZT   Értékek listájából választ ki egy elemet.
HIPERHIVATKOZÁS   Hálózati kiszolgálón, intraneten vagy az interneten tárolt dokumentumot megnyitó parancsikont vagy hivatkozást hoz létre.
INDEX     Tömb- vagy hivatkozás indexszel megadott értékét adja vissza.
KUTAT     Vektorban vagy tömbben keres meg értékeket.
HOL.VAN   Hivatkozásban vagy tömbben értékeket keres.

  Matematikai és trigonometrikus


ABS      Egy szám abszolút értékét adja eredményül.
ARCCOS   Egy szám arkusz koszinuszát számítja ki.
ARCTAN   Egy szám arkusz tangensét számítja ki.
DARABTELI   Egy tartományban összeszámolja azokat a nem üres cellákat, amelyek eleget tesznek a megadott feltételeknek.
LOG       Egy szám adott alapú logaritmusát számítja ki.
HATVÁNY   Egy szám adott kitevőjű hatványát számítja ki.
CSONK     Egy számot egésszé csonkít.

Statisztikai


ÁTLAG       Argumentumai átlagát számítja ki.
KORREL      Két adathalmaz korrelációs együtthatóját számítja ki.
DARAB       Megszámolja, hogy argumentumlistájában hány szám található.
EXP.ELOSZLÁS   Az exponenciális eloszlás értékét számítja ki.
ELŐREJELZÉS   Az ismert értékek alapján lineáris regresszióval becsült értéket ad eredményül.
GYAKORISÁG   A gyakorisági vagy empirikus eloszlás értékét függőleges tömbként adja eredményül.
MEDIÁN     Adott számhalmaz mediánját számítja ki.
MIN        Az argumentumai között szereplő legkisebb számot adja meg
MÓDUSZ     Egy adathalmazból kiválasztja a leggyakrabban előforduló számot.
POISSON    A Poisson-eloszlás értékét számítja ki.
VALÓSZÍNŰSÉG   Annak valószínűségét számítja ki, hogy adott értékek két határérték közé esnek.
SZÓRÁS     Egy statisztikai sokaság egészéből kiszámítja annak szórását.

    Szöveg és adat


KARAKTER   A kódszámmal meghatározott karaktert adja eredményül.
ÖSSZEFŰZ   Több karaktersorozatot egyetlen szöveggé fűz össze.
FORINT     Számot pénznem formátumú szöveggé alakít át.
AZONOS     Megvizsgálja, hogy két érték azonos-e.
SZÖVEG.TALÁL   Karaktersorozatot keres egy másikban (a kis- és nagybetűket
HOSSZ      Szöveg karakterekben mért hosszát adja eredményül.
KISBETŰ    Szöveget kisbetűssé alakít át.
CSERE      Szövegen belül karaktereket




2016. augusztus 10., szerda

bcp és sqlcmd alapok

Két hasznos konzol eszköz az sql szerver használók részére.

bcp  (Bulk Copy Program)

Elérése:
"c:\Program Files\Microsoft SQL Server\110\Tools\Binn\bcp.exe" 
Parancs soros eszköz mely a forrás adatok adatbázisba töltésére és adatok állományba töltésére szolgál

Jellemzői:
- parancssori program
- korlátozott adatkonverzió és ellenőrzés
- Sükséges jog: SELECT, INSERT, ALTER

Használat:
bcp db.tabla in | out textfile

bcp "SELECT * FROM dbo.tabla" queryout Test.csv -t, -c -S . -d Demo50 -T

bcp "select * from db.dbo.Table" queryout c:\tmp\demo.xls -c -k -SServerName -U sa -P 111 -w-t mezőterminátor
-r rekordterminátor
-F átugrott első rekordok darabszáma


SQLCMD

Elérése:
"c:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLCMD.EXE"
Parancs soros eszköz SQL utasítások futtatására

Példák:
sqlcmd -U felhasználó -P jelszó -e -i createTables.sql

sqlcmd -U dbadmin -P jelszó -e -i createDatabase.sql

sqlcmd -U usernev -P jelszo -Q"SELECT column1, column2 FROM DATA_TABLE" -oOutput_file

sqlcmd -U felh_nev -P jelszo -S „szerver neve”\”sql server példány neve” -d „Adatbázis neve” -Q "EXEC dbo.sp_eljaras @Tipus=1, @BOType=2"

SQLCMD -S servername -E -d adatbazisnev -Q "set nocount on;SELECT * FROM tablanev" -s "|" -o "D:\tmp\proba.csv" -h -1 -W

SQLCMD -S SQLServer -d Database -U UserName -P Password -Q “SQL Query” -s “,” -o “C:\name.csv”


Help:
Sqlcmd            [-U login id]          [-P password]
  [-S server]            [-H hostname]          [-E trusted connection]
  [-d use database name] [-l login timeout]     [-t query timeout]
  [-h headers]           [-s colseparator]      [-w screen width]
  [-a packetsize]        [-e echo input]        [-I Enable Quoted Identifiers]
  [-c cmdend]            [-L[c] list servers[clean output]]
  [-q "cmdline query"]   [-Q "cmdline query" and exit]
  [-m errorlevel]        [-V severitylevel]     [-W remove trailing spaces]
  [-u unicode output]    [-r[0|1] msgs to stderr]
  [-i inputfile]         [-o outputfile]        [-z new password]
  [-f  | i:[,o:]] [-Z new password and exit]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting]
  [-b On error batch abort]
  [-v var = "value"...]  [-A dedicated admin connection]
  [-X[1] disable commands, startup script, enviroment variables [and exit]]
  [-x disable variable substitution]
  [-? show syntax summary]



BULK INSERT

 Speciális SQL parancs
− csak adatbetöltésre (bcp funkcionális)
− igényelt jog: INSERT, ALTER
− a LOGIN OS joggal olvassa be a fájlt


Használata:
BULK INSERT db.tabla FROM file WITH FIRSTROW = n 
ROWTERMINATOR=… FIELDTERMINATOR=…






sqlps.exe 


PowerShell mini shell

SQLCMD-szerű lekérdezés (Invoke-SqlCmd)
$filepath = 'directory_pathmy_excel_file.xls'
#Connection String for Excel 2007:
$connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=`"$filepath`";Extended Properties=`"Excel 12.0 Xml;HDR=YES`";"
#Connection String for Excel 2003:
#$connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=`"$filepath`";Extended Properties=`"Excel 8.0;HDR=Yes;IMEX=1`";"
$qry = 'select * from [Sheet1$]'
$sqlserver = 'my_server_name'
$dbname = 'my_target_database'
#Create a table in destination database with the with referenced columns and tablename.
$tblname = 'temp_PATALGCD'
#######################
function Get-ExcelData
{
    param($connString, $qry='select * from [sheet1$]')
    $conn = new-object System.Data.OleDb.OleDbConnection($connString)
    $conn.open()
    $cmd = new-object System.Data.OleDb.OleDbCommand($qry,$conn)
    $da = new-object System.Data.OleDb.OleDbDataAdapter($cmd)
    $dt = new-object System.Data.dataTable
    [void]$da.fill($dt)
    $conn.close()
    $dt
} #Get-ExcelData
#######################
function Write-DataTableToDatabase
{
    param($dt,$destServer,$destDb,$destTbl)
    $connectionString = "Data Source=$destServer;Integrated Security=true;Initial Catalog=$destdb;"
    $bulkCopy = new-object ("Data.SqlClient.SqlBulkCopy") $connectionString
    $bulkCopy.DestinationTableName = "$destTbl"
    $bulkCopy.WriteToServer($dt)
}# Write-DataTableToDatabase
#######################
$dt = Get-ExcelData $connString $qry

Write-DataTableToDatabase $dt $sqlserver $dbname $tblname

Django alapok

Django installálás és használatba vétel Release naptár : (forrása  https://www.djangoproject.com/download/ ) Lépések: rem install conda inst...