Access 2016 aktualizacja danych w tabeli połączonej (żródło w XLS)

Anonimowe
2018-01-04T07:27:17+00:00

Witam.

Mam stworzoną bazę, w której wykorzystuje m.in. tabele połączone (z MySQL oraz jedna tabela połączona z pliku XLS).

I teraz pytanie za 100 pkt. Jak mogę wykonać aktualizację danych w pliku źródłowym XLS?

Wywołanie jakiejkolwiek kwerendy aktualizującej na tej tabeli (poniżej przykładowa)

UPDATE [Tabela_XLS] SET [Tabela_XLS].[Data aktualizacji danych] = Date()

WHERE ((([Tabela_XLS].[Lp])=1));

skutkuje komunikatem:

Wygląda na to, że Access blokuje bezpośrednią możliwość aktualizacji danych w pliku.

Czy jest możliwość obejścia tego problemu? Zależy mi na tym, abym mógł wyniki uzupełniać w tym pliku w określonych kolumnach aby inni użytkownicy mogli mieć dostęp do wyników pracy (a oni nie mają ACCESS'a)

Microsoft 365 i pakiet Office | Access | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy

Odpowiedzi: 6

Sortuj według: Najbardziej pomocne
  1. Anonimowe
    2018-01-04T14:19:16+00:00

    Znalazłem rozwiązanie.

    Kod jest jeszcze do rozbudowy ale to mi wystarczy co napisałem (a chcę się podzielić dla innych)

    Private Sub Polecenie0_Click()

        Dim my_xl_app As Object

        Dim my_xl_worksheet As Object

        Dim my_xl_workbook As Object   

        Dim db As DAO.Database

        Dim rs As DAO.Recordset

        Dim Zap_SQL As String   

        Dim ID_k As String

        Zap_SQL = "SELECT showrooms.id, showrooms.code, [Showrooms uwagi].Uwaga, [Showrooms uwagi].[Czy wymaga wymiany], [Showrooms uwagi].[Czy podgrany skrypt] " & _

                        "FROM showrooms LEFT JOIN [Showrooms uwagi] ON showrooms.id = [Showrooms uwagi].showroom_id " & _

                        "where showrooms.code = ""LU6"";"

        Set db = CurrentDb

        Set rs = db.OpenRecordset(Zap_SQL) 

        Set my_xl_app = CreateObject("Excel.Application")

        Set my_xl_workbook = my_xl_app.Workbooks.Open("C:\a\Tabela_XLS.xlsx")

        Set my_xl_worksheet = my_xl_workbook.Worksheets("Dane")

        For a = 2 To 200

        ID_k = my_xl_workbook.Sheets("Dane").cells(a, "B").Value

           If ID_k = "LO7" Then

                my_xl_workbook.Sheets("Dane").cells(a, "AG").Value = Date

                my_xl_workbook.Sheets("Dane").cells(a, "AB").Value = rs("Czy wymaga wymiany")

                my_xl_workbook.Sheets("Dane").cells(a, "AC").Value = rs("Czy podgrany skrypt")

                my_xl_workbook.Sheets("Dane").cells(a, "AF").Value = rs("Uwaga")

           End If

        Next

        my_xl_workbook.Sheets("Dane").Range("A100").Value = "VVV"

        my_xl_workbook.Close SaveChanges:=True

        Set my_xl_app = Nothing

        MsgBox "Done"

    End Sub

    Czy ta odpowiedź była pomocna?

    1 osoba uznała tę odpowiedź za pomocną.
    Komentarze: 0 Brak komentarzy
  2. Anonimowe
    2018-01-04T11:30:46+00:00

    no ale Masz może pomysł jak wysłać te dane do XLS? i to jeszcze w taki sposób aby zaktualizować wybrane komórki dla wskazanego wiersza?

    Robiłeś może coś podobnego lub spotkałeś się z podobnym rozwiązaniem?

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2018-01-04T11:10:23+00:00

    Twoja Tabela Połączona w ACC jest z linkowana z likiem Excela.

    Jakiekolwiek zmiany w pliku XLSx powodują automatyczną zmianę tabeli w ACC (widoczne zaraz po otwarciu).

    Zrozumiałem z dyskusji, że dane pierwotne masz w ACC, a chcesz je exportować do XLa dla innych osób, a nie odwrotnie (jak jest obecnie).

    Access niestety nie ma nagrywarki makr.

    Kod należy pisać ręcznie.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  4. Anonimowe
    2018-01-04T08:21:18+00:00

    Dziękuję za szybką odpowiedź. Niestety nie bardzo ją rozumiem. Dane mam pobrane. (Przez mechanizmy importu z pliku XLS z opcją utworzenia tabeli połączonej).

    Mam problem w wysłaniem danych do określonego pola w pliku XLS.

    I jeszcze jedno pytanie. Jak mogę nagrać wykonane czynności w Access? W Excel OK jest ta funkcjonalność. W Access nie znalazłem)

    Przykładowe pliki sa pod linkiem

    https://drive.google.com/open?id=1\_X15yZjFr80quFGy3EUmvlEOPhZ-KUHg

    Plik XLS powinien być umiejscowiony na dysku C  w katalogu a   (  C:\a\   )

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  5. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2018-01-04T07:51:39+00:00

    Niestety trzeba by to przetestować. W ramach jednak tego iż nie przekazałeś linku do próbki, polecam usunięcie danych i pobranie ich selektem. Czynność taką można oprogramować i kodem exportować dane, albo po przez nagranie wykonanych czynności albo przy użytku ADO/DAO.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy