Naplňte databázu SQL programom Excel -
Bohužiaľ som nikdy predtým so serverom SQL nepracoval, a preto neviem, ako k nemu mám pristupovať. Už som sa pokúsil nájsť príslušnú pomoc pomocou vyhľadávania, ale tá je väčšinou príliš rozdrobená.

Problém:
Mám dlhý zoznam Excel a musím skontrolovať, či sa záznamy už nachádzajú v databáze SQL, a prípadne ich pridať.
Údajový záznam v databáze pozostáva z: [dátum]; [typ]; [podtyp]; [hodnota]
Iba ak v tejto konštelácii nie sú k dispozícii dátum, typ a podtyp, môže sa hodnota z Excelu preniesť do SQL DB.
OPÝTAŤ SA:
- Ako môžem kontaktovať spoločnosť DB
- Ako skontrolujem, či je k dispozícii záznam údajov
- Ako pridám záznam
Budem rád, ak mi niekto pomôže.
- AW: Vložte databázu SQL do programu Excel
Aby ste sa dostali dovnútra, potrebujete pripojenie DB.
Potrebujete meno servera, užívateľa a heslo.
Ak máte k dispozícii, môžete urobiť dotaz na tabuľku, pokiaľ ide o údaje - externý zdroj údajov - server SQL.
Môžete teda načítať príslušné údaje do samostatného hárku a analyzovať ich pomocou svojich údajov pomocou porovnávacích vzorcov na určenie odchýlok alebo chýbajúcich odchýlok a do svojej databázy označiť, ktoré z nich chcete znova načítať.
Na zmenu údajov v databáze musíte použiť ADO (Active Data Objects). Prehľad (s príkladmi kódu) nájdete v časti Príklady kódu ADO v jazyku Visual Basic.
Ďalšia varianta (a možno ľahšia pre začiatočníkov):
Označené záznamy (na doplnenie) zapíšete z tabuľky do súboru CSV. Nástroje ako SQL Developer umožňujú import súborov CSV do nových alebo existujúcich tabuliek v databáze. Ak to urobíte dômyselne, môžete sa s tým zaobísť úplne bez VBA, t. J. Iba s dotazom na údaje, označiť pomocou vzorcov, filtrovať, exportovať ako CSV a importovať pomocou nástroja SQL Developer (pridať).
- AW: Vložte databázu SQL do programu Excel
Svoje znalosti VBA by som označil za dobré.
Problém je v tom, že tieto údaje by sa neskôr mali aktualizovať každý deň prostredníctvom programu Excel, takže sa musia implementovať prostredníctvom VBA.
Viem, že názov servera, používateľ a heslo a tabuľka SQL už bola zodpovedajúcim spôsobom nastavená.
Vytvoril som pripojenie DB, ale viem si tiež predstaviť, že musí fungovať bez integrácie. Nakoniec bude mať DB viac ako 200 000 dátových záznamov a iba časť z nich sa získa pomocou Pivotu, aby nedošlo k prekročeniu limitov programu Excel.
V samotnom zozname programu Excel budú iba tie hodnoty, ktoré sa majú pridať do databázy. Získanie sa potom uskutoční prostredníctvom kontingenčnej tabuľky EXCEL
- AW: Vložte databázu SQL do programu Excel
| Citát: |
| . ale nemôžem nájsť, ako adresovať databázu VBA. |
- AW: Vložte databázu SQL do programu Excel
Teraz mám ale problém, že pred uložením musím skontrolovať, či sú údaje už k dispozícii. Goofingom som zistil, že to zvládnete pomocou funkcie count.
Malo by sa teda spočítať, koľko dátových súborov s určitým typom je už k dispozícii, ak číslo <> 0, nemalo by to ukladať dáta.
Myslím si, že vyhľadávací kód by mal byť taký:
| Kód: |
| strsql = "VYBERTE POČET (*)" & _ „FROM table1“ & _ „WHERE Desc = 'TEST'“ & _ „A DATUM = 41204“ |
- AW: Vložte databázu SQL do programu Excel
Nechápem, prečo to chceš urobiť predtým.
Prečo nerozbalíte svoje VLOŽENIE klauzulou WHERE, ktorá testuje, či sa vkladajú iba neexistujúce záznamy ?
- Re: AW: Vložte databázu SQL do programu Excel
Nechápem, prečo to chceš urobiť predtým.
Prečo nerozbalíte svoje VLOŽENIE klauzulou WHERE, ktorá testuje, či sa vkladajú iba neexistujúce záznamy ?
Dobrá otázka. Myslel som si, že to musím urobiť, aby som zistil, či súbor údajov už existuje.
Nastaviť oADOCmd = CreateObject ("ADODB.COMMAND")
S oADOCmd
.ActiveConnection = oADOConn
.CommandTimeout = 120
.CommandType = 1
.CommandText = "INSERT INTO table1" & _
„(DESC, dátum, identifikátor, priemer)“ & _
„HODNOTY („ DESC1 “,„ 13. 01. 2012 “,„ C1 “, 200,50)“
.Vykonajte vAnswer
Končiť s
Práve som sa dozvedel o počítaní hraním.
Aby som zabránil dvojitému ukladaniu údajov do databázy, nastavil by som teraz pred vyššie uvedený kód príkaz if.