< návrat zpět

MS Excel


Téma: Generování skriptu SQL pro naplnění spoj. tab. rss

Zaslal/a 24.1.2018 15:20

Dobrý den,

chtěl bych poprosit o pomoc ve věci generování skriptu SQL pro naplnění spojovací tabulky.

Problém vystihuje přiložený soubor, kde na listě Zadání jsou hodnoty ve sloupcích a na řádcích (neomezené množství). V případě, že v průsečíku sloupců a řádků je "o", jsou si hodnoty přiřazeny a tyto dvojice se mají následně plnit do oné spojovací tabulky.

Vlastní plnění je naznačeno na listě Výsledek, kde jsou ve dvou sloupcích každé dvě přiřazené hodnoty, tyto by měly být následně v buňce E2 sloučeny do finálního skriptu (zde je opět naznačen princip sloučení, tentokrát pouze pro dvě dvojice.

Děkuji mnohokrát za jakýkoliv nápad! 6

Příloha: xlsx39198_priklad_v1.xlsx (10kB, staženo 34x)
Zaslat odpověď >

#039199
Jeza.m
Má být výsledkem jeden insert se spoustou hodnot, nebo to může být spousta insertů (SQL zkousne obojí).

Příklad viz. níže. Před spuštěním je potřeba smazat hodnoty z listu výsledek.

Public Sub MakeInserts()
Dim wsi As Worksheet
Dim wso As Worksheet
Dim rdo As Single

Set wsi = List1
Set wso = List2

For rdi = 2 To wsi.UsedRange.Rows.Count
For sli = 2 To wsi.UsedRange.Columns.Count
If wsi.Cells(rdi, sli) = "o" Then
rdo = wso.UsedRange.Rows.Count + 1
wso.Cells(rdo, 1) = wsi.Cells(rdi, 1)
wso.Cells(rdo, 2) = wsi.Cells(1, sli)
wso.Cells(rdo, 5) = "INSERT INTO cn_xy (SLOUPEC1, SLOUPEC2) VALUES('" & wsi.Cells(rdi, 1) & "', '" & wsi.Cells(1, sli) & "')"
End If
Next
Next

End Sub


M@citovat
#039201
avatar
Ahoj M@e,

adresně Ti děkuji za odpověď.

V pravdě by bylo pro moje potřeby super, aby to bylo v jednom skriptu.

Pokusil jsem se rozchodit ten Tvůj VBA skriptík (který můj mozek ani po opakované analýze nepobral 6), vypsal mi však pouze jednu dvojhodnotu. Přikládám v příloze a rád bych se tedy ujistil, že dělám vše tak, jak bych měl.

Ošetřuje toto řešení i libovolně rozměrné pole (X sloupců a Y řádek)?

Ještě jednou mockrát děkuji!

P.S. Musel jsem to uložit pouze v XLSX, očividně zde nelze přidávat přílohy s podporou maker (chápu). Mohl bych to packovat, leč výsledek je viditelný i ve standardním dokumentu.
Příloha: xlsx39201_priklad_v2.xlsx (9kB, staženo 29x)
citovat
#039210
Jeza.m
Posílám přílohu.
+ jsem na konec přidal i all in one Insert.

M@
Příloha: zip39210_39198_priklad_v1.zip (15kB, staženo 34x)
citovat
#039288
avatar

Jeza.m napsal/a:

Posílám přílohu.
+ jsem na konec přidal i all in one Insert.

M@Příloha: 39210_39198_priklad_v1.zip (15kB, staženo 4x)


Děkuji mockrát, tohle je přesně to, co jsem potřeboval. S drobnými úpravami budu nyní úspěšně používat, velmi si vážím Tvé pomoci.

Nezbývá, než se rozloučit a popřát mnoho úspěchů ve všem, co kdy budeš v životě provádět. 1

Děkuji,

N.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje