konto usunięte
Bartek
Borczyk
Operator liczb i
słów
Temat: ścieżka względna tabeli łączonej
Denerwujące...Można aktualizować wykorzystując właściwość Connect obiektu TableDef:
Sub sAktualizacjaLinków()
Dim tblTabela As DAO.TableDef
Dim strŁańcuch As String
Dim strŁańcuch_Początek As String
Dim strŁańcuch_Koniec As String
Dim strTreść As String
Dim objOdpowiedź As VbMsgBoxResult
On Error GoTo PROCEDURA_BŁĄD
For Each tblTabela In CurrentDb.TableDefs
strŁańcuch = tblTabela.Connect
strTreść = "Tabela do zamiany: " & tblTabela.Name & vbNewLine & "Łańcuch aktualny: " & strŁańcuch & vbNewLine
If Len(strŁańcuch) > 0 Then
If Left$(strŁańcuch, 5) = "Excel" Then
strŁańcuch_Początek = Left$(strŁańcuch, InStrRev(strŁańcuch, ";"))
strŁańcuch_Koniec = Right$(strŁańcuch, Len(strŁańcuch) - InStrRev(strŁańcuch, "\"))
strŁańcuch = strŁańcuch_Początek & "DATABASE=" & CurrentProject.Path & "\" & strŁańcuch_Koniec
strTreść = strTreść & "Łańuch po aktulizacji: " & strŁańcuch & vbNewLine & "Zamienić?"
objOdpowiedź = MsgBox(strTreść, vbYesNo + vbQuestion, "AktualizacjaLinków")
If objOdpowiedź = vbYes Then
With tblTabela
.Connect = strŁańcuch
.RefreshLink
End With
End If
End If
End If
Next tblTabela
MsgBox "Gotowe!", vbInformation, "AktualizacjaLinków"
PROCEDURA_WYJŚCIE:
Exit Sub
PROCEDURA_BŁĄD:
MsgBox "Błąd procedury!", vbCritical, "AktualizacjaLinków"
GoTo PROCEDURA_WYJŚCIE
End Sub
EDIT: W tym przypadku założyłem, że zarówno baza jak i pliki tabel połączonych znajdują się w tym samym folderze! Oczywiście można by i tak: CurrentProject.Path & "\PlikiTabelPołączonych\".Bartosz Borczyk edytował(a) ten post dnia 26.07.09 o godzinie 21:54
konto usunięte
Temat: ścieżka względna tabeli łączonej
OK. Dziękuję!Polecam wrzucić to do AutoExec i usunąć msgboxa z pytaniem o potwierdzenie.
Piotr
Błaszczyk
PZU Życie, Starszy
Analityk Finansowy
Temat: ścieżka względna tabeli łączonej
Cześc,Jak zmodyfikowac poniższe makro, żeby zamiast pętli aktualizującej wszystkie tabele połączone, zdefiniowac tylko kilka tabel połączonych, które chcę odświeżyc? Połączone tabele linkują się z plikami Excel, txt i mdb.
Wojciech Gardziński
Piotr
Błaszczyk
PZU Życie, Starszy
Analityk Finansowy
Temat: ścieżka względna tabeli łączonej
Dziękuję za odpowiedź, ale nie bardzo widzę jak w moim przypadku mógłbym to zastosowac. Mówimy o zmianie adresu połączonej tabeli, a nie importowaniu tabeli. Zasadniczo jedyne czego potrzebuję to deklaracji w vba nazwy tabeli, której adres chcę aktualnie zmienic.Wojciech Gardziński
Piotr
Błaszczyk
PZU Życie, Starszy
Analityk Finansowy
Temat: ścieżka względna tabeli łączonej
"zasadniczo", to udzielanie takiej odpowiedzi niczego nie wnosi, więc może na przyszłośc nie warto...Skoro proszę o pomoc w odświeżeniu zlinkowanej tabeli, tzn., że są powody, dla których zdecydowałem się na takie właśnie rozwiązanie i choc zawsze warto rozważyc alternatywne możliwości, to w tym konkretnym przypadku to raczej nie wchodzi w grę.
Wojciech Gardziński
konto usunięte
Temat: ścieżka względna tabeli łączonej
Piotr Błaszczyk:
Cześc,
Jak zmodyfikowac poniższe makro, żeby zamiast pętli aktualizującej wszystkie tabele połączone, zdefiniowac tylko kilka tabel połączonych, które chcę odświeżyc? Połączone tabele linkują się z plikami Excel, txt i mdb.
with CurrentDb.TableDefs("nazwa tabeli")
.Properties("Connect") "ODBC;DATABASE='...';DSN='...'; UID='...'; PWD='...';"
.Properties.Refresh
.RefreshLink
End With
Piotr
Błaszczyk
PZU Życie, Starszy
Analityk Finansowy
Temat: ścieżka względna tabeli łączonej
Dziękuję, o to właśnie mi chodziło. Ale po zastanowieniu stwierdziłem, że zamiast definiowac po kolei tabele, którym chcę zaktualizowac linka, szybciej będzie w pętli dodac warunek sprawdzający nazwę pliku którego nie chcę odświeżac. Jeśli nazwa pliku jest różna od podanej link ma zostac odświeżony.
Paweł
D.
Programista Analityk
- Firmowe Bazy
Danych
Temat: ścieżka względna tabeli łączonej
1 pytającyapplication.CurrentProject.Path
2 pytający
Piotr Błaszczyk:
Cześc,
Jak zmodyfikowac poniższe makro, żeby zamiast pętli aktualizującej wszystkie tabele połączone, zdefiniowac tylko kilka tabel połączonych, które chcę odświeżyc? Połączone tabele linkują się z plikami Excel, txt i mdb.
Polecam zrobić sobie tabelkę z wypisanymi nazwami tabeli do odświeżenie i po niej pętle.
Podobne tematy
-
Ms Access » Ścieżka pliku do zapisania do tabeli -
-
Ms Access » dlookup w tabeli i zapisywanie rekordu -
-
Ms Access » MS Access i odświeżanie Tabeli połączonej do MS SQL Serwera -
-
Ms Access » Eksport tabeli do arkusza xlsx z mozliwoscia edycji -
-
Ms Access » Sprawdzenie źródła tabeli -
-
Ms Access » Wyszukiwanie tabeli doraportu -
-
Ms Access » MS Access - widok tabeli przestawnej -
-
Ms Access » Przypisanie wartości do tabeli -
-
Ms Access » Zmiana w tabeli z poziomu raportu -
-
Ms Access » Wprowadzanie danych w układzie tabeli wielowymiarowej -
Następna dyskusja: