< návrat zpět

MS Excel


Téma: Propojení dat rss

Zaslal/a 23.5.2017 12:55

Prosím o radu používám vyhodnocení dat v měsících kdy složka daného roku např. 2017 obsahuje jednotlivé měsíce např leden únor atd a original. Pro vytvoření nového měsíce vytvořím kopii složky originál a pojmenuji ji příslušným měsícem. Potřebuji aby vždy k propojení dat docházelo v rámci složky nikoliv na zdroj ve složce originál. Děkuji.

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#036548
elninoslov
Toto by Vám malo fungovať:
Private Sub Workbook_Open()
Dim CS As String, Cesta As String, Poz1 As Long, Poz2 As Long

On Error GoTo CHYBA
With ThisWorkbook
Cesta = .Path & "\zdrojová data.xls"
With .Connections("zdrojová data").OLEDBConnection
CS = .Connection
Poz1 = InStr(1, CS, "Source=") + 6
Poz2 = Len(CS) - InStr(Poz1, CS, ";Mode=") + 1
CS = Left$(CS, Poz1) & Cesta & Right$(CS, Poz2)
.Connection = CS
.Refresh
End With
End With
Exit Sub

CHYBA:
MsgBox ("Chyba pri aktualizácii zdrojovej tabuľky :" & vbNewLine & Cesta)
End Sub
citovat
#036597
avatar
Děkuji vyzkouším a dám vědět.citovat
#036603
avatar
Vše funguje jak má. Děkuji za pomoc.citovat
#036634
avatar
Tak ještě jednu radu. Tento postu funguje na Excel 2007 a výše. Bohužel bych potřeboval ještě pro excel 2003 je možná modifikace. Problém je na tomto řádku With .Connections("zdrojová data").OLEDBConnection. Děkujicitovat
#036637
elninoslov
Zatiaľ veru neviem, nahodil som si do virtuálky XP s Off2003, ale len čisté XP SP3, aj na Off iba SP3. V Off2003 nieje pod ThisWorkbook objekt Connections, ale iba pod List(x).QueryTables.

Možno je potrebné urobiť kompletnú aktualizáciu OS, Off, .NET, ale to je tak na pol dňa, alebo zapnúť References, žiaľ som neprišiel na to aké.

Prípadne skúsiť vytvoriť u Vás rovnaký dotaz rovnakým spôsobom na rovnakých dátach, v Off 2003, a tieto dotazy by sa použili podmienene podľa verzie Off (ak obdobný dotaz Off 2003 podporuje).

Ja som skúsil napr. MS Query dotaz, ktorý by mal snáď fungovať aj tam aj tam.

Niekto zbehlejší snáď popichne, čo s tým...citovat
#036638
elninoslov
Krkolomne, ale predsa aspoň nejako sa mi to podarilo poriešiť. Vymeníme v pripájacom dotaze nielen cestu, ale aj poskytovateľa.
Private Sub Workbook_Open()
Dim CS As String, Cesta As String, Poz1 As Long, Poz2 As Long, CON, Prov As String

On Error GoTo CHYBA
With ThisWorkbook
Cesta = .Path & "\zdrojová data.xls"
If Application.Version = "11.0" Then
Set CON = .Worksheets("List1").QueryTables("zdrojová data")
Prov = "Microsoft.Jet.OLEDB.4.0"
Else
Set CON = .Connections("zdrojová data").OLEDBConnection
Prov = "Microsoft.ACE.OLEDB.12.0"
End If

With CON
CS = .Connection
Poz1 = InStr(1, CS, "Provider=") + 8
Poz2 = Len(CS) - InStr(Poz1, CS, ";User") + 1
CS = Left$(CS, Poz1) & Prov & Right$(CS, Poz2)

Poz1 = InStr(1, CS, "Source=") + 6
Poz2 = Len(CS) - InStr(Poz1, CS, ";Mode=") + 1
CS = Left$(CS, Poz1) & Cesta & Right$(CS, Poz2)
.Connection = CS
.Refresh
End With
End With
Exit Sub

CHYBA:
MsgBox ("Chyba pri aktualizácii zdrojovej tabuľky :" & vbNewLine & Cesta)
End Sub

Pripájam pre istotu aj súbor v ktorom mi to fachá obojstranne (XP SP3 + Off2003 SP3 / W10 x64 + Off2016 x64).
Příloha: xls36638_sesit1.xls (41kB, staženo 27x)
citovat
#036641
avatar
Tak toto bohužel také nefunguje pod office 2003. chyba zde Set CON = .Connections("zdrojová data").OLEDBConnection. nevím proč tady když sem by to nemělo dojít ale přesto děkuji za snahu.citovat
#036642
elninoslov
Veď ja to robím pod Office 2003, ako Vy. Asi bude rozdiel vo verzii. Aké číslo Vám dáva
Application.Version
?
EDIT:
Zmente toto:
If Application.Version = "11.0" Then
na toto:
If Val(Application.Version) < 12 Then
Musí to fungovať. Teraz to skúšam. Napíšte ešte tú verziu Application.Version a problém môžu byť aj prístupové práva na umiestnenie súboru napr. na sieti.citovat
#036643
avatar
verze 11.0citovat
#036644
elninoslov
Ten môj súbor je stiahnutý 0x. Takže to neskúšate na tom overenom súbore. Vyskúšajte najskôr to. Ja som tam robil ten dotaz nanovo. Kód si môžete spustiť aj manuálne, odkrokujte si ho cez F8. Pri Office 2003 sa nesmie dostať na riadok
Set CON = .Connections("zdrojová data").OLEDBConnection
a pri vyššom Office sa naopak nesmie dostať na riadok
Set CON = .Worksheets("List1").QueryTables("zdrojová data")
Sú súbory na sieti?
Obsahuje ten Váš zdrojový súbor určite rovnakú pomenovanú oblasť?
Rovnakú chybu robí na oboch druhoch Office?
Musíte sa rozpísať viac, ako na jednoslovné odpovede.
Neviem, ako inak pomôcť, keď mne to tu funguje.citovat

Strana:  « předchozí  1 2 3   další »

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